ld fails under Solaris/i386
tg at gmplib.org
Fri Jan 15 17:38:20 CET 2010
Marc Glisse <marc.glisse at normalesup.org> writes:
On Fri, 20 Nov 2009, Marc Glisse wrote:
> On Fri, 20 Nov 2009, Vincent Lefevre wrote:
>> When building GMP, ld fails under Solaris (see attachment for
>> config.log and make output). First error is:
>> ld: fatal: symbol `__gmpz_abs' is multiply-defined:
>> (file .libs/assert.o type=FUNC; file mpz/.libs/abs.o type=FUNC);
> In gmp.h, for sunpro, there is a line that says "extern inline"
> where it should be just "inline" (see previous discussions here). It
> looks like it hasn't been fixed in mercurial yet.
As the above paragraph suggests, you just need to remove the word
"extern" on line 466 of gmp-h.in to let gmp compile with sunpro (well,
the version I tried segfaulted on the "reuse" test in gmp5, but that
is something else).
Using just "inline" without some other keyword seems just wrong.
1. The function will appear in .o files even if not used (waste of space).
2. The function will appear as global in many .o files and thus cause
multiply defined symbol errors.
More information about the gmp-bugs