Problems installing gmp

Herve Pages hpages at fhcrc.org
Tue Jul 25 18:32:58 CEST 2006


Hi Marc,

Thanks for the detailed explanation. I don't have any background either
on mix 32-bit/64-bit systems nor on Solaris (I was just asked to help to 
upgrade
gcc 3.5 to 4.1.1 on our Solaris server). Therefore my inability to 
understand
the ld issue I have with my 64-bit build of GMP.
I will re-read your email more carefully during the day, try what you 
suggest
and let you know if it worked.
Cheers,

H.

Marc Glisse wrote:
> On Mon, 24 Jul 2006, Marc Glisse wrote:
>
>>>    /usr/local/bin/bash ../libtool --mode=link gcc  -O2 -m64 -mptr64
>>>    -mcpu=ultrasparc3   -o t-count_zeros  t-count_zeros.o libtests.la
>>>    ../libgmp.la
>>>    gcc -O2 -m64 -mptr64 -mcpu=ultrasparc3 -o .libs/t-count_zeros
>>>    t-count_zeros.o  ./.libs/libtests.a
>>>    /usr/local/src/gmp-build/.libs/libgmp.so ../.libs/libgmp.so
>>>    -R/usr/local/lib
>>
>> Where is this -R/usr/local/lib coming from ? Very bad idea. It should be
>> /usr/local/lib/sparcv9 if anything.
>
> Ok more details. configure defaults PREFIX to /usr/local and libdir to 
> PREFIX/lib. This causes plenty of issues on biarch. It is a bad idea 
> (say forbidden) to mix 32 bits and 64 bits libraries in the same 
> directory. /usr/local/lib is for 32 bits libraries (at least that is 
> what your version of gcc decided), and this same version of gcc 
> probably uses /usr/local/lib/sparcv9 for 64 bits libraries. So from 
> now on, you should specify --libdir=/usr/local/lib/sparcv9 to 
> configure every time you build a 64 bits program that you want to 
> install directly in /usr/local. You could also install gmp elsewhere, 
> using --prefix=/opt/gmp-4.2.1-v9.
>
> Actually, the solaris runtime linker is clever enough to ignore 
> versions of a library that don't have the right class (say 32 bits 
> instead of 64), as long as it can find the right version. In your case 
> it cannot, which means your gcc installation has bad specs (it should 
> make sure the place where libgcc_s.so.1 is installed is in a path that 
> is looked at at runtime). One way many people deal with this is by 
> using crle to add /usr/local/lib(/sparcv9) to the default library 
> path, although I would not recommand it.
>
>> set LD_LIBRARY_PATH_64 to the directory with the right libgcc_s.so.1, at
>> runtime.
>
> I believe this is the easiest solution (set this variable in the 
> environment), the cleanest solution being to have the right -R flags.
>
> Hope this helped,
>


-- 
------------------------
Hervé Pagès
E-mail: hpages at fhcrc.org
 Phone: (206) 667-5791
   Fax: (206) 667-1319
------------------------



More information about the gmp-bugs mailing list