[Trilinos-Users] [EXTERNAL] building Trilinos with BUILD_SHARED_LIBS on

Bill Spotz wfspotz at sandia.gov
Sun Dec 14 21:17:02 MST 2014


Hi Nathan,

So the underscores have me thinking that this is a Fortran-related issue.  I compile PyTrilinos all the time with shared libraries on, but I also turn Fortran off because getting compiler version numbers to match has been more trouble than it is worth.  Try building with Fortran disabled and see if it clears this up.

Unfortunately, we haven't been able to upgrade to Yosemite at Sandia, so if it is a 10.10-related  problem, I won't be able to reproduce it.

If Fortran is the problem, and you need it enabled, then hopefully I'll be able to reproduce it.

-Bill

On Dec 12, 2014, at 5:23 PM, Roberts, Nathan V. <nvroberts at alcf.anl.gov> wrote:

> Hi all,
> 
> I generally build Trilinos statically.  However, I’m now interested in experimenting with PyTrilinos—my ultimate interest is in providing a Python interface for Camellia—and it appears that to use this, I need to set 
> 
> BUILD_SHARED_LIBS:BOOL=ON
> 
> in my do-configure script.  Having done so, the do-configure completes successfully, but the build itself fails while trying to link Epetra.  The link line and the error message are below.  I include my do-configure script at bottom.  Any assistance is very much appreciated.  (Building on OS X Yosemite.)
> 
> I have the same issue with both the public git repo and the 11.12.1 release.
> 
> Thanks,
> Nate
> 
> /Users/nroberts/lib/openmpi-1.8.3/bin/mpicxx  -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -dynamiclib -Wl,-headerpad_max_install_names   -compatibility_version 11.0.0 -current_version 11.12.1 -o libepetra.11.12.1.dylib -install_name /Users/nroberts/trilinos-11.12.1-Source/build/mpi-release-shared/packages/epetra/src/libepetra.11.dylib CMakeFiles/epetra.dir/Epetra_BLAS.cpp.o CMakeFiles/epetra.dir/Epetra_BasicDirectory.cpp.o CMakeFiles/epetra.dir/Epetra_BasicRowMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_BlockMap.cpp.o CMakeFiles/epetra.dir/Epetra_BlockMapData.cpp.o CMakeFiles/epetra.dir/Epetra_C_wrappers.cpp.o CMakeFiles/epetra.dir/Epetra_CompObject.cpp.o CMakeFiles/epetra.dir/Epetra_CrsGraph.cpp.o CMakeFiles/epetra.dir/Epetra_CrsGraphData.cpp.o CMakeFiles/epetra.dir/Epetra_CrsMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_CrsSingletonFilter.cpp.o CMakeFiles/epetra.dir/Epetra_Data.cpp.o CMakeFiles/epetra.dir/Epetra_DistObject.cpp.o CMakeFiles/epetra.dir/Epetra_Export.cpp.o CMakeFiles/epetra.dir/Epetra_FECrsGraph.cpp.o CMakeFiles/epetra.dir/Epetra_FECrsMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_FEVbrMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_FEVector.cpp.o CMakeFiles/epetra.dir/Epetra_Flops.cpp.o CMakeFiles/epetra.dir/Epetra_Fortran_wrappers.cpp.o CMakeFiles/epetra.dir/Epetra_Import.cpp.o CMakeFiles/epetra.dir/Epetra_Import_Util.cpp.o CMakeFiles/epetra.dir/Epetra_IntSerialDenseMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_IntSerialDenseVector.cpp.o CMakeFiles/epetra.dir/Epetra_IntVector.cpp.o CMakeFiles/epetra.dir/Epetra_JadMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_LAPACK.cpp.o CMakeFiles/epetra.dir/Epetra_LinearProblem.cpp.o CMakeFiles/epetra.dir/Epetra_LocalMap.cpp.o CMakeFiles/epetra.dir/Epetra_Map.cpp.o CMakeFiles/epetra.dir/Epetra_MapColoring.cpp.o CMakeFiles/epetra.dir/Epetra_MultiVector.cpp.o CMakeFiles/epetra.dir/Epetra_Object.cpp.o CMakeFiles/epetra.dir/Epetra_OffsetIndex.cpp.o CMakeFiles/epetra.dir/Epetra_RowMatrixTransposer.cpp.o CMakeFiles/epetra.dir/Epetra_SerialComm.cpp.o CMakeFiles/epetra.dir/Epetra_SerialCommData.cpp.o CMakeFiles/epetra.dir/Epetra_SerialDenseMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_SerialDenseSVD.cpp.o CMakeFiles/epetra.dir/Epetra_SerialDenseSolver.cpp.o CMakeFiles/epetra.dir/Epetra_SerialDenseVector.cpp.o CMakeFiles/epetra.dir/Epetra_SerialDistributor.cpp.o CMakeFiles/epetra.dir/Epetra_SerialSpdDenseSolver.cpp.o CMakeFiles/epetra.dir/Epetra_SerialSymDenseMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_Time.cpp.o CMakeFiles/epetra.dir/Epetra_Util.cpp.o CMakeFiles/epetra.dir/Epetra_VbrMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_Vector.cpp.o CMakeFiles/epetra.dir/Epetra_LongLongSerialDenseMatrix.cpp.o CMakeFiles/epetra.dir/Epetra_LongLongSerialDenseVector.cpp.o CMakeFiles/epetra.dir/Epetra_LongLongVector.cpp.o CMakeFiles/epetra.dir/Epetra_dcrsmm.f.o CMakeFiles/epetra.dir/Epetra_dcrsmv.f.o CMakeFiles/epetra.dir/Epetra_dcrssm.f.o CMakeFiles/epetra.dir/Epetra_dcrssv.f.o CMakeFiles/epetra.dir/Epetra_MpiComm.cpp.o CMakeFiles/epetra.dir/Epetra_MpiCommData.cpp.o CMakeFiles/epetra.dir/Epetra_MpiDistributor.cpp.o  -L/usr/local/Cellar/gcc/4.9.2/lib/gcc/x86_64-apple-darwin14.0.0/4.9.2  -L/usr/local/Cellar/gcc/4.9.2/lib ../../teuchos/remainder/src/libteuchosremainder.11.12.1.dylib ../../teuchos/numerics/src/libteuchosnumerics.11.12.1.dylib ../../teuchos/comm/src/libteuchoscomm.11.12.1.dylib ../../teuchos/parameterlist/src/libteuchosparameterlist.11.12.1.dylib ../../teuchos/core/src/libteuchoscore.11.12.1.dylib /usr/lib/liblapack.dylib /usr/lib/libblas.dylib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lgfortran -lquadmath -lm 
> Undefined symbols for architecture x86_64:
>  "_epetra_dcrsmm__", referenced from:
>      Epetra_CrsMatrix::GeneralMM(double**, int, double**, int, int) const in Epetra_CrsMatrix.cpp.o
>      Epetra_CrsMatrix::GeneralMTM(double**, int, double**, int, int) const in Epetra_CrsMatrix.cpp.o
>  "_epetra_dcrsmv__", referenced from:
>      Epetra_CrsMatrix::GeneralMTV(double*, double*) const in Epetra_CrsMatrix.cpp.o
>  "_epetra_dcrssm__", referenced from:
>      Epetra_CrsMatrix::GeneralSM(bool, bool, bool, double**, int, double**, int, int) const in Epetra_CrsMatrix.cpp.o
>  "_epetra_dcrssv__", referenced from:
>      Epetra_CrsMatrix::GeneralSV(bool, bool, bool, double*, double*) const in Epetra_CrsMatrix.cpp.o
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> do-configure script:
> rm -f CMakeCache.txt
> 
> cmake \
> -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
> -D TPL_ENABLE_MPI:BOOL=ON \
> -D TPL_ENABLE_MUMPS:STRING=ON \
> -D MUMPS_LIBRARY_DIRS:FILEPATH=/Users/nroberts/src/MUMPS_4.9.2/lib/ \
> -D MUMPS_LIBRARY_NAMES:STRING="dmumps; pord; mumps_common" \
> -D TPL_MUMPS_INCLUDE_DIRS:FILEPATH=/Users/nroberts/lib/mumps-4.9.2/include \
> -D CMAKE_CXX_COMPILER:FILEPATH=/Users/nroberts/lib/openmpi-1.8.3/bin/mpicxx \
> -D CMAKE_C_COMPILER:FILEPATH=/Users/nroberts/lib/openmpi-1.8.3/bin/mpicc \
> -D CMAKE_Fortran_COMPILER:FILEPATH=/Users/nroberts/lib/openmpi-1.8.3/bin/mpif90 \
> -D SWIG_EXECUTABLE:PATH=/Users/nroberts/lib/swig-3.0.2/bin/swig \
> -D Trilinos_SKIP_FORTRANCINTERFACE_VERIFY_TEST:BOOL=ON \
> -D MPI_BASE_DIR:PATH=/Users/nroberts/lib/openmpi-1.8.3 \
> -D HAVE_GCC_ABI_DEMANGLE:BOOL=ON \
> -D DART_TESTING_TIMEOUT:STRING=600 \
> -D CMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
> -D BUILD_SHARED_LIBS:BOOL=ON \
> -D Trilinos_ENABLE_Anasazi:BOOL=ON \
> -D Trilinos_ENABLE_Belos:BOOL=ON \
> -D Trilinos_ENABLE_Intrepid:BOOL=ON \
> -D Trilinos_ENABLE_Sacado:BOOL=ON \
> -D Trilinos_ENABLE_Epetra:BOOL=ON \
> -D Trilinos_ENABLE_EpetraExt:BOOL=ON \
> -D Trilinos_ENABLE_Teuchos:BOOL=ON \
> -D Trilinos_ENABLE_Shards:BOOL=ON \
> -D Trilinos_ENABLE_Amesos:BOOL=ON \
> -D Trilinos_ENABLE_PyTrilinos:BOOL=ON \
> -D Trilinos_ENABLE_Zoltan:BOOL=ON \
> -D Trilinos_ENABLE_ML:BOOL=ON \
> -D Trilinos_ENABLE_TESTS:BOOL=OFF
> \
> -D TPL_ENABLE_HDF5:STRING=ON \
> -D Trilinos_EXTRA_LINK_FLAGS:STRING="libz.dylib" \
> -D TPL_ENABLE_Zlib:BOOL=ON \
> -D HDF5_LIBRARY_DIRS:FILEPATH=/Users/nroberts/lib/hdf5/lib \
> -D HDF5_LIBRARY_NAMES:STRING="hdf5" \
> -D TPL_HDF5_INCLUDE_DIRS:FILEPATH=/Users/nroberts/lib/hdf5/include \
> -D EpetraExt_USING_HDF5:BOOL=ON \
> -DTPL_ENABLE_Netcdf=OFF \
> -DTPL_ENABLE_GLM=OFF \
> -DTrilinos_ASSERT_MISSING_PACKAGES=OFF \
> -D CMAKE_INSTALL_PREFIX:PATH=/Users/nroberts/lib/trilinos/mpi-release-shared/ \
> $EXTRA_ARGS \
> ../../
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> https://software.sandia.gov/mailman/listinfo/trilinos-users

** Bill Spotz                                              **
** Sandia National Laboratories  Voice: (505)845-0170      **
** P.O. Box 5800                 Fax:   (505)284-0154      **
** Albuquerque, NM 87185-0370    Email: wfspotz at sandia.gov **



More information about the Trilinos-Users mailing list