Daniel Kochmański daniel@turtleware.eu writes:
Hey,
I've noticed in your scripts that you build without the dffi - please try removing this option. It seems unrelated but who knows.
Didn't help.
I can't reproduce your error unfortunately. I have however a suspicion why libtool can't "see" the toolchain in the path.
src/bdwgc/libatomic_ops/configure:7972:LIBTOOL='$(SHELL) $(top_builddir)/libtool'
Probably the PATH variable gets "cleaned" when invoking the shell command and libtool from libatomic_ops can't see the libtool.
Please try remove the invocation of libtool via /bin/sh
src/bdwgc/libatomic_ops/configure:7972:LIBTOOL='$(top_builddir)/libtool'
If it works for you please let me know so I'll fix it in the sourcecode.
Doesn't help.
But I notice an inconsistency in the libtool scripts generated. For example, ecl/build/libffi/libtool contains:
NM="/home/pjb/opt/toolchains/android-arm-ndk-android-18/bin/arm-linux-androideabi-nm -B" OBJDUMP="arm-linux-androideabi-objdump" AR="arm-linux-androideabi-ar" STRIP="arm-linux-androideabi-strip" RANLIB="arm-linux-androideabi-ranlib" LTCC="arm-linux-androideabi-gcc -fPIC" striplib="arm-linux-androideabi-strip --strip-unneeded" LD="/home/pjb/opt/toolchains/android-arm-ndk-android-18/arm-linux-androideabi/bin/ld" CC="arm-linux-androideabi-gcc -fPIC" LD="/home/pjb/opt/toolchains/android-arm-ndk-android-18/arm-linux-androideabi/bin/ld" CC="arm-linux-androideabi-g++"
So, sometimes, there's a full path to the cross compiler tools, and sometimes, there's just the file name.
As bash scripts, they will load /etc/profile and ~/.bash_profile (or else ~/.bash_login or else ~/.profile) and $BASH_ENV; the later will usually set the PATH, overriding the environment.
Since we configure the PATH when compiling (either in a script like my compile-toolchain.sh, or in an interactive shell), this environment variable will usually be overriden when bash scripts such as libtool are started.
If I source my android.sh where the PATH is updated in my $BASH_ENV, then the compilation with the cross compiler proceeds successfully.
[pjb@kuiper :0.0 android]$ file ~/opt/toolchains/android-arm-ecl/bin/ecl /home/pjb/opt/toolchains/android-arm-ecl/bin/ecl: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, not stripped
I would therefore advice to either copy the environment PATH in those scripts, or only use absolute path for the cross compiler commands.