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