Andreas Jaeger writes: |> With the current glibc 2.2, I received the following error message: |> /opt/egcs1.1.2/bin/gcc -nostdlib -nostartfiles -r -o /build-glibc-dl-wip/20000110/elf/librtld.os '-Wl,-(' /build-glibc-dl-wip/20000110/elf/dl-allobjs.os /build-glibc-dl-wip/20000110/libc_pic.a -lgcc '-Wl,-)' |> /build-glibc-dl-wip/20000110/libc_pic.a(init-first.os): In function `init': |> /libc-dl-wip/csu/../sysdeps/unix/sysv/linux/init-first.c:61: multiple definition of `__libc_multiple_libcs' |> /build-glibc-dl-wip/20000110/elf/dl-allobjs.os(.data+0xe4):/libc-dl-wip/elf/rtld.c: first defined here |> |> Why do we have in sysdeps/generic/dl-sysdep.c: |> int __libc_multiple_libcs = 0; /* Defining this here avoids the inclusion |> of init-first. */ |> |> and also in sysdeps/unix/sysv/linux/init-first.c: |> /* Set nonzero if we have to be prepared for more then one libc being |> used in the process. Safe assumption if initializer never runs. */ |> int __libc_multiple_libcs = 1; |> |> and why is this a problem on Linux/MIPS and not on Linux/ix86? Probably because init-first.os is spuriously included during linking due to some unresolved references. It should not be part of ld.so. Please check the link map. Andreas. -- Andreas Schwab "And now for something SuSE Labs completely different." schwab@suse.de SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg