[Trilinos-Users] make tests fails on franklin

Ben Cowan benc at txcorp.com
Mon Feb 23 09:41:52 MST 2009


Hello,

Attempting to build the trilinos 9.0.2 tests on the Franklin  
supercomputer at NERSC fails with a link error.  I'm using the PGI  
8.0.1 compiler, and configuring with

optflags="-fast"
${sourcedir}/configure --prefix=${installdir} --enable-mpi \
     --disable-default-packages --enable-ml --enable-amesos --enable- 
aztecoo \
     --enable-epetra --enable-epetraext --enable-triutils --enable- 
anasazi \
     --enable-ifpack --enable-galeri \
     --with-gnumake CXX=CC CC=cc F77=ftn \
     CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK" \
     CXXFLAGS="$optflags --no_using_std" CFLAGS="$optflags"  
FFLAGS="$optflags"

Building the libraries completes successfully, but "make tests" fails  
trying to link a Teuchos test.  Here's the link line with the error  
output:

make[4]: Entering directory `/scratch/scratchdirs/benc/build/ 
trilinos-9.0.2/packages/teuchos/test/Comm'
CC  -fast --no_using_std   -o DefaultMpiComm_UnitTests.exe  
DefaultMpiComm_UnitTests.o Teuchos_StandardUnitTestMain.o -L/u0/b/benc/ 
build/trilinos-9.0.2/packages/teuchos/src -lteuchos     -L/opt/mpt/ 
3.1.0/xt/mpich2-pgi/lib -L/opt/xt-libsci/10.2.1/pgi/snos64/lib -L/opt/ 
mpt/3.1.0/xt/sma/lib -L/opt/mpt/3.1.0/xt/util/lib -L/opt/mpt/3.1.0/xt/ 
pmi/lib -L/opt/xt-pe/2.1.41HD/lib/snos64 -L/opt/xt-service/2.1.41HD/ 
lib/snos64 -L/opt/pgi/8.0.1/linux86-64/8.0-1/lib -L/usr/lib64 -L/usr/ 
lib64/gcc/x86_64-suse-linux/4.1.2 -lsci_quadcore -lsci -lsma - 
lmpichf90 -lmpich -lrt -lpmi -lalpslli -lalpsutil -lportals -lpthread - 
lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lm
/opt/cray/xt-asyncpe/2.0/bin/CC: INFO: linux target is being used
DefaultMpiComm_UnitTests.o: In function  
` 
_Z1Z 
::relErr__tm__26_Q2_3std16complex__tm__2_f__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm 
(magnitudeType)':
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_f__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x51): undefined reference to `std::abs(std::complex<float> const &)'
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_f__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x6e): undefined reference to `std::abs(std::complex<float> const &)'
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_f__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x7e): undefined reference to `std::abs(std::complex<float> const &)'
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_f__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x8e): undefined reference to `std::abs(std::complex<float> const &)'
DefaultMpiComm_UnitTests.o: In function  
` 
_Z1Z 
::relErr__tm__26_Q2_3std16complex__tm__2_d__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm 
(magnitudeType)':
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_d__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x5d): undefined reference to `std::abs(std::complex<double> const &)'
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_d__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x7e): undefined reference to `std::abs(std::complex<double> const &)'
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_d__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x8e): undefined reference to `std::abs(std::complex<double> const &)'
DefaultMpiComm_UnitTests.cpp: 
(.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_d__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x9e): undefined reference to `std::abs(std::complex<double> const &)'
make[4]: *** [DefaultMpiComm_UnitTests.exe] Error 2

Demangling one of the functions in which a reference is undefined gives:

nid04100$ echo  
'.gnu 
.linkonce 
.t 
.relErr__tm__26_Q2_3std16complex__tm__2_f__7TeuchosFRCZ1ZT1_Q3_7Teuchos23ScalarTraits__tm__4_Z1Z13magnitudeType 
+0x51' | pgdecode
.gnu.linkonce.t.Teuchos::ScalarTraits<T1>::magnitudeType  
Teuchos::relErr<T1>(const T1 &, const T1 &) [with  
T1=std::complex<float>]+0x51

It looks like a template isn't being instantiated properly, but beyond  
that I can't figure out what's wrong by looking at the code.  Trying  
to insert explicit instnatiations doesn't seem to help.  Any ideas for  
a fix/workaround would be appreciated.

Thanks,
Ben




More information about the Trilinos-Users mailing list