Multiple definition of __libc_multiple_libcs

Ralf Baechle ralf@uni-koblenz.de
Mon Jan 24 14:46:00 GMT 2000


On Mon, Jan 10, 2000 at 05:35:01PM +0100, Andreas Jaeger wrote:

> 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?  I'm a
> little bit confused and appreciate your help.
> 
> Is this a bug in binutils?  On Linux/MIPS I use:
> $ ld --version
> GNU ld 2.9.5

Is this vanilla 2.9.5 or the one from oss.sgi.com with my patches applied?
I remember having fixed various bugs like this but it's too long since then,
forgot all the details.

  Ralf


More information about the Libc-hacker mailing list