[petsc-users] petsc rpath

Lisandro Dalcin dalcinl at gmail.com
Wed Nov 24 13:40:19 CST 2010


Perhaps you should add a --with-rpath option to ./configure ? For
reference, MPICH2 did that (>=1.3), I believe the idea was to make the
life of distro packagers easier.

On 24 November 2010 15:28, Jens-Malte Gottfried <jmgottfried at web.de> wrote:
> Thanks a lot Satish, your patch did the job :-)
>
> Am 24.11.2010 17:19, schrieb Satish Balay:
>> On Wed, 24 Nov 2010, Satish Balay wrote:
>>
>>> B1;2601;0cOn Wed, 24 Nov 2010, Jed Brown wrote:
>>>
>>>> On Wed, Nov 24, 2010 at 16:26, Jens-Malte Gottfried <jmgottfried at web.de>wrote:
>>>>
>>>>> I am trying to write a gentoo ebuild for petsc (my current work is
>>>>> already in the science overlay).
>>>>> Is there any possibility to disable writing the RPATH of the
>>>>> to-be-generated libpetsc.so?
>>>>> Currently, the library is built fine but RPATH is set to
>>>>>
>>>>>
>>>>> /usr/lib64:/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4:/usr/x86_64-pc-linux-gnu/lib
>>>>> which is not neccessary. Before trying to patch the build system,
>>>>> perhaps there is a simple configure option which I did not find.
>>>>>
>>>> The standard build system does not provide an easy way to do this.  If you
>>>> are using petsc-dev, you use CMake (configure as usual, but then run make
>>>> from $PETSC_DIR/$PETSC_ARCH instead of from $PETSC_DIR).  The CMake build
>>>> files default to setting RPATH, but it is easy to set the cache variables to
>>>> disable RPATH.
>>> Some of the above comes from 'gfortran -v' - which checkFortranLibraries() etc do..
>>>
>>> For such known systems with known compatibility libraries [ and each
>>> language compiler can find each others libs] you can use:
>>>
>>> [for c++ build]
>> I meant c build..
>>
>>> -with-clib-autodetect=0 -with-fortranlib-autodetect=0 LIBS=-lgfortran
>>>
>>> [for c++ build]
>>> -with-clib-autodetect=0 -with-cxxlib-autodetect=0 -with-fortranlib-autodetect=0 LIBS='-lstdc++ -lgfortran'
>>>
>>> Wrt -rpath for -lpetsc, perhaps commenting out the following line in
>>> config/BuildSystem/config/setCompilers.py is sufficient:
>>>
>>>     self.executeTest(self.checkSharedLinkerPaths)
>> Actually you need '-L' there - so the following change will remove -rpath
>>
>> asterix:/home/balay/tmp/petsc-dist-test/config/BuildSystem>hg diff
>> diff -r 5fac76781491 config/setCompilers.py
>> --- a/config/setCompilers.py    Mon Sep 20 16:15:14 2010 -0500
>> +++ b/config/setCompilers.py    Wed Nov 24 10:12:46 2010 -0600
>> @@ -1188,7 +1188,7 @@
>>        self.pushLanguage(language)
>>        # test '-R' before '-rpath' as sun compilers [c,fortran] don't give proper errors with wrong options.
>>        if not Configure.isDarwin():
>> -        testFlags = ['-Wl,-rpath,', '-R','-rpath ' , '-Wl,-R,']
>> +        testFlags = []
>>        else:
>>          testFlags = []
>>        # test '-R' before '-Wl,-rpath' for SUN compilers [as cc on linux accepts -Wl,-rpath, but  f90 & CC do not.
>> asterix:/home/balay/tmp/petsc-dist-test/config/BuildSystem>
>>
>>
>>
>> Satish
>
>



-- 
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169


More information about the petsc-users mailing list