Hey! regarding the "nm" problem, use ecl from the repository. This is already fixed regression. If it still doesn't build, please let us know.
Best regards, Daniel Chris Gorman writes: > Hello All, > > I'm new to ecl and am just hacking around with my end goal being a port of > maxima, which runs on lisp, to an android device. > > I've been informed of the need to build ecl with the apple gcc, and have > turned off macports gcc, thanks for the tip. > > To build the host version of ecl we pass -m32 to CFLAGS and LDFLAGS as well > as setting the environment variable ABI=32. This causes my build to fail on > win32.S, and my assembly is too poor to debug this. The output from the > build follows. > > /bin/sh ./libtool --mode=compile gcc -fPIC -fno-common > -DHAVE_CONFIG_H -I. -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi -I. > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/include -Iinclude > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/src -I. > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/include -Iinclude > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/src -m32 -g -O2 -fPIC > -fno-common -D_THREAD_SAFE -MT src/x86/win32.lo -MD -MP -MF $depbase.Tpo -c > -o src/x86/win32.lo > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S &&\ > mv -f $depbase.Tpo $depbase.Plo > libtool: compile: gcc -fPIC -fno-common -DHAVE_CONFIG_H -I. > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi -I. > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/include -Iinclude > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/src -I. > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/include -Iinclude > -I/Users/chrisgorman/src/ecl-16.1.2/src/libffi/src -m32 -g -O2 -fPIC > -fno-common -D_THREAD_SAFE -MT src/x86/win32.lo -MD -MP -MF > src/x86/.deps/win32.Tpo -c > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S -o > src/x86/win32.o > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S:1325:section > difference relocatable subtraction expression, ".LFE5" minus ".LFB5" using a > symbol at the end of section will not produce an assembly time constant > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S:1325:use a > symbol with a constant value created with an assignment instead of the > expression, L_const_sym = .LFE5 - .LFB5 > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S:1317:section > difference relocatable subtraction expression, ".LEFDE5" minus ".LASFDE5" > using a symbol at the end of section will not produce an assembly time > constant > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S:1317:use a > symbol with a constant value created with an assignment instead of the > expression, L_const_sym = .LEFDE5 - .LASFDE5 > /Users/chrisgorman/src/ecl-16.1.2/src/libffi/src/x86/win32.S:unknown:missing > indirect symbols for section (__IMPORT,__jump_table) > make[3]: *** [src/x86/win32.lo] Error 1 > make[2]: *** [install-recursive] Error 1 > make[1]: *** [libeclffi.a] Error 2 > make: *** [all] Error 2 > > If I change the build command and remove the 32 bit switches and environment > settings, the build will succeed. > > I then tried cross compile the android binaries following the instructions in > INSTALL. I can only get the configure script to run half way. It dies as... > > ./configure --host=arm-linux-androideabi > --prefix=`pwd`/ecl-android > --with-cross-config=`pwd`/src/util/android.cross_config > --disable-soname > Switching to directory `build' to continue configuration. > checking build system type... i386-apple-darwin10.8.0 > checking host system type... arm-unknown-linux-androideabi > checking for arm-linux-androideabi-gcc... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... yes > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc accepts > -g... yes > checking for > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc option to > accept ISO C89... none needed > checking whether we are using the GNU C++ compiler... yes > checking whether > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ accepts > -g... yes > checking how to run the C preprocessor... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -E > checking for arm-linux-androideabi-ranlib... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-ranlib > checking for a BSD-compatible install... /usr/bin/install -c > checking whether ln -s works... yes > checking whether make sets $(MAKE)... yes > checking for arm-linux-androideabi-ranlib... (cached) > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-ranlib > checking for arm-linux-androideabi-ar... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-ar > checking for etags... etags > checking for ld flags when building shared libraries... -shared > checking for required libraries... -ldl > checking for architecture... ARM > checking for software type... android / > checking for __thread local data... yes > checking for install-info... /opt/local/bin/install-info > checking for __gmpz_init in -lgmp... no > configure: Configuring included GMP library: > configure: WARNING: you should use --build, --host, --target > checking build system type... i386-apple-darwin10.8.0 > checking host system type... arm-unknown-linux-androideabi > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for arm-linux-androideabi-strip... arm-linux-androideabi-strip > checking for a thread-safe mkdir -p... > /Users/chrisgorman/src/ecl-16.1.2/src/gmp/install-sh -c -d > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking whether make supports nested variables... yes > checking whether to enable maintainer-specific portions of Makefiles... no > checking ABI=standard > checking whether > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC is > gcc... yes > checking compiler > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -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 ... yes > checking whether ARM gcc unsigned division works... yes > checking for arm-linux-androideabi-gcc... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... yes > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > accepts -g... yes > checking for > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > option to accept ISO C89... none needed > checking whether > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > understands -c and -o together... yes > checking for > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > option to accept ISO C99... -std=gnu99 > checking for > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 option to accept ISO Standard C... (cached) -std=gnu99 > checking how to run the C preprocessor... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 -E > checking build system compiler > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99... no > checking build system compiler > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 -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 ... no > checking build system compiler cc... yes > checking for build system preprocessor... cc -E > checking for build system executable suffix... > checking for build system compiler math library... -lm > checking for grep that handles long lines and -e... /opt/local/bin/grep > checking for egrep... /opt/local/bin/grep -E > using ABI="standard" > CC="/Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc > -fPIC -std=gnu99" > CFLAGS="-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" > CPPFLAGS=" " > MPN_PATH=" arm generic" > checking for arm-linux-androideabi-ar... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-ar > checking for BSD- or MS-compatible name lister (nm)... nm > checking the name lister (nm) interface... BSD nm > checking how to print strings... printf > checking for a sed that does not truncate output... /opt/local/bin/gsed > checking for fgrep... /opt/local/bin/grep -F > checking for ld used by > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99... > /Users/chrisgorman/src/toolchain-r9d/arm-linux-androideabi/bin/ld > checking if the linker > (/Users/chrisgorman/src/toolchain-r9d/arm-linux-androideabi/bin/ld) is GNU > ld... yes > checking whether ln -s works... yes > checking the maximum length of command line arguments... 196608 > checking how to convert i386-apple-darwin10.8.0 file names to > arm-unknown-linux-androideabi format... func_convert_file_noop > checking how to convert i386-apple-darwin10.8.0 file names to toolchain > format... func_convert_file_noop > checking for > /Users/chrisgorman/src/toolchain-r9d/arm-linux-androideabi/bin/ld option to > reload object files... -r > checking for arm-linux-androideabi-objdump... objdump > checking how to recognize dependent libraries... pass_all > checking for arm-linux-androideabi-dlltool... dlltool > checking how to associate runtime and link libraries... printf %s\n > checking for arm-linux-androideabi-ar... (cached) > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-ar > checking for archiver @FILE support... @ > checking for arm-linux-androideabi-strip... (cached) > arm-linux-androideabi-strip > checking for arm-linux-androideabi-ranlib... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-ranlib > checking command to parse nm output from > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 object... failed > checking for sysroot... no > checking for a working dd... /bin/dd > checking how to truncate binary pipes... /bin/dd bs=4096 count=1 > checking for arm-linux-androideabi-mt... no > checking for mt... no > checking if : is a manifest tool... no > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking for dlfcn.h... yes > checking for objdir... .libs > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 supports -fno-rtti -fno-exceptions... no > checking for > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 option to produce PIC... -fPIC -DPIC > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 PIC flag -fPIC -DPIC works... yes > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 static flag -static works... yes > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 supports -c -o file.o... yes > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 supports -c -o file.o... (cached) yes > checking whether the > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-gcc -fPIC > -std=gnu99 linker > (/Users/chrisgorman/src/toolchain-r9d/arm-linux-androideabi/bin/ld) supports > shared libraries... yes > checking dynamic linker characteristics... Android linker > checking how to hardcode library paths into programs... immediate > checking whether stripping libraries is possible... yes > checking if libtool supports shared libraries... yes > checking whether to build shared libraries... no > checking whether to build static libraries... yes > checking how to run the C++ preprocessor... > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ -E > checking whether the > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ linker > (/Users/chrisgorman/src/toolchain-r9d/arm-linux-androideabi/bin/ld) supports > shared libraries... yes > checking for > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ option to > produce PIC... -DPIC > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ PIC flag > -DPIC works... yes > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ static > flag works... yes > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ supports > -c -o file.o... yes > checking if > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ supports > -c -o file.o... (cached) yes > checking whether the > /Users/chrisgorman/src/toolchain-r9d/bin/arm-linux-androideabi-g++ linker > (/Users/chrisgorman/src/toolchain-r9d/arm-linux-androideabi/bin/ld) supports > shared libraries... yes > checking dynamic linker characteristics... Android linker > checking how to hardcode library paths into programs... immediate > checking for ANSI C header files... (cached) yes > checking whether time.h and sys/time.h may both be included... yes > checking float.h usability... yes > checking float.h presence... yes > checking for float.h... yes > checking langinfo.h usability... no > checking langinfo.h presence... no > checking for langinfo.h... no > checking locale.h usability... yes > checking locale.h presence... yes > checking for locale.h... yes > checking nl_types.h usability... no > checking nl_types.h presence... no > checking for nl_types.h... no > checking whether ungetc is declared... yes > checking return type of signal handlers... void > checking for intmax_t... yes > checking for long double... yes > checking for long long... yes > checking for ptrdiff_t... yes > checking for quad_t... no > checking for uint_least32_t... yes > checking for preprocessor stringizing operator... yes > checking for working volatile... yes > checking whether <stdarg.h> exists and works... yes > checking whether gcc __attribute__ ((const)) works... yes > checking whether gcc __attribute__ ((malloc)) works... yes > checking whether gcc __attribute__ ((mode (XX))) works... yes > checking whether gcc __attribute__ ((noreturn)) works... yes > checking for inline... inline > checking for cos in -lm... yes > checking for working alloca.h... yes > checking for alloca (via gmp-impl.h)... yes > checking how to allocate temporary memory... alloca > checking whether byte ordering is bigendian... no > checking format of `double' floating point... IEEE little endian > checking for localeconv... no > checking for memset... yes > checking for nl_langinfo... no > checking for obstack_vprintf... no > checking for raise... yes > checking for strchr... yes > checking for strtol... yes > checking for suitable m4... m4 > checking if m4wrap produces spurious output... no > checking how to switch to text section... .text > checking how to switch to data section... .data > checking for assembler label suffix... : > checking for assembler global directive... .globl > checking for assembler global directive attribute... > checking if globals are prefixed by underscore... unknown > configure: WARNING: > +---------------------------------------------------------- > configure: WARNING: | Cannot determine global symbol prefix. > configure: WARNING: | nm output doesn't contain a global data symbol. > configure: WARNING: | Will proceed with no underscore. > configure: WARNING: | If this is wrong then you'll get link errors referring > configure: WARNING: | to ___gmpn_add_n (note three underscores). > configure: WARNING: | In this case do a fresh build with an override, > configure: WARNING: | ./configure gmp_cv_asm_underscore=yes > configure: WARNING: > +---------------------------------------------------------- > checking how to switch to read-only data section... .section .rodata > checking for assembler .type directive... .type $1,#$2 > checking for assembler .size directive... .size $1,$2 > checking for assembler local label prefix... L > checking for assembler byte directive... .byte > checking how to define a 32-bit word... configure: error: cannot determine > how to define a 32-bit word > configure: error: Failed to configure the GMP library. > > If anyone has clues as to how to get this to work on my old clunker, please > let me know. > > Thanks > > Chris Gorman -- Daniel Kochmański ;; aka jackdaniel | Poznań, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi