gmp 4.2.1 version

Marc Glisse marc.glisse at normalesup.org
Tue Jul 31 12:12:52 CEST 2007


On Mon, 30 Jul 2007, Orit Harel wrote:

> During our link time when gmp library is an input to this link command,
> we got the following:
>
> ld: fatal: relocation error: R_SPARC_H44: file
> /usr/local64/gmp-4.2.1/lib/libgmp.a(mp_set_fns.o): symbol
> __gmp_default_allocate: relocations
>
> based on the ABS44 coding model can not be used in building a shared
> object
>
> Adding the -K PIC flag to gmp library build has solved the problem.
>
> My question is:
>
> Is this the correct solution? How it will affect on the gmp usage ?

It is not the best way. There are two types of libraries: static and 
shared. For gmp you can build both (see the configure options). Linking 
with a shared library (lib*.so) means adding a runtime dependancy on this 
library. Linking with a static library or archive (lib*.a) means including 
relevant portions of this library in the object that is produced. To make 
it simple, only link the executable file with the static libraries. Here 
you are building a shared object so you should not link with a static 
library, you can either not link with gmp at all (and remember to link 
with gmp when you create an executable file using this shared object) or 
link with a shared version of libgmp.

-- 
Marc Glisse


More information about the gmp-bugs mailing list