On Tue, May 27, 2014 at 01:11:14PM +0800, Zhenqiang Chen wrote: > On 27 May 2014 11:59, Denys Dmytriyenko <de...@denix.org> wrote: > > On Tue, May 27, 2014 at 11:17:47AM +0800, Zhenqiang Chen wrote: > >> On 27 May 2014 10:17, Denys Dmytriyenko <de...@denix.org> wrote: > >> > Hi, > >> > > >> > I've been having this issue with latest binary Linaro 2014.04 toolchain > >> > from > >> > http://releases.linaro.org/14.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.xz > >> > > >> > It comes with own sysroot, but linker fails to locate > >> > /lib/ld-linux-armhf.so.3 > >> > > >> > $ make > >> > arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o > >> > nvs.o nvs.c > >> > arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o > >> > misc_cmds.o misc_cmds.c > >> > arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o > >> > calibrator.o calibrator.c > >> > arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o > >> > plt.o plt.c > >> > arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o > >> > wl18xx_plt.o wl18xx_plt.c > >> > arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o > >> > ini.o ini.c > >> > arm-linux-gnueabihf-gcc -L/tmp/lib/ nvs.o misc_cmds.o calibrator.o plt.o > >> > wl18xx_plt.o ini.o -lm -lnl-3 -lnl-genl-3 -o calibrator > >> > /opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: > >> > cannot find /lib/ld-linux-armhf.so.3 > >> > collect2: error: ld returned 1 exit status > >> > Makefile:26: recipe for target 'all' failed > >> > make: *** [all] Error 1 > >> > > >> > And when I pass my own sysroot, it works fine. > >> > > >> > Is it supposed to work as a standalone toolchain with its own bundled > >> > sysroot? > >> > >> It should work as a standalone toolchain. Please check do you have > >> ld-linux-armhf.so.3 at > >> /opt/linaro-2014.04/arm-linux-gnueabihf/libc/lib/ > > > > $ ls -l /opt/linaro-2014.04/arm-linux-gnueabihf/libc/lib/ > > total 8 > > drwxr-xr-x 2 root root 4096 May 26 21:35 arm-linux-gnueabi > > drwxr-xr-x 2 root root 4096 May 26 21:33 arm-linux-gnueabihf > > lrwxrwxrwx 1 root root 38 May 22 15:11 ld-linux-armhf.so.3 -> > > arm-linux-gnueabihf/ld-2.19-2014.04.so > > lrwxrwxrwx 1 root root 36 May 22 15:11 ld-linux.so.3 -> > > arm-linux-gnueabi/ld-2.19-2014.04.so > > > > > >> If ld-linux-armhf.so.3 is there, please show us more detail log by > >> adding option "-v" in your last step. > > > > arm-linux-gnueabihf-gcc -v -L/tmp/lib/ nvs.o misc_cmds.o calibrator.o plt.o > > wl18xx_plt.o ini.o -lm -lnl-3 -lnl-genl-3 -o calibrator > > Using built-in specs. > > COLLECT_GCC=arm-linux-gnueabihf-gcc > > COLLECT_LTO_WRAPPER=/opt/linaro-2014.04/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.3/lto-wrapper > > Target: arm-linux-gnueabihf > > Configured with: > > /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.8-2014.04/configure > > --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu > > --target=arm-linux-gnueabihf > > --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install > > > > --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc > > --enable-languages=c,c++,fortran --enable-multilib --with-arch=armv7-a > > --with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard > > --with-pkgversion='crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC > > 4.8-2014.04' --with-bugurl=https://bugs.launchpad.net/gcc-linaro > > --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp > > --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static > > > > --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/st atic --with-mpc=/cbuild/sla > ves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static > > --with-isl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static > > --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static > > --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static > --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id > --enable-gold > --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc > --enable-c99 --enable-long-long --with-mode=thumb --with-float=hard > > Thread model: posix > > gcc version 4.8.3 20140401 (prerelease) (crosstool-NG > > linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04) > > COMPILER_PATH=/opt/linaro-2014.04/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.3/:/opt/linaro-2014.04/bin/../libexec/gcc/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../libexec/gcc/:/opt/linaro-2014.04/bin/../libexec/gcc/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ > > LIBRARY_PATH=/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/:/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../lib/gcc/:/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/lib/:/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/lib/:/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/:/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/:/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/ > > COLLECT_GCC_OPTIONS='-v' '-L/tmp/lib/' '-o' 'calibrator' '-march=armv7-a' > > '-mtune=cortex-a9' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb' > > '-mtls-dialect=gnu' > > /opt/linaro-2014.04/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.3/collect2 > > --sysroot=/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc --build-id > > --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X -m > > armelf_linux_eabi -o calibrator > > /opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/crt1.o > > > > /opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/crti.o > > /opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/crtbegin.o > > -L/tmp/lib/ -L/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3 > > -L/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf > > -L/opt/linaro-2014.04/bin/../lib/gcc > > -L/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf > > -L/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/lib > > > > -L/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf > > -L/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/lib > > -L/opt/linaro-2014.04/bin/../arm-linux-gnueab ihf/libc/lib/arm-linux-gnue > abihf > -L/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf > -L/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib > -L/opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf > nvs.o misc_cmds.o calibrator.o plt.o wl18xx_plt.o ini.o -lm -lnl-3 > -lnl-genl-3 -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed > -lgcc_s --no-as-needed > /opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/crtend.o > /opt/linaro-2014.04/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/crtn.o > > /opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: > > cannot find /lib/ld-linux-armhf.so.3 > > collect2: error: ld returned 1 exit status > > Makefile:26: recipe for target 'all' failed > > make: *** [all] Error 1 > > It seams correct. I downloaded the toolchain and tried to build a > small project. It worked. > > Can you create a sample project for us to reproduce your issue?
After further investigation, it appears the problem is not with the toolchain itself, but with the way OE "external-toolchain" recipe mangles libc.so when preparing the sysroot. When that sysroot is being used w/o passing the explicit --sysroot option, I get the above error, it works with the option though. Anyway, sorry for the noise, I'll follow up with the patch to fix the OE external-toolchain recipe, which I'm testing here now. -- Denys _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain