[ecl-android v0.0.1]

Pascal J. Bourguignon pjb at informatimago.com
Tue Nov 10 01:32:57 UTC 2015


Daniel Kochmański <daniel at 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 at 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.


-- 
__Pascal Bourguignon__                 http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk




More information about the ecl-devel mailing list