#47695: Compiling SLEPc with ARPACK supports breaks because of "Undefined symbols for architecture x86_64" -------------------------------------------------+------------------------- Reporter: drososkourounis@… | Owner: macports- Type: defect | tickets@… Priority: High | Status: new Component: ports | Milestone: Keywords: ARPACK, _pdseupd, _pdsaupd, | Version: 2.3.3 _pdnaupd | Port: ARPACK -------------------------------------------------+------------------------- Dear developers, something is wrong with the ARPACK library in MacPorts I tried several different ways to install it to no avail. At the end I found something as last chance: {{{ $ sudo port install arpack +openmpi -gcc46 -gcc47 -gcc45 -accelerate +atlas }}} All other options, of compiling arpack produce the same results as the one you see below, i.e., undefined symbols that are supposed to exists in the arpack library. I compiled without +openmpi and +atlas or +accelerate. All possible combinations. What is wrong? {{{ Starting Configure Run at Sun May 10 12:03:48 2015 Configure Options: ./configure --prefix=~/Work/Software/Optimization/FENICS/slepc-3.5.3/build --with- arpack=1 --with-arpack-dir=/opt/local/lib --with-arpack-flags=-larpack Working directory: /Users/drosos/Work/Software/Optimization/FENICS/slepc-3.5.3 Python version: 2.7.5 (default, Mar 9 2014, 22:15:05) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] make: /opt/local/bin/gmake PETSc source directory: /opt/local/lib/petsc PETSc install directory: /opt/local/lib/petsc PETSc version: 3.5.3 SLEPc source directory: /Users/drosos/Work/Software/Optimization/FENICS/slepc-3.5.3 SLEPc install directory: ~/Work/Software/Optimization/FENICS/slepc-3.5.3/build SLEPc version: 3.5.3 ================================================================================ Checking PETSc installation... #include "petscksp.h" int main() { Vec v; Mat m; KSP k; PetscInitializeNoArguments(); VecCreate(PETSC_COMM_WORLD,&v); MatCreate(PETSC_COMM_WORLD,&m); KSPCreate(PETSC_COMM_WORLD,&k); return 0; } /opt/local/bin/mpicc-openmpi-mp -o checklink.o -c -pipe -Os -arch x86_64 -fPIC -Os -I/opt/local/include -I/opt/local/lib/petsc/include -I/opt/local/lib/petsc/include -I/opt/local/include -I/opt/local/include /openmpi-mp -I/opt/local/include `pwd`/checklink.c /opt/local/bin/mpicc-openmpi-mp -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -pipe -Os -arch x86_64 -fPIC -Os -o checklink checklink.o -L/opt/local/lib/petsc/lib -L/opt/local/lib/petsc/lib -lpetsc -L/opt/local/lib -lHYPRE -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig /System/Library/Frameworks/Accelerate.framework/Versions/Current/Accelerate -lparmetis -lmetis -lpthread -lhwloc -lssl -lcrypto -ldl -L/opt/local/lib /openmpi-mp -lmpi_usempi -lmpi_mpifh -lmpi -lgfortran -L/opt/local/lib/gcc48/gcc/x86_64-apple-darwin13/4.8.4 -L/opt/local/lib/gcc48 -lgfortran -lSystem -lgcc_ext.10.5 -lquadmath -lm -ldl ================================================================================ Checking ARPACK library... === With linker flags: -L/opt/local/lib -larpack ====== With underscore Fortran names #include "petscksp.h" PETSC_EXTERN int pdnaupd_(); PETSC_EXTERN int pdneupd_(); PETSC_EXTERN int pdsaupd_(); PETSC_EXTERN int pdseupd_(); int main() { Vec v; Mat m; KSP k; PetscInitializeNoArguments(); VecCreate(PETSC_COMM_WORLD,&v); MatCreate(PETSC_COMM_WORLD,&m); KSPCreate(PETSC_COMM_WORLD,&k); pdnaupd_(); pdneupd_(); pdsaupd_(); pdseupd_(); return 0; } /opt/local/bin/mpicc-openmpi-mp -o checklink.o -c -pipe -Os -arch x86_64 -fPIC -Os -I/opt/local/include -I/opt/local/lib/petsc/include -I/opt/local/lib/petsc/include -I/opt/local/include -I/opt/local/include /openmpi-mp -I/opt/local/include `pwd`/checklink.c /opt/local/bin/mpicc-openmpi-mp -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -pipe -Os -arch x86_64 -fPIC -Os -o checklink checklink.o -L/opt/local/lib -larpack -L/opt/local/lib/petsc/lib -L/opt/local/lib/petsc/lib -lpetsc -L/opt/local/lib -lHYPRE -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig /System/Library/Frameworks/Accelerate.framework/Versions/Current/Accelerate -lparmetis -lmetis -lpthread -lhwloc -lssl -lcrypto -ldl -L/opt/local/lib /openmpi-mp -lmpi_usempi -lmpi_mpifh -lmpi -lgfortran -L/opt/local/lib/gcc48/gcc/x86_64-apple-darwin13/4.8.4 -L/opt/local/lib/gcc48 -lgfortran -lSystem -lgcc_ext.10.5 -lquadmath -lm -ldl Undefined symbols for architecture x86_64: "_pdnaupd_", referenced from: _main in checklink.o "_pdneupd_", referenced from: _main in checklink.o "_pdsaupd_", referenced from: _main in checklink.o "_pdseupd_", referenced from: _main in checklink.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) makefile:2: recipe for target 'checklink' failed gmake: *** [checklink] Error 1 ====== With capital Fortran names #include "petscksp.h" PETSC_EXTERN int PDNAUPD(); PETSC_EXTERN int PDNEUPD(); PETSC_EXTERN int PDSAUPD(); PETSC_EXTERN int PDSEUPD(); int main() { Vec v; Mat m; KSP k; PetscInitializeNoArguments(); VecCreate(PETSC_COMM_WORLD,&v); MatCreate(PETSC_COMM_WORLD,&m); KSPCreate(PETSC_COMM_WORLD,&k); PDNAUPD(); PDNEUPD(); PDSAUPD(); PDSEUPD(); return 0; } /opt/local/bin/mpicc-openmpi-mp -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -pipe -Os -arch x86_64 -fPIC -Os -o checklink checklink.o -L/opt/local/lib -larpack -L/opt/local/lib/petsc/lib -L/opt/local/lib/petsc/lib -lpetsc -L/opt/local/lib -lHYPRE -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig /System/Library/Frameworks/Accelerate.framework/Versions/Current/Accelerate -lparmetis -lmetis -lpthread -lhwloc -lssl -lcrypto -ldl -L/opt/local/lib /openmpi-mp -lmpi_usempi -lmpi_mpifh -lmpi -lgfortran -L/opt/local/lib/gcc48/gcc/x86_64-apple-darwin13/4.8.4 -L/opt/local/lib/gcc48 -lgfortran -lSystem -lgcc_ext.10.5 -lquadmath -lm -ldl Undefined symbols for architecture x86_64: "_pdnaupd_", referenced from: _main in checklink.o "_pdneupd_", referenced from: _main in checklink.o "_pdsaupd_", referenced from: _main in checklink.o "_pdseupd_", referenced from: _main in checklink.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) makefile:2: recipe for target 'checklink' failed gmake: *** [checklink] Error 1 ====== With unmodified Fortran names #include "petscksp.h" PETSC_EXTERN int pdnaupd(); PETSC_EXTERN int pdneupd(); PETSC_EXTERN int pdsaupd(); PETSC_EXTERN int pdseupd(); int main() { Vec v; Mat m; KSP k; PetscInitializeNoArguments(); VecCreate(PETSC_COMM_WORLD,&v); MatCreate(PETSC_COMM_WORLD,&m); KSPCreate(PETSC_COMM_WORLD,&k); pdnaupd(); pdneupd(); pdsaupd(); pdseupd(); return 0; } /opt/local/bin/mpicc-openmpi-mp -o checklink.o -c -pipe -Os -arch x86_64 -fPIC -Os -I/opt/local/include -I/opt/local/lib/petsc/include -I/opt/local/lib/petsc/include -I/opt/local/include -I/opt/local/include /openmpi-mp -I/opt/local/include `pwd`/checklink.c /opt/local/bin/mpicc-openmpi-mp -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -pipe -Os -arch x86_64 -fPIC -Os -o checklink checklink.o -L/opt/local/lib -larpack -L/opt/local/lib/petsc/lib -L/opt/local/lib/petsc/lib -lpetsc -L/opt/local/lib -lHYPRE -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig /System/Library/Frameworks/Accelerate.framework/Versions/Current/Accelerate -lparmetis -lmetis -lpthread -lhwloc -lssl -lcrypto -ldl -L/opt/local/lib /openmpi-mp -lmpi_usempi -lmpi_mpifh -lmpi -lgfortran -L/opt/local/lib/gcc48/gcc/x86_64-apple-darwin13/4.8.4 -L/opt/local/lib/gcc48 -lgfortran -lSystem -lgcc_ext.10.5 -lquadmath -lm -ldl Undefined symbols for architecture x86_64: "_pdnaupd", referenced from: _main in checklink.o "_pdneupd", referenced from: _main in checklink.o "_pdsaupd", referenced from: _main in checklink.o "_pdseupd", referenced from: _main in checklink.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) makefile:2: recipe for target 'checklink' failed gmake: *** [checklink] Error 1 ERROR: Unable to link with library ARPACK ERROR: In directories /opt/local/lib ERROR: With flags -L/opt/local/lib -larpack }}} -- Ticket URL: <https://trac.macports.org/ticket/47695> MacPorts <https://www.macports.org/> Ports system for OS X