Cross compile shared libraries for ARM

Danilo Câmara danilo at fcamara.net
Thu Aug 2 18:31:34 CEST 2007


I don't know if it's an issue with the libtool or with the GMP
configure. When I run configure I get the output below stating libtool
doesn't supports shared libraries. If I proceed with make, the static
library compiles successfully, but I need the shared one.

Any help?

Thanks


$ ./configure CC=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc --host=arm
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking build system type... i686-pc-linux-gnu
checking host system type... arm-unknown-none
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for arm-strip... no
checking for strip... strip
checking whether to enable maintainer-specific portions of Makefiles... no
checking ABI=standard
checking whether /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc is gcc... yes
checking compiler /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc -O3 -fomit-frame-pointer ... yes
checking whether ARM gcc unsigned division works... yes
checking for arm-gcc... /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc accepts -g... yes
checking for /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc -E
checking build system compiler /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc... no
checking build system compiler /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc -O3 -fomit-frame-pointer ... no
checking build system compiler cc... yes
checking for build system preprocessor... cc -E
checking for build system executable suffix... 
checking whether build system compiler is ANSI... yes
checking for build system compiler math library... -lm
checking for egrep... grep -E
using ABI="standard"
      CC="/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc"
      CFLAGS="-O3 -fomit-frame-pointer"
      CPPFLAGS=""
      MPN_PATH=" arm generic"
checking for function prototypes... yes
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 string.h... (cached) yes
checking for arm-ar... no
checking for ar... ar
checking for BSD-compatible nm... nm
checking for BSD-compatible nm... /usr/bin/nm -B
checking for a sed that does not truncate output... /bin/sed
checking for ld used by /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc... /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/arm-unknown-linux-gnu/bin/ld
checking if the linker (/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/arm-unknown-linux-gnu/bin/ld) is GNU ld... yes
checking for /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/arm-unknown-linux-gnu/bin/ld option to reload object files... -r
checking whether ln -s works... yes
checking how to recognise dependent libraries... unknown
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc object... ok
checking for objdir... .libs
checking for arm-ar... ar
checking for arm-ranlib... no
checking for ranlib... ranlib
checking for arm-strip... strip
checking if /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc static flag  works... yes
checking if /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc option to produce PIC... -fPIC
checking if /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc PIC flag -fPIC works... yes
checking if /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc supports -c -o file.o... yes
checking whether the /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc linker (/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/arm-unknown-linux-gnu/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
configure: creating libtool
checking for ANSI C header files... (cached) yes
checking whether time.h and sys/time.h may both be included... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking invent.h usability... no
checking invent.h presence... no
checking for invent.h... no
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nl_types.h usability... yes
checking nl_types.h presence... yes
checking for nl_types.h... yes
checking sys/attributes.h usability... no
checking sys/attributes.h presence... no
checking for sys/attributes.h... no
checking sys/iograph.h usability... no
checking sys/iograph.h presence... no
checking for sys/iograph.h... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/processor.h usability... no
checking sys/processor.h presence... no
checking for sys/processor.h... no
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking sys/sysinfo.h usability... yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking sys/syssgi.h usability... no
checking sys/syssgi.h presence... no
checking for sys/syssgi.h... no
checking sys/systemcfg.h usability... no
checking sys/systemcfg.h presence... no
checking for sys/systemcfg.h... no
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking for sys/resource.h... yes
checking for sys/sysctl.h... yes
checking for machine/hal_sysinfo.h... no
checking whether fgetc is declared... yes
checking whether fscanf is declared... yes
checking whether optarg is declared... yes
checking whether ungetc is declared... yes
checking whether vfprintf is declared... yes
checking whether sys_errlist is declared... yes
checking whether sys_nerr 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... yes
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, swapped halves
checking for alarm... yes
checking for attr_get... no
checking for clock... yes
checking for clock_gettime... no
checking for cputime... no
checking for getpagesize... yes
checking for getrusage... yes
checking for gettimeofday... yes
checking for getsysinfo... no
checking for localeconv... yes
checking for memset... yes
checking for mmap... yes
checking for mprotect... yes
checking for nl_langinfo... yes
checking for obstack_vprintf... yes
checking for popen... yes
checking for processor_info... no
checking for pstat_getprocessor... no
checking for raise... yes
checking for read_real_time... no
checking for sigaction... yes
checking for sigaltstack... yes
checking for sigstack... yes
checking for syssgi... no
checking for strchr... yes
checking for strerror... yes
checking for strnlen... yes
checking for strtol... yes
checking for strtoul... yes
checking for sysconf... yes
checking for sysctl... yes
checking for sysctlbyname... no
checking for times... yes
checking for vsnprintf... yes
checking whether vsnprintf works... probably
configure: WARNING: cannot check for properly working vsnprintf when cross compiling, will assume it's ok
checking whether sscanf needs writable input... no
checking for struct pst_processor.psp_iticksperclktick... no
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... no
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... .long
checking if .align assembly directive is logarithmic... yes
checking for unsigned short... yes
checking size of unsigned short... 2
checking for unsigned... yes
checking size of unsigned... 4
checking for unsigned long... yes
checking size of unsigned long... 4
checking for mp_limb_t... yes
checking size of mp_limb_t... 4
checking for stack_t... yes
checking for tputs in -lncurses... no
checking for tputs in -lcurses... no
checking for readline in -lreadline... no
checking readline detected... no
checking for bison... bison -y
checking for flex... flex
checking for yywrap in -lfl... no
checking for yywrap in -ll... no
checking lex output file root... lex.yy
checking whether yytext is a pointer... no
checking for arm-ranlib... ranlib
creating config.m4
configure: creating ./config.status
config.status: creating demos/pexpr-config.h
config.status: creating demos/calc/calc-config.h
config.status: creating Makefile
config.status: creating mpbsd/Makefile
config.status: creating mpf/Makefile
config.status: creating mpn/Makefile
config.status: creating mpq/Makefile
config.status: creating mpz/Makefile
config.status: creating printf/Makefile
config.status: creating scanf/Makefile
config.status: creating cxx/Makefile
config.status: creating tests/Makefile
config.status: creating tests/devel/Makefile
config.status: creating tests/mpbsd/Makefile
config.status: creating tests/mpf/Makefile
config.status: creating tests/mpn/Makefile
config.status: creating tests/mpq/Makefile
config.status: creating tests/mpz/Makefile
config.status: creating tests/rand/Makefile
config.status: creating tests/misc/Makefile
config.status: creating tests/cxx/Makefile
config.status: creating doc/Makefile
config.status: creating tune/Makefile
config.status: creating demos/Makefile
config.status: creating demos/calc/Makefile
config.status: creating demos/expr/Makefile
config.status: creating gmp.h
config.status: creating mp.h
config.status: creating config.h
config.status: config.h is unchanged
config.status: linking ./mpn/generic/add.c to mpn/add.c
config.status: linking ./mpn/generic/add_1.c to mpn/add_1.c
config.status: linking ./mpn/arm/add_n.asm to mpn/add_n.asm
config.status: linking ./mpn/generic/sub.c to mpn/sub.c
config.status: linking ./mpn/generic/sub_1.c to mpn/sub_1.c
config.status: linking ./mpn/arm/sub_n.asm to mpn/sub_n.asm
config.status: linking ./mpn/arm/mul_1.asm to mpn/mul_1.asm
config.status: linking ./mpn/arm/addmul_1.asm to mpn/addmul_1.asm
config.status: linking ./mpn/arm/submul_1.asm to mpn/submul_1.asm
config.status: linking ./mpn/generic/lshift.c to mpn/lshift.c
config.status: linking ./mpn/generic/rshift.c to mpn/rshift.c
config.status: linking ./mpn/generic/dive_1.c to mpn/dive_1.c
config.status: linking ./mpn/generic/diveby3.c to mpn/diveby3.c
config.status: linking ./mpn/generic/divis.c to mpn/divis.c
config.status: linking ./mpn/generic/divrem.c to mpn/divrem.c
config.status: linking ./mpn/generic/divrem_1.c to mpn/divrem_1.c
config.status: linking ./mpn/generic/divrem_2.c to mpn/divrem_2.c
config.status: linking ./mpn/generic/fib2_ui.c to mpn/fib2_ui.c
config.status: linking ./mpn/generic/mod_1.c to mpn/mod_1.c
config.status: linking ./mpn/generic/mod_34lsub1.c to mpn/mod_34lsub1.c
config.status: linking ./mpn/generic/mode1o.c to mpn/mode1o.c
config.status: linking ./mpn/generic/pre_divrem_1.c to mpn/pre_divrem_1.c
config.status: linking ./mpn/generic/pre_mod_1.c to mpn/pre_mod_1.c
config.status: linking ./mpn/generic/dump.c to mpn/dump.c
config.status: linking ./mpn/generic/mul.c to mpn/mul.c
config.status: linking ./mpn/generic/mul_fft.c to mpn/mul_fft.c
config.status: linking ./mpn/generic/mul_n.c to mpn/mul_n.c
config.status: linking ./mpn/generic/mul_basecase.c to mpn/mul_basecase.c
config.status: linking ./mpn/generic/sqr_basecase.c to mpn/sqr_basecase.c
config.status: linking ./mpn/generic/random.c to mpn/random.c
config.status: linking ./mpn/generic/random2.c to mpn/random2.c
config.status: linking ./mpn/generic/pow_1.c to mpn/pow_1.c
config.status: linking ./mpn/generic/rootrem.c to mpn/rootrem.c
config.status: linking ./mpn/generic/sqrtrem.c to mpn/sqrtrem.c
config.status: linking ./mpn/generic/get_str.c to mpn/get_str.c
config.status: linking ./mpn/generic/set_str.c to mpn/set_str.c
config.status: linking ./mpn/generic/scan0.c to mpn/scan0.c
config.status: linking ./mpn/generic/scan1.c to mpn/scan1.c
config.status: linking ./mpn/generic/popham.c to mpn/popcount.c
config.status: linking ./mpn/generic/popham.c to mpn/hamdist.c
config.status: linking ./mpn/generic/cmp.c to mpn/cmp.c
config.status: linking ./mpn/generic/perfsqr.c to mpn/perfsqr.c
config.status: linking ./mpn/generic/bdivmod.c to mpn/bdivmod.c
config.status: linking ./mpn/generic/gcd_1.c to mpn/gcd_1.c
config.status: linking ./mpn/generic/gcd.c to mpn/gcd.c
config.status: linking ./mpn/generic/gcdext.c to mpn/gcdext.c
config.status: linking ./mpn/generic/tdiv_qr.c to mpn/tdiv_qr.c
config.status: linking ./mpn/generic/dc_divrem_n.c to mpn/dc_divrem_n.c
config.status: linking ./mpn/generic/sb_divrem_mn.c to mpn/sb_divrem_mn.c
config.status: linking ./mpn/generic/jacbase.c to mpn/jacbase.c
config.status: linking ./mpn/generic/get_d.c to mpn/get_d.c
config.status: linking ./mpn/generic/mullow_n.c to mpn/mullow_n.c
config.status: linking ./mpn/generic/mullow_basecase.c to mpn/mullow_basecase.c
config.status: linking ./mpn/arm/udiv.asm to mpn/udiv.asm
config.status: linking ./mpn/arm/copyi.asm to mpn/copyi.asm
config.status: linking ./mpn/arm/copyd.asm to mpn/copyd.asm
config.status: linking ./mpn/arm/invert_limb.asm to mpn/invert_limb.asm
config.status: linking ./mpn/generic/addsub_n.c to mpn/addsub_n.c
config.status: linking ./mpn/arm/gmp-mparam.h to gmp-mparam.h

-- 
Danilo Câmara <danilo at fcamara.net>



More information about the gmp-discuss mailing list