nisse at lysator.liu.se
Wed Nov 17 10:08:22 CET 2010
By default, gmp's configure selects what it considers to be the best
available ABI, and it can be overridden manually with ABI=32 or ABI=64.
Can I pass any flag to configure to tell it that I want whatever ABI is
the compiler's default, so that after make install,
gcc foo.c -lgmp
will just work (assuming the same gcc was used for compiling gmp)? I'd
prefer not to have to write my own shell scripts to figure out things
1. which compiler to use (using the same rules as configure)
2. identify that compiler's default ABI
before invoking configure. That seems booth complex and fragile, and
better left for configure to do.
The system where I have observed problems: sparc-solaris systems with
gcc, where ./configure && make && make install in gmp builds 64-bit
objects, while gcc by default produces 32-bit objects. I get errors like
configure:10269: result: yes
configure:10283: checking for __gmpz_getlimbn in -lgmp
configure:10318: gcc -o conftest -g -O2 -I/export/xenofarm/xenofarm/client/lsh/mothra.roxen.com/buildtmp/dist/pfx/include -I/usr/local/include -L/export/xenofarm/xenofarm/client/lsh/mothra.roxen.com/buildtmp/dist/pfx/lib -L/usr/local/lib conftest.c -lgmp >&5
ld: warning: file /export/xenofarm/xenofarm/client/lsh/mothra.roxen.com/buildtmp/dist/pfx/lib/libgmp.a(getlimbn.o): wrong ELF class: ELFCLASS64
Undefined first referenced
symbol in file
ld: fatal: Symbol referencing errors. No output written to conftest
collect2: ld returned 1 exit status
configure:10325: $? = 1
This is when running nettle's configure script; just before this,
gmp-5.0.1 was built and installed with
--disable-shared. (configure for lsh tests the same thing).
In Nettle I have similar ABI detection needs as GMP, but I approach it
somewhat differently. I always let the compiler choose ABI (so to
configure the ABI, the user would need to pass something like
CFLAGS=-m64 or CC="gcc -m64"). Then I detect the ABI used by looking for
preprocessor symbols like __x86_64__, __sparcv9 and __arch64__, and use
this to select the correct assembler files. And finallly, I also tweak
the libdir default depending on the detected ABI.
PS. I'm not subscribed to this list, so please cc me on replies.
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
More information about the gmp-discuss