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 > > > > > > > > > > > > > > > > > > >