Opened 5 years ago

Last modified 5 years ago

#47695 new defect

arpack @3.1.5: Compiling SLEPc with ARPACK supports breaks because of "Undefined symbols for architecture x86_64"

Reported by: drososkourounis@… Owned by: mamoll (Mark Moll)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc:
Port: arpack

Description

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

Change History (3)

comment:1 Changed 5 years ago by mf2k (Frank Schima)

Priority: HighNormal

The Priority field is only for use by Macports committers.

comment:2 Changed 5 years ago by ryandesign (Ryan Schmidt)

Keywords: ARPACK _pdseupd _pdsaupd _pdnaupd removed
Owner: changed from macports-tickets@… to mmoll@…
Port: arpack added; ARPACK removed
Summary: Compiling SLEPc with ARPACK supports breaks because of "Undefined symbols for architecture x86_64"arpack @3.1.5: Compiling SLEPc with ARPACK supports breaks because of "Undefined symbols for architecture x86_64"

comment:3 Changed 5 years ago by mamoll (Mark Moll)

It looks like you are compiling SLEPc yourself rather than installing it through MacPorts. I cannot reproduce your error with port install slepc on OS X 10.10.3:

> port installed arpack slepc openmpi-default
The following ports are currently installed:
  arpack @3.1.5_0+accelerate+gcc49 (active)
  openmpi-default @1.7.5_3+gcc49 (active)
  slepc @3.5.3_1+openmpi (active)
Note: See TracTickets for help on using tickets.