Unable to run "make check" on Solaris 10

Tim Cook - PAE Tim.Cook at Sun.COM
Fri Mar 13 00:26:26 CET 2009


Dennis,

Well, I actually am aiming for including $ORIGIN in the RPATH, so that 
the library I build will first look in the same directory for any 
dependencies.

In order to do this, I set LD_OPTIONS for the make step, for example:

     export LD_OPTIONS='-R $ORIGIN:/usr/sfw/lib'

I do not have the patience or knowledge to get this value (including the 
unexpanded dollar sign) through all the autoconf stuff, but fortunately 
LD_OPTIONS is neither seen or (re)set by any of the autoconf, configure 
or make steps.  It is just picked up by ld.

Now, if I want to run the "make check" step, I revert to not having 
LD_OPTIONS set, but then I found the bare vanilla "configure; make; make 
check" did not do enough to help the test executable find libgmp.so 
within the build tree.

Here is what I get for one of the test executables:

     potts-cl ) pwd
     /export/build/gmp-4.2.4/build.i386/tests/mpq/.libs
     potts-cl ) elfdump -d t-cmp | grep PATH
            [4]  RUNPATH           0x8c2               /usr/local/lib
            [5]  RPATH             0x8c2               /usr/local/lib
     potts-cl ) ldd t-cmp
             libgmp.so.3 =>   (file not found)
             libc.so.1 =>     /lib/libc.so.1
             libm.so.2 =>     /lib/libm.so.2

Regards,
Tim

Dennis Clarke wrote:
>> My apologies - I intended to add 2 logfiles, which are now attached:
>>
>> - make.plain.1.out.gz
>> 	Output of the "make" step
>> - make_check.plain.1.out
>> 	Output of the "make check" step
> 
> Tim, I have been working on older legacy systems because, as you know,
> Blastwave supports people still on Solaris 8 and even sun4m in some really
> edge cases. I was able to get libgmp to build and pass all tests on
> Solaris 8 with Sun Studio 8 on sun4m.
> 
> The exact same code with Studio 11 on Solaris 8 UltraSparc will not
> compile with the same environment variables.  Studio 12 is no better.
> 
> bizarre but true.
> 
> Not sure how you managed to not resolve the location of libgmp however,
> what does elfdump foo | grep RPATH say ?  What I have, and this is correct
> for the Blastwave world, is this :
> $ elfdump lib/sparcv8/libgmp.so.3.4.4 | /usr/xpg4/bin/grep -E "RPATH|RUNPATH"
>        [3]  RUNPATH          0x60ea           
> /opt/csw/lib/$ISALIST:/opt/csw/lib
>        [4]  RPATH            0x60ea           
> /opt/csw/lib/$ISALIST:/opt/csw/lib
> 
> However the C++ compiler mangled my $ISALIST :
> 
> $ elfdump lib/sparcv8/libgmpxx.so.4.0.4 | /usr/xpg4/bin/grep -E
> "RPATH|RUNPATH"
>        [5]  RUNPATH          0x97b            
> /opt/csw/lib:/opt/csw/lib/SALIST:/opt/SUNWspro/lib/rw7:/opt/SUNWspro/lib/stlport4:/opt/SUNWspro/lib:/usr/ccs/lib:/usr/lib
>        [6]  RPATH            0x97b            
> /opt/csw/lib:/opt/csw/lib/SALIST:/opt/SUNWspro/lib/rw7:/opt/SUNWspro/lib/stlport4:/opt/SUNWspro/lib:/usr/ccs/lib:/usr/lib
> 
> Strangely my $ISALIST was mangled. This looks to be due to a compiler bug
> and when I look in the output lib sure enough I see that my RPATH:RUNPATH
> has been mangled by the compiler some how.
> 
> Starting at offset 0x000100d :
> 
> 000100d  53  55  4e
>          S   U   N
> 0001010  57  70  72  69  76  61  74  65  5f  31  2e  31  00  6c  69  62
>          W   p   r   i   v   a   t   e   _   1   .   1  \0   l   i   b
> 0001020  67  6d  70  2e  73  6f  2e  33  00  6c  69  62  67  6d  70  78
>          g   m   p   .   s   o   .   3  \0   l   i   b   g   m   p   x
> 0001030  78  2e  73  6f  2e  34  00  2f  6f  70  74  2f  63  73  77  2f
>          x   .   s   o   .   4  \0   /   o   p   t   /   c   s   w   /
> 0001040  6c  69  62  3a  2f  6f  70  74  2f  63  73  77  2f  6c  69  62
>          l   i   b   :   /   o   p   t   /   c   s   w   /   l   i   b
> 0001050  2f  53  41  4c  49  53  54  3a  2f  6f  70  74  2f  53  55  4e
>          /   S   A   L   I   S   T   :   /   o   p   t   /   S   U   N
> 0001060  57  73  70  72  6f  2f  6c  69  62  2f  72  77  37  3a  2f  6f
>          W   s   p   r   o   /   l   i   b   /   r   w   7   :   /   o
> 0001070  70  74  2f  53  55  4e  57  73  70  72  6f  2f  6c  69  62  2f
>          p   t   /   S   U   N   W   s   p   r   o   /   l   i   b   /
> 0001080  73  74  6c  70  6f  72  74  34  3a  2f  6f  70  74  2f  53  55
>          s   t   l   p   o   r   t   4   :   /   o   p   t   /   S   U
> 0001090  4e  57  73  70  72  6f  2f  6c  69  62  3a  2f  75  73  72  2f
>          N   W   s   p   r   o   /   l   i   b   :   /   u   s   r   /
> 00010a0  63  63  73  2f  6c  69  62  3a  2f  75  73  72  2f  6c  69  62
>          c   c   s   /   l   i   b   :   /   u   s   r   /   l   i   b
> 00010b0  00
> 
> I have been fighting with both compilers and libgmp for at least a week
> now and it is often unclear if I am seeing a bug in the gmp code or in the
> Studio compilers.
> 
> How are you compiling libgmp? With Studio 12? Are you using the STLport
> implementation of the standard library?
> 
> Dennis Clarke
> http://www.blastwave.org/
> 
> 

-- 
Tim Cook
Performance and Applications Engineering
Menlo Park, CA USA
<> Sun Microsystems
Ph:     +1 650 257 4709
Ext:	69841


More information about the gmp-bugs mailing list