[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