compiling ecl android on MacOSX

Pascal J. Bourguignon pjb at informatimago.com
Sat Feb 27 21:51:34 UTC 2016


Hello,

We cannot compile ecl for android on MacOSX, because *nm* is used by gmp 
configure instead of
$PLATFORM_PREFIX/bin/arm-linux-androideabi-nm

With NM=$PLATFORM_PREFIX/bin/arm-linux-androideabi-nm  in 
ecl/src/configure:5630, it passes:
checking how to define a 32-bit word... .long
but I'm not sure it's correct to hard wire this NM in ecl/src/configure; 
isn't it generated from
autoconf?

Well, configure passes, but then:

;;;   Invoking external command:
;;;   arm-linux-androideabi-gcc -I. -I/Users/pjb/src/android/ecl/build/ 
-DECL_API -I/Users/pjb/src/android/ecl/build/c -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 -DANDROID -DPLATFORM_ANDROID 
-DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING -DAO_REQUIRE_CAS 
-g -O2 -fPIC -D_THREAD_SAFE -Dandroid -I/Users/pjb/src/android/ecl/src/c 
-c lsp/predlib.c -o lsp/predlib.o In file included from ./ecl/ecl.h:82:0,
                  from ./ecl/ecl-cmp.h:29,
                  from lsp/predlib.c:3:
lsp/predlib.c: In function 'si_long_float_p':
lsp/predlib.c:1067:42: error: 't_longfloat' undeclared (first use in 
this function)
    value0 = ecl_make_bool(type_of(v1x) == t_longfloat);
                                           ^
./ecl/object.h:126:28: note: in definition of macro 'ecl_make_bool'
  #define ecl_make_bool(x) ((x)? ECL_T : ECL_NIL)
                             ^
lsp/predlib.c:1067:42: note: each undeclared identifier is reported only 
once for each function it appears in
    value0 = ecl_make_bool(type_of(v1x) == t_longfloat);
                                           ^
./ecl/object.h:126:28: note: in definition of macro 'ecl_make_bool'
  #define ecl_make_bool(x) ((x)? ECL_T : ECL_NIL)
                             ^
lsp/predlib.c: In function 'cl_coerce':
lsp/predlib.c:2194:14: warning: assignment makes pointer from integer 
without a cast [enabled by default]
        value0 = ecl_make_long_float(ecl_to_long_double(v12c__value));
               ^

It seems :long-float is put on *feature* when it should not.





It should also be noted that Android is transitionning to 64-bit too, 
(and iOS already only accepts applications in the AppStore only if they 
include 64-bit binaries).

https://source.android.com/source/64-bit-builds.html

-- 
__Pascal J. Bourguignon__
http://www.informatimago.com/




More information about the ecl-devel mailing list