'make check' failure with disabled shared libraries on Mac OSX 10.6
Torbjorn Granlund
tg at gmplib.org
Sun Nov 28 12:33:02 CET 2010
listboss <listboss at gmail.com> writes:
$ ./config.guess
pentiumm-apple-darwin10.5.0
$ ./configure --disable-shared
$ make; make check
....
libtool: link: gcc -std=gnu99 -m32 -O2 -pedantic -fomit-frame-pointer
-mtune=pentium3 -march=pentium3 -o t-bswap t-bswap.o
./.libs/libtests.a /Users/hamid/Downloads/gmp-5.0.1/.libs/libgmp.a
../.libs/libgmp.a
Undefined symbols:
"_calling_conventions_save_esi", referenced from:
_calling_conventions in libtests.a(x86call.o)
_calling_conventions in libtests.a(x86call.o)
These a internal GMP calls that somehow go wrong.
Mac OS X is the only surviving platform that still use a variant of the
old aout executable format, which prefixes symbols with an underscore.
GMP is set up to detect this, to appropriately prefix symbols in its
assembly code.
This seems to fail on your system. How it can work in a shared build
but not a static one is a mystery. Perhaps you have a GMP install in
some standard system lib directory (which would be something like
/lib. /usr/lib, or /usr/local/lib on non-Apple systems, while Apple like
zany prefixes like /private). The shared build then might link to that
libgmp.so (or whatever shared libs are called on Apple systems) and not
your newly compiler one.
To be able to understand this, we need:
1. The output printed to stdout from your 'configure' command, including
the command flags you use (please repeat them, even if you stated them
above). Please use a static build.
2. The compressed (bzip2, gzip) contents of config.log.
3. Send the output of 'make check' to a file. Then look for the m4
invocation for x86call.asm. Please repeat that manually by
cut-and-paste, and send us the output.
--
Torbjörn
More information about the gmp-discuss
mailing list