[petsc-users] [Slepc 3.7.1][macOS] install name is set to build folder instead of prefix

Denis Davydov davydden at gmail.com
Mon Jul 11 14:43:47 CDT 2016


> On 11 Jul 2016, at 21:06, Jose E. Roman <jroman at dsic.upv.es> wrote:
> 
> I don't understand why I don't get this warning.
> Still I don't see where the problem is. Please tell me exactly what you want me to change, or better make a pull request.

The problem has to do with the assumptions in python scripts. See below values of variables which will not work as expected, 
i.e. installName = oldname.replace(self.archDir, self.installDir) will not do any replace.
Why you can’t reproduce it — i don’t know.

In any case, i have a working solution, so it’s not an issue for me and it is up to you if you want to further investigate it.
I just wanted to point out that this part of the python code does not work in all circumstances.

Regards,
Denis.


>>>> so here is what happens. The issue appears when SLEPC_DIR is set to a symlink (the one with “stage below) of a build folder (the one with “private” below). 
>>>> During configure there is a warning that SLEPC_DIR is not the same as current dir (string comparison),
>>>> but one is symlink of another, so all but install_name_tool work. The latter leads to the following values of variables:
>>>> 
>>>> oldname    =/private/var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/davydden/spack-stage/spack-stage-MziaMV/slepc-3.7.1/installed-arch-darwin-c-opt/lib/libslepc.3.7.dylib
>>>> 
>>>> installName=/private/var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/davydden/spack-stage/spack-stage-MziaMV/slepc-3.7.1/installed-arch-darwin-c-opt/lib/libslepc.3.7.dylib
>>>> 
>>>> archDir    =/Users/davydden/spack/var/spack/stage/slepc-3.7.1-gimrzhb4mozeus3i2hdmrtjp3tha5pgr/slepc-3.7.1/installed-arch-darwin-c-opt
>>>> 
>>>> installDir =/Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/slepc-3.7.1-gimrzhb4mozeus3i2hdmrtjp3tha5pgr
>>>> 
>>>> dst        =/Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/slepc-3.7.1-gimrzhb4mozeus3i2hdmrtjp3tha5pgr/lib/libslepc.3.7.1.dylib
>>>> 
>>>> As you see, installName wasn’t changed from oldname.
>>>> 
>>>> Since the python code rely on SLEPC_DIR be pwd(), i would suggest to through an error instead of the warning to make
>>>> sure that users won’t get in the situation above. Alternative is to make this part of the code more robust.
>>>> 
>>>> When SLEPC_DIR==pwd() the patch you referred works.



More information about the petsc-users mailing list