Sounds like the issue is with using findPetsc - after petsc is installed [and 
petsc install went fine?]

I think the current recommendation is to use pkg-config file interface via 
cmake -instead of findPetsc

And the following works for me..

./configure  COPTFLAGS="-O3 -g" CXXOPTFLAGS="-O3 -g" FOPTFLAGS="-O3 -g" \
--download-openmpi --with-64-bit-indices --download-metis --download-parmetis \
--download-suitesparse --download-superlu_dist --download-hypre 
--download-scalapack --download-mumps \
--with-debugging=0 --with-clean

A couple of notes:

- we recommend not using 'sudo' when building PETSc [and build/use petsc from 
user account. one can also install in a system-wide location using a user 
account]
- not use --with-cxx-dialect - and let configure determine it.
- petsc does not use boost [its there for trilinos - but that part is broken]

Satish

On Mon, 13 Nov 2023, Barry Smith wrote:

> 
>   Please send configure.log (best to petsc-ma...@mcs.anl.gov).
> 
> 
> > On Nov 13, 2023, at 11:41 AM, Abhinav Singh <abhinavrajen...@gmail.com> 
> > wrote:
> > 
> > Dear Petsc devs,
> > 
> > I have been having issues lately when compiling petsc on MacOS with various 
> > libraries. This is probably due to the updated linker in MacOS and 
> > unfortunately the newer operating systems do not allow using older 
> > toolchains.
> > 
> > on arm64, only 3.20 and up can be configured
> > 
> > 
> > My configure command usually looks like this:
> > 'sudo ./configure  COPTFLAGS=-O3 -g CXXOPTFLAGS=-O3 -g FOPTFLAGS=-O3 -g 
> > --with-cxx-dialect=C++11 --with-mpi-dir=/opt/openfpm/dep_clang/MPI 
> > --with-64-bit-indices  --with-parmetis-dir=/opt/openfpm/dep_clang/PARMETIS 
> > --with-metis-dir=/opt/openfpm/dep_clang/METIS --with-boost=yes 
> > --with-boost-dir=/opt/openfpm/dep_clang/BOOST 
> > --with-suitesparse-dir=/opt/openfpm/dep_clang/SUITESPARSE 
> > --download-superlu_dist --download-hypre 
> > --prefix=/opt/openfpm/dep_clang/PETSC --download-scalapack --download-mumps 
> > --with-debugging=0 --with-clean
> > '
> > 
> > There are two main issues:
> > 
> > 1) Duplicate 'LC_Paths' when compiling code with apple clang and gfortran. 
> > If I enable download_scalapack, the the cmake findPetsc fails with the 
> > following error on both x86 and arm64:
> > """
> >  kind: "try_run-v1"
> >     backtrace:
> >       - 
> > "/opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/Internal/CheckSourceRuns.cmake:93
> >  (try_run)"
> >       - 
> > "/opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/CheckCSourceRuns.cmake:52
> >  (cmake_check_source_runs)"
> >       - "cmake_modules/FindPackageMultipass.cmake:97 (check_c_source_runs)"
> >       - "cmake_modules/FindPETSc.cmake:284 (multipass_source_runs)"
> >       - "cmake_modules/FindPETSc.cmake:318 (petsc_test_runs)"
> >       - "CMakeLists.txt:69 (find_package)"
> >     checks:
> >       - "Performing Test MULTIPASS_TEST_4_petsc_works_all"
> >     directories:
> >       source: 
> > "/Users/absingh/openfpm_pdata/build/CMakeFiles/CMakeScratch/TryCompile-LJcmJB"
> >       binary: 
> > "/Users/absingh/openfpm_pdata/build/CMakeFiles/CMakeScratch/TryCompile-LJcmJB"
> >     cmakeVariables:
> >       CMAKE_C_FLAGS: ""
> >       CMAKE_EXE_LINKER_FLAGS: ""
> >       CMAKE_MODULE_PATH: "/Users/absingh/openfpm_pdata/cmake_modules/"
> >       CMAKE_OSX_ARCHITECTURES: ""
> >       CMAKE_OSX_DEPLOYMENT_TARGET: ""
> >       CMAKE_OSX_SYSROOT: 
> > "/Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk"
> >     buildResult:
> >       variable: "MULTIPASS_TEST_4_petsc_works_all_COMPILED"
> >       cached: true
> >       stdout: |
> >         Change Dir: 
> > '/Users/absingh/openfpm_pdata/build/CMakeFiles/CMakeScratch/TryCompile-LJcmJB'
> >         
> >         Run Build Command(s): /opt/homebrew/Cellar/cmake/3.27.7/bin/cmake 
> > -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_e0165/fast
> >         /Library/Developer/CommandLineTools/usr/bin/make  -f 
> > CMakeFiles/cmTC_e0165.dir/build.make CMakeFiles/cmTC_e0165.dir/build
> >         Building C object CMakeFiles/cmTC_e0165.dir/src.c.o
> >         /Library/Developer/CommandLineTools/usr/bin/cc 
> > -DMULTIPASS_TEST_4_petsc_works_all -I/opt/openfpm/dep_clang/PETSC/include 
> > -I/opt/openfpm/dep_clang/SUITESPARSE/include 
> > -I/opt/openfpm/dep_clang/PARMETIS/include 
> > -I/opt/openfpm/dep_clang/METIS/include 
> > -I/opt/openfpm/dep_clang/BOOST/include -I/opt/openfpm/dep_clang/MPI/include 
> > -arch arm64 -isysroot 
> > /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk -MD -MT 
> > CMakeFiles/cmTC_e0165.dir/src.c.o -MF CMakeFiles/cmTC_e0165.dir/src.c.o.d 
> > -o CMakeFiles/cmTC_e0165.dir/src.c.o -c 
> > /Users/absingh/openfpm_pdata/build/CMakeFiles/CMakeScratch/TryCompile-LJcmJB/src.c
> >         Linking C executable cmTC_e0165
> >         /opt/homebrew/Cellar/cmake/3.27.7/bin/cmake -E cmake_link_script 
> > CMakeFiles/cmTC_e0165.dir/link.txt --verbose=1
> >         /Library/Developer/CommandLineTools/usr/bin/cc  -arch arm64 
> > -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk 
> > -Wl,-search_paths_first -Wl,-headerpad_max_install_names 
> > CMakeFiles/cmTC_e0165.dir/src.c.o -o cmTC_e0165  
> > -Wl,-rpath,/opt/openfpm/dep_clang/PETSC/lib 
> > -Wl,-rpath,/opt/openfpm/dep_clang/SUITESPARSE/lib 
> > /opt/openfpm/dep_clang/PETSC/lib/libpetsc.dylib 
> > /opt/openfpm/dep_clang/PETSC/lib/libHYPRE.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libspqr.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libumfpack.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libklu.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libcholmod.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libbtf.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libccolamd.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libcolamd.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libcamd.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libamd.dylib 
> > /opt/openfpm/dep_clang/SUITESPARSE/lib/libsuitesparseconfig.dylib /opt/
 openfpm/
 dep_clang/PETSC/lib/libdmumps.a 
/opt/openfpm/dep_clang/PETSC/lib/libmumps_common.a 
/opt/openfpm/dep_clang/PETSC/lib/libpord.a 
/Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr/lib/libpthread.tbd 
/opt/openfpm/dep_clang/PETSC/lib/libscalapack.dylib 
/opt/openfpm/dep_clang/PETSC/lib/libsuperlu_dist.dylib 
/Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr/lib/liblapack.tbd 
/Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr/lib/libblas.tbd 
/opt/openfpm/dep_clang/PARMETIS/lib/libparmetis.a 
/opt/openfpm/dep_clang/METIS/lib/libmetis.dylib 
/opt/openfpm/dep_clang/MPI/lib/libmpi_usempif08.dylib 
/opt/openfpm/dep_clang/MPI/lib/libmpi_usempi_ignore_tkr.a 
/opt/openfpm/dep_clang/MPI/lib/libmpi_mpifh.dylib 
/opt/openfpm/dep_clang/MPI/lib/libmpi.dylib 
/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/libgfortran.dylib 
/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/gcc/aarch64-apple-darwin23/13/libemutls_w.a
 /opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/libquadmath.d
 ylib /Li
 brary/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr/lib/libc++.tbd 
/Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr/lib/libgcc_s.1.tbd 
> >         ld: warning: duplicate LC_RPATH are deprecated 
> > ('/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/gcc/aarch64-apple-darwin23/13')
> >         ld: warning: duplicate LC_RPATH are deprecated 
> > ('/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/gcc')
> >         ld: warning: duplicate LC_RPATH are deprecated 
> > ('/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current')
> >         ld: warning: duplicate LC_RPATH are deprecated 
> > ('/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/gcc/aarch64-apple-darwin23/13')
> >         ld: warning: duplicate LC_RPATH are deprecated 
> > ('/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/gcc')
> >         ld: warning: duplicate LC_RPATH are deprecated 
> > ('/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current')
> >         ld: duplicate LC_RPATH 
> > '/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/gcc/aarch64-apple-darwin23/13'
> >  in '/opt/openfpm/dep_clang/PETSC/lib/libscalapack.2.2.1.dylib'
> >         clang: error: linker command failed with exit code 1 (use -v to see 
> > invocation)
> >         make[1]: *** [cmTC_e0165] Error 1
> >         make: *** [cmTC_e0165/fast] Error 2
> >         
> >       exitCode: 2
> >     runResult:
> >       variable: "MULTIPASS_TEST_4_petsc_works_all_EXITCODE"
> >       cached: true
> > """
> > 
> > Second, on arm64, I am unable to use the option 
> > "with-metis-dir=/path/to/metis". The installation works fine but when I run 
> > make check, I get the error that 'libmetis.dylib' is not found. This 
> > behavior continues even when I export 'DYLD_LIBRARY_PATH' to have the 
> > libmetis. CMake findPetsc also fails with the same error.
> > 
> > Any advice would be great. 
> > 
> > Thank you!
> > Abhinav
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 

Reply via email to