[Clfs-dev] Show stopper with multilib books

William Harrington berzerkula at cox.net
Thu Aug 23 16:06:35 PDT 2012


Greetings all,

We have a show stopper.

The following does not occur using the same system I have been using  
with 32 bit builds such as powerpc or x86. Nore did I have this issue  
with pure64. This seems to be a multilib issue.

I don't know if it is from the gcc specs patch or our cross binutils  
but this is the issue:

This will surface if the host eglibc or glibc is less than the book's  
eglibc version.
This will not surface if the host eglibc or glibc is the same or  
greater than the book's eglibc version.

make[2]: Entering directory `/mnt/clfs/sources/binutils-build/binutils'
if [ -r sysinfo.c ]; then \
   gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes - 
Wshadow -Werror  -Wno-error sysinfo.c ; \
else \
   gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes - 
Wshadow -Werror  -Wno-error ../../binutils-2.22/binutils/sysinfo.c ; \
fi
as: /lib/libc.so.6: version `GLIBC_2.14' not found (required by /mnt/ 
clfs/sources/binutils-build/./opcodes/.libs/libopcodes-2.22.so)
as: /lib/libc.so.6: version `GLIBC_2.14' not found (required by /mnt/ 
clfs/sources/binutils-build/./bfd/.libs/libbfd-2.22.so)
make[2]: *** [sysinfo.o] Error 1
make[2]: Leaving directory `/mnt/clfs/sources/binutils-build/binutils'
make[1]: *** [all-binutils] Error 2
make[1]: Leaving directory `/mnt/clfs/sources/binutils-build'
make: *** [all] Error 2

For some reason, opcodes shared library is linking to the host libs.

The versioned symbols will not exist in the host libc thus resulting  
in the following:

make[2]: Entering directory `/mnt/clfs/sources/binutils-build/binutils'
if [ -r sysinfo.c ]; then \
   gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes - 
Wshadow -Werror  -Wno-error sysinfo.c ; \
else \
   gcc -c -I. -W -Wall -Wstrict-prototypes -Wmissing-prototypes - 
Wshadow -Werror  -Wno-error ../../binutils-2.22/binutils/sysinfo.c ; \
fi
as: /lib/libc.so.6: version `GLIBC_2.14' not found (required by /mnt/ 
clfs/sources/binutils-build/./opcodes/.libs/libopcodes-2.22.so)
as: /lib/libc.so.6: version `GLIBC_2.14' not found (required by /mnt/ 
clfs/sources/binutils-build/./bfd/.libs/libbfd-2.22.so)
make[2]: *** [sysinfo.o] Error 1
make[2]: Leaving directory `/mnt/clfs/sources/binutils-build/binutils'
make[1]: *** [all-binutils] Error 2
make[1]: Leaving directory `/mnt/clfs/sources/binutils-build'
make: *** [all] Error 2

We have a serious issue here. I've done this multiple times with my  
scripts and manually multiple times. It is a show stopper.

We need to find out what is causing this.

I'm asking the community to build multilib systems where the host  
libc version is less than the book's libc version.  < 2.15   This  
will make sure it is a definite issue. Much does not have to be  
built. Build the crosstools then the temp tools up to binutils. The  
issue will surface there.

opcodes.so in binutils-buil/opcodes.libs/opcodes.so is indeed linking  
to the host lib for some reason.

============= cleaning opcodes and building fresh======================
clfs:/mnt/clfs/sources/binutils-build/opcodes$ make clean
Making clean in po
make[1]: Entering directory `/mnt/clfs/sources/binutils-build/opcodes/ 
po'
rm -f core core.* *.pox opcodes.po *.old.po cat-id-tbl.tmp
rm -fr *.o
make[1]: Leaving directory `/mnt/clfs/sources/binutils-build/opcodes/po'
Making clean in .
make[1]: Entering directory `/mnt/clfs/sources/binutils-build/opcodes'
test -z "libopcodes.la" || rm -f libopcodes.la
rm -f "./so_locations"
test -z "stamp-fr30 stamp-frv stamp-ip2k stamp-iq2000 stamp-lm32  
stamp-m32c stamp-m32r stamp-mep stamp-mt stamp-openrisc stamp-xc16x  
stamp-xstormy16 libopcodes.a stamp-lib" || rm -f stamp-fr30 stamp-frv  
stamp-ip2k stamp-iq2000 stamp-lm32 stamp-m32c stamp-m32r stamp-mep  
stamp-mt stamp-openrisc stamp-xc16x stamp-xstormy16 libopcodes.a  
stamp-lib
rm -rf .libs _libs
test -z "libopcodes.a" || rm -f libopcodes.a
test -z "" || rm -f
rm -f *.o
test -z "i386-gen ia64-gen s390-mkopc s390-opc.tab z8kgen opc2c" ||  
rm -f i386-gen ia64-gen s390-mkopc s390-opc.tab z8kgen opc2c
rm -f *.lo
make[1]: Leaving directory `/mnt/clfs/sources/binutils-build/opcodes'
clfs:/mnt/clfs/sources/binutils-build/opcodes$ make
make  all-recursive
make[1]: Entering directory `/mnt/clfs/sources/binutils-build/opcodes'
Making all in .
make[2]: Entering directory `/mnt/clfs/sources/binutils-build/opcodes'
/bin/sh ./libtool --tag=CC   --mode=compile x86_64-unknown-linux-gnu- 
gcc -m64 -DHAVE_CONFIG_H -I. -I../../binutils-2.22/opcodes  -I. - 
I../../binutils-2.22/opcodes -I../bfd -I../../binutils-2.22/ 
opcodes/../include -I../../binutils-2.22/opcodes/../bfd    -W -Wall - 
Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT  
dis-buf.lo -MD -MP -MF .deps/dis-buf.Tpo -c -o dis-buf.lo ../../ 
binutils-2.22/opcodes/dis-buf.c
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT dis-buf.lo -MD -MP -MF .deps/ 
dis-buf.Tpo -c ../../binutils-2.22/opcodes/dis-buf.c  -fPIC -DPIC - 
o .libs/dis-buf.o
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT dis-buf.lo -MD -MP -MF .deps/ 
dis-buf.Tpo -c ../../binutils-2.22/opcodes/dis-buf.c -o dis-buf.o >/ 
dev/null 2>&1
mv -f .deps/dis-buf.Tpo .deps/dis-buf.Plo
/bin/sh ./libtool --tag=CC   --mode=compile x86_64-unknown-linux-gnu- 
gcc -m64 -DHAVE_CONFIG_H -I. -I../../binutils-2.22/opcodes  -I. - 
I../../binutils-2.22/opcodes -I../bfd -I../../binutils-2.22/ 
opcodes/../include -I../../binutils-2.22/opcodes/../bfd    -W -Wall - 
Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT  
disassemble.lo -MD -MP -MF .deps/disassemble.Tpo -c -o  
disassemble.lo  -DARCH_i386 -DARCH_l1om -DARCH_k1om ../../ 
binutils-2.22/opcodes/disassemble.c
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT disassemble.lo -MD -MP - 
MF .deps/disassemble.Tpo -c -DARCH_i386 -DARCH_l1om -DARCH_k1om ../../ 
binutils-2.22/opcodes/disassemble.c  -fPIC -DPIC -o .libs/disassemble.o
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT disassemble.lo -MD -MP - 
MF .deps/disassemble.Tpo -c -DARCH_i386 -DARCH_l1om -DARCH_k1om ../../ 
binutils-2.22/opcodes/disassemble.c -o disassemble.o >/dev/null 2>&1
mv -f .deps/disassemble.Tpo .deps/disassemble.Plo
/bin/sh ./libtool --tag=CC   --mode=compile x86_64-unknown-linux-gnu- 
gcc -m64 -DHAVE_CONFIG_H -I. -I../../binutils-2.22/opcodes  -I. - 
I../../binutils-2.22/opcodes -I../bfd -I../../binutils-2.22/ 
opcodes/../include -I../../binutils-2.22/opcodes/../bfd    -W -Wall - 
Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT  
dis-init.lo -MD -MP -MF .deps/dis-init.Tpo -c -o dis-init.lo ../../ 
binutils-2.22/opcodes/dis-init.c
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT dis-init.lo -MD -MP -MF .deps/ 
dis-init.Tpo -c ../../binutils-2.22/opcodes/dis-init.c  -fPIC -DPIC - 
o .libs/dis-init.o
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT dis-init.lo -MD -MP -MF .deps/ 
dis-init.Tpo -c ../../binutils-2.22/opcodes/dis-init.c -o dis-init.o  
 >/dev/null 2>&1
mv -f .deps/dis-init.Tpo .deps/dis-init.Plo
/bin/sh ./libtool --tag=CC   --mode=compile x86_64-unknown-linux-gnu- 
gcc -m64 -DHAVE_CONFIG_H -I. -I../../binutils-2.22/opcodes  -I. - 
I../../binutils-2.22/opcodes -I../bfd -I../../binutils-2.22/ 
opcodes/../include -I../../binutils-2.22/opcodes/../bfd    -W -Wall - 
Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT  
i386-dis.lo -MD -MP -MF .deps/i386-dis.Tpo -c -o i386-dis.lo ../../ 
binutils-2.22/opcodes/i386-dis.c
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT i386-dis.lo -MD -MP -MF .deps/ 
i386-dis.Tpo -c ../../binutils-2.22/opcodes/i386-dis.c  -fPIC -DPIC - 
o .libs/i386-dis.o
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT i386-dis.lo -MD -MP -MF .deps/ 
i386-dis.Tpo -c ../../binutils-2.22/opcodes/i386-dis.c -o i386-dis.o  
 >/dev/null 2>&1
mv -f .deps/i386-dis.Tpo .deps/i386-dis.Plo
/bin/sh ./libtool --tag=CC   --mode=compile x86_64-unknown-linux-gnu- 
gcc -m64 -DHAVE_CONFIG_H -I. -I../../binutils-2.22/opcodes  -I. - 
I../../binutils-2.22/opcodes -I../bfd -I../../binutils-2.22/ 
opcodes/../include -I../../binutils-2.22/opcodes/../bfd    -W -Wall - 
Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT  
i386-opc.lo -MD -MP -MF .deps/i386-opc.Tpo -c -o i386-opc.lo ../../ 
binutils-2.22/opcodes/i386-opc.c
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT i386-opc.lo -MD -MP -MF .deps/ 
i386-opc.Tpo -c ../../binutils-2.22/opcodes/i386-opc.c  -fPIC -DPIC - 
o .libs/i386-opc.o
libtool: compile:  x86_64-unknown-linux-gnu-gcc -m64 -DHAVE_CONFIG_H - 
I. -I../../binutils-2.22/opcodes -I. -I../../binutils-2.22/opcodes - 
I../bfd -I../../binutils-2.22/opcodes/../include -I../../ 
binutils-2.22/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing- 
prototypes -Wshadow -Werror -g -O2 -MT i386-opc.lo -MD -MP -MF .deps/ 
i386-opc.Tpo -c ../../binutils-2.22/opcodes/i386-opc.c -o i386-opc.o  
 >/dev/null 2>&1
mv -f .deps/i386-opc.Tpo .deps/i386-opc.Plo
/bin/sh ./libtool --tag=CC   --mode=link x86_64-unknown-linux-gnu-gcc  
-m64 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow - 
Werror -g -O2  -release `cat ../bfd/libtool-soversion`   -o  
libopcodes.la -rpath /tools/lib64 dis-buf.lo disassemble.lo dis- 
init.lo i386-dis.lo i386-opc.lo -Wl,/mnt/clfs/sources/binutils-build/ 
opcodes/../bfd/.libs/libbfd.so -L/mnt/clfs/sources/binutils-build/ 
opcodes/../libiberty/pic -liberty -Wl,-lc,--as-needed,-lm,--no-as-needed
libtool: link: x86_64-unknown-linux-gnu-gcc -m64 -shared  .libs/dis- 
buf.o .libs/disassemble.o .libs/dis-init.o .libs/i386-dis.o .libs/ 
i386-opc.o   -L/mnt/clfs/sources/binutils-build/opcodes/../libiberty/ 
pic -liberty  -m64 -Wl,/mnt/clfs/sources/binutils-build/opcodes/../ 
bfd/.libs/libbfd.so -Wl,-lc -Wl,--as-needed -Wl,-lm -Wl,--no-as- 
needed   -Wl,-soname -Wl,libopcodes-2.22.so -o .libs/libopcodes-2.22.so
libtool: link: (cd ".libs" && rm -f "libopcodes.so" && ln -s  
"libopcodes-2.22.so" "libopcodes.so")
libtool: link: x86_64-unknown-linux-gnu-ar cru .libs/libopcodes.a   
dis-buf.o disassemble.o dis-init.o i386-dis.o i386-opc.o
libtool: link: x86_64-unknown-linux-gnu-ranlib .libs/libopcodes.a
libtool: link: ( cd ".libs" && rm -f "libopcodes.la" && ln -s "../ 
libopcodes.la" "libopcodes.la" )
libtooldir=`/bin/sh ./libtool --config | sed -n -e 's/^objdir=//p'`; \
if [ -f $libtooldir/libopcodes.a ]; then \
   cp $libtooldir/libopcodes.a libopcodes.tmp; \
   x86_64-unknown-linux-gnu-ranlib libopcodes.tmp; \
   /bin/sh ../../binutils-2.22/opcodes/../move-if-change  
libopcodes.tmp libopcodes.a; \
else true; fi
touch stamp-lib
make[2]: Leaving directory `/mnt/clfs/sources/binutils-build/opcodes'
Making all in po
make[2]: Entering directory `/mnt/clfs/sources/binutils-build/opcodes/ 
po'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/mnt/clfs/sources/binutils-build/opcodes/po'
make[1]: Leaving directory `/mnt/clfs/sources/binutils-build/opcodes'

============== shared library status=================

clfs:/mnt/clfs/sources/binutils-build/opcodes/.libs$ ldd *.so
libopcodes-2.22.so:
./libopcodes-2.22.so: /lib/libc.so.6: version `GLIBC_2.14' not found  
(required by ./libopcodes-2.22.so)
         linux-vdso.so.1 =>  (0x00007fffa55f6000)
         libbfd-2.22.so => /usr/lib/libbfd-2.22.so (0x00007fbc15ec7000)
         libc.so.6 => /lib/libc.so.6 (0x00007fbc15b20000)
         libz.so.1 => /lib/libz.so.1 (0x00007fbc15908000)
         /lib64/ld-linux-x86-64.so.2 (0x00007fbc164d3000)
libopcodes.so:
./libopcodes.so: /lib/libc.so.6: version `GLIBC_2.14' not found  
(required by ./libopcodes.so)
         linux-vdso.so.1 =>  (0x00007fff955ff000)
         libbfd-2.22.so => /usr/lib/libbfd-2.22.so (0x00007f94bb66f000)
         libc.so.6 => /lib/libc.so.6 (0x00007f94bb2c8000)
         libz.so.1 => /lib/libz.so.1 (0x00007f94bb0b0000)
         /lib64/ld-linux-x86-64.so.2 (0x00007f94bbc7b000)

Should not be /lib64 or /lib

Sincerely,

William Harrington



More information about the Clfs-dev mailing list