Error linking binutils statically (was: svn commit: trunk/uClibc)

Peter S. Mazinger ps.m at gmx.net
Sun Dec 11 15:12:12 UTC 2005


On Sun, 11 Dec 2005, Jan-Benedict Glaw wrote:

> On Sat, 2005-12-10 23:29:49 +0100, Peter S. Mazinger <ps.m at gmx.net> wrote:
> > On Sat, 10 Dec 2005, Mike Frysinger wrote:
> > 
> > > On Sat, Dec 10, 2005 at 01:53:54PM -0800, psm at uclibc.org wrote:
> > > > Log:
> > > > Install dummy libc-internal.h
> > > 
> > > why ?
> > > -mike
> > 
> > because currently gcc can't be built, I am waiting for votes to keep or it 
> > like this or change installed features.h
> 
> Oh, while we are at it... I just tracked down since when I can no longer use
> my vax-linux cross-compiler to cross-compile the binutils source:
> 
>  rev   | status | comment
> -------+--------+--------------------------------------------------------
>  12616 | +      | seable to cross-compile binutils
>  12617 | ?      | Error during compilation of libc/misc/regex/regex_old.c
>  12618 | ?      | Error during compilation of libc/misc/regex/regex_old.c
>  12619 | ?      | Error during compilation of libc/misc/regex/regex_old.c
>  12620 | -      | Unuseable to cross-compile binutils
> 
> 
> The vax-linux target is still a statically linked target; in the
> 12616:12620 range, the hiding work started, so I guess it's related to
> that. This is how it breaks:
> 
> $ CC=vax-linux-uclibc-gcc LDFLAGS=-static CFLAGS=-static .../configure --host=vax-linux-uclibc --build=i686-pc-linux-gnu --target=vax-linux-uclibc --prefix=/usr
> :
> :
> $ make all-binutils
> :
> :
> vax-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/src/binutils/binutils -I. -D_GNU_SOURCE -I. -I/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/src/binutils/binutils -I../bfd -I/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/src/binutils/binutils/../bfd -I/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/src/binutils/binutils/../include -I/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/src/binutils/binutils/../intl -I../intl -DLOCALEDIR="\"/usr/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation   -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -static  -c /home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/src/binutils/binutils/filemode.c
> /bin/sh ./libtool --mode=link vax-linux-uclibc-gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -static    -o size  size.o bucomm.o version.o filemode.o ../bfd/libbfd.la ../libiberty/libiberty.a ./../intl/libintl.a 
> mkdir .libs
> vax-linux-uclibc-gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -o size size.o bucomm.o version.o filemode.o  ../bfd/.libs/libbfd.a ../libiberty/libiberty.a ./../intl/libintl.a
> bucomm.o: In function `make_tempname':bucomm.c:(.text+0xae2): warning: 
> /home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/install/usr/lib/gcc/vax-linux-uclibc/4.2.0/../../../../vax-linux-uclibc/lib/libc.a(strncmp.o): In function `strncmp':strncmp.c:(.text+0x0): multiple definition of `strncmp'
> ../libiberty/libiberty.a(strncmp.o):strncmp.c:(.text+0x0): first defined here
> /home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/install/usr/lib/gcc/vax-linux-uclibc/4.2.0/../../../../vax-linux-uclibc/bin/ld: Warning: size of symbol `strncmp' changed from 82 in ../libiberty/libiberty.a(strncmp.o) to 176 in /home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/install/usr/lib/gcc/vax-linux-uclibc/4.2.0/../../../../vax-linux-uclibc/lib/libc.a(strncmp.o)
> collect2: ld returned 1 exit status
> make[3]: *** [size] Error 1
> make[3]: Leaving directory `/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/build/binutils-native/binutils'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/build/binutils-native/binutils'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/home/jbglaw/vax-linux/scm/build-20051210-224523-vax-linux-uclibc/build/binutils-native/binutils'
> make: *** [all-binutils] Error 2
> 
> The problem right now is that strncmp() is in libc.a as well as in
> libiberty.a .  It always was like this, but the linker complains about
> it since the hiding work was done.

imho strncmp has nothing to do in libiberty.a

Peter
> 
> Is this breakage intentional/expected for static builds, or was it not
> expected?
> 
> MfG, JBG
> 
> 

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2




More information about the uClibc mailing list