[Aboriginal] Interesting case of aboriginal build failure
Denys Vlasenko
vda.linux at googlemail.com
Sat Mar 17 13:35:23 PDT 2012
I've got a native-compiler build failure,
dug a bit deeper, and here what I found:
The failure happens when we try to run libstdc++-v3 configure.
I added a shell invocation to experiment
interactively just before failing command:
build/packages/gcc-core/Makefile.in
configure-target-libstdc++-v3:
...
srcdiroption="--srcdir=$${topdir}/libstdc++-v3"; \
libsrcdir="$$s/libstdc++-v3"; \
rm -f no-such-file || : ; \
DBG==> sh </dev/tty >/dev/tty 2>&1; \
FAIL=> CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) $${srcdiroption} \
|| exit 1
@endif target-libstdc++-v3
So, I sit in my debug sh session:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Dec 7 15:39 /bin/sh -> bash
ls -l /bin/bash
-rwxr-xr-x 1 root root 888112 Nov 24 23:00 /bin/bash
Invocation of /bin/sh by configure script's #!/bin/sh
will try to load my host's /bin/bash. The problem is,
(running in another, ordinary host shell w/o tweaked environment,
so that /usr/bin/ldd is accessible and works:)
$ ldd /bin/bash
linux-gate.so.1 => (0xb776d000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0x4bcc8000)
libdl.so.2 => /lib/libdl.so.2 (0xb7754000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4b017000)
libc.so.6 => /lib/libc.so.6 (0xb75a6000)
/lib/ld-linux.so.2 (0xb776e000)
At this point in build process LD_LIBRARY_PATH is set:
$ env | grep LIBRARY
LD_LIBRARY_PATH=/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/i686-unknown-linux/libstdc++-v3/.libs:/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/i686-unknown-linux/libmudflap/.libs:/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/i686-unknown-linux/libssp/.libs:/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/i686-unknown-linux/libgomp/.libs:/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/./gcc:/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/./prev-gcc
and the following file exists:
/home/srcdevel/aboriginal/aboriginal-1261b8fd1ec9/build/temp-i686/build-gcc/gcc/libgcc_s.so.1
Second-to-last LD_LIBRARY_PATH element points to that dir.
Attempt to load /bin/sh -> /bin/bash will load wrong libgcc_s.so.1,
and we end up with:
/bin/sh: error while loading shared libraries: libc.so.0: cannot open
shared object file: No such file or directory
--
vda
More information about the Aboriginal
mailing list