[petsc-users] dyld[19098]: Library not loaded: @rpath/libHYPRE-2.32.0.dylib
Juan Salazar
jp.salazar at pm.me
Sat May 10 22:48:31 CDT 2025
Dear Pierre,
Indeed, many of the flags are unnecessary, but I was able to keep most of them. I inherited them from another group of developers that compile for linux. I’m the only one working to run this code natively on macOS. What I noticed is that if I pass LDFLAGS=-Wl,-ld_classic there are still duplicate LC_RPATH. However, with CXX_LINKER_FLAGS=-Wl,-ld_classic I get no duplicate LC_RPATH.
I indeed am usingOpenMPI via homebrew. But I was able to keep it.
Thanks!
Juan S.
> On May 9, 2025, at 12:34 PM, Pierre Jolivet <pierre at joliv.et> wrote:
>
> Did you install Open MPI via Homebrew?
> I don’t think this will work (at least, I have yet to see a single person make it work with the recent changes with Apple linker).
> I would:
> 1) remove all this unnecessary stuff
> CXX_LINKER_FLAGS=-Wl,-rpath,/opt/homebrew/lib CFLAGS="-g -O2 -fPIC" CXXFLAGS="-g -O2 -fPIC" FCFLAGS="-g -O2" FFLAGS="-g -O2" LDFLAGS="-Wl,-ld_classic -Wl,-commons,use_dylibs" MAKEFLAGS=w
> These are either: default parameters or low-level parameters that are likely to break stuff if not set appropriately.
> 2) add something like --download-mpich or --download-openmpi to your configure options
> 3) start fresh by removing your previous PETSC_ARCH directory
>
> Thanks,
> Pierre
>
>> On 9 May 2025, at 12:22 AM, Juan Salazar via petsc-users <petsc-users at mcs.anl.gov> wrote:
>>
>> Thank you for the feedback Matthew,
>>
>> I should explain why there is a difference in the path variables. I am compiling PETSc on case-sensitive Apple File System as a volume mounted at /Volume/OpenFOAM. This is because I compile OpenFOAM natively (it is developed for Linux, but with some tweaks it can be compiled on macOS). I use the PETSc library within custom OpenFOAM applications (solvers). Therefore I install PETSc in the same volume.
>>
>> Depending on how I reach the installation folder, the PWD variable will be set differently.
>>
>> Last login: Thu May 8 19:05:51 on ttys004
>> √ ~ % cd /Volumes/OpenFOAM/jsalazar-9/ThirdParty/petsc-3.23.1
>> √ petsc-3.23.1 % pwd
>> /Volumes/OpenFOAM/jsalazar-9/ThirdParty/petsc-3.23.1
>>
>> Last login: Thu May 8 19:07:38 on ttys004
>> √ ~ % cd ~/openfoam/jsalazar-9/ThirdParty/petsc-3.23.1
>> √ petsc-3.23.1 % pwd
>> /Users/jsalazar/openfoam/jsalazar-9/ThirdParty/petsc-3.23.1
>>
>> I noticed that within the python configure script the path is obtained invariably through the command os.getcwd().
>>
>> √ petsc-3.23.1 % python
>> Python 3.12.10 (main, Apr 8 2025, 11:35:47) [Clang 16.0.0 (clang-1600.0.26.6)] on darwin
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> import os
>>>>> os.getcwd()
>> '/Volumes/OpenFOAM/jsalazar-9/ThirdParty/petsc-3.23.1'
>>
>> This result is the same independent of how I got to the folder.
>>
>> So I ran ./configure again making sure that PWD is the same as os.getcwd(). Unfortunately this did not solve the problem. I believe the paths are consistent now.
>>
>> Thanks again,
>> Juan S.
>>
>>
>>
>>
>>
>>
>> <make.log><check.log><configure.log>
>
More information about the petsc-users
mailing list