Hello,

We would like to make the libraries generated from PETSc compilation and installation more easily relocatable. Currently, we work around this limitation by using LD_LIBRARY_PATH in the environment and manually modifying the RPATH recorded in the libraries to remove it.

Recently, we discovered an interesting approach: during the build process, we can set a relative RPATH using the $ORIGIN variable, which corresponds to the directory containing the library. This allows libpetsc.so dependencies to be referenced relatively instead of absolutely, making the library "movable" without requiring LD_LIBRARY_PATH modifications. We can also apply the same approach to our binaries.

To avoid manually modifying the libraries after their creation, we were wondering if there is a way to configure PETSc to use a relative RPATH with $ORIGIN directly?

I looked through PETSc's configuration options and files but couldn't find anything mentioning $ORIGIN, and very little related to RPATH.

A SPACK newbie question: is this achievable with SPACK?

Thanks in advance for your help!

Eric

--
Eric Chamberland, ing., M. Ing
Professionnel de recherche
GIREF/Université Laval
(418) 656-2131 poste 41 22 42

Reply via email to