[ET Trac] #2772: Issues link against Kadath thorns and Intel MKL due to link ordering

Roland Haas trac-noreply at einsteintoolkit.org
Tue Feb 20 10:04:24 CST 2024


#2772: Issues link against Kadath thorns and Intel MKL due to link ordering

 Reporter: tootle
   Status: new
Milestone: 
  Version: 
     Type: bug
 Priority: major
Component: EinsteinToolkit thorn

Comment (by Roland Haas):

Testing this I can nudge things from \(the not correct\):  

```
g++ -o "/data/rhaas/postdoc/gr/cactus/ET_trunk/exe/cactus_fuka"  -fopenmp -Wall -g -std=gnu++17 -O2 -fopenmp -Wall -rdynamic  "/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/datestamp.o" -Wl,--whole-archive -L/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/lib -lthorn_ADMBase -lthorn_ADMCoupling -lthorn_ADMMacros -lthorn_AEILocalInterp -lthorn_AHFinderDirect -lthorn_BLAS -lthorn_Boost -lthorn_Boundary -lthorn_Carpet -lthorn_CarpetIOHDF5 -lthorn_CarpetIOScalar -lthorn_CarpetInterp -lthorn_CarpetLib -lthorn_CarpetMask -lthorn_CarpetReduce -lthorn_CarpetSlab -lthorn_CartGrid3D -lthorn_CoordBase -lthorn_CoordGauge -lthorn_CycleClock -lthorn_FFTW3 -lthorn_GSL -lthorn_HDF5 -lthorn_HydroBase -lthorn_IOASCII -lthorn_IOBasic -lthorn_IOUtil -lthorn_InitBase -lthorn_KadathImporter -lthorn_KadathThorn -lthorn_LAPACK -lthorn_LocalInterp2 -lthorn_LocalReduce -lthorn_LoopControl -lthorn_MPI -lthorn_MoL -lthorn_NaNChecker -lthorn_PUGH -lthorn_SpaceMask -lthorn_SphericalSurface -lthorn_StaticConformal -lthorn_SymBase -lthorn_SystemTopology -lthorn_Time -lthorn_Timers -lthorn_TmunuBase -lthorn_Vectors -lthorn_hwloc -lthorn_zlib -lthorn_Cactus -lthorn_CactusBindings -Wl,--no-whole-archive -L/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/scratch/external/KadathThorn/lib -L/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -L/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -L/usr/lib/x86_64-linux-gnu/hdf5/openmpi -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/gcc/x86_64-linux-gnu/13 -Wl,-rpath,/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/scratch/external/KadathThorn/lib -Wl,-rpath,/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -Wl,-rpath,/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/openmpi -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/13 -lkadath -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lgsl -lgslcblas -lm -lfftw3 -lboost_filesystem -lboost_system -lhdf5hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5 -lmpi -lhwloc -levent_core -levent_pthreads -lm -lz -lsz -lz -lmpi_cxx -lmpi -lm -lz -lmpi_cxx -lmpi -lhwloc -lm -ludev -lpthread -lz -lm -lm -lm -lm -lm -lm -lm -lm -lcrypt -lgfortran
```

to the \(more correct\):  

```
g++ -o "/data/rhaas/postdoc/gr/cactus/ET_trunk/exe/cactus_fuka"  -fopenmp -Wall -g -std=gnu++17 -O2 -fopenmp -Wall -rdynamic  "/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/datestamp.o" -Wl,--whole-archive -L/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/lib -lthorn_ADMBase -lthorn_ADMCoupling -lthorn_ADMMacros -lthorn_AEILocalInterp -lthorn_AHFinderDirect -lthorn_BLAS -lthorn_Boost -lthorn_Boundary -lthorn_Carpet -lthorn_CarpetIOHDF5 -lthorn_CarpetIOScalar -lthorn_CarpetInterp -lthorn_CarpetLib -lthorn_CarpetMask -lthorn_CarpetReduce -lthorn_CarpetSlab -lthorn_CartGrid3D -lthorn_CoordBase -lthorn_CoordGauge -lthorn_CycleClock -lthorn_FFTW3 -lthorn_GSL -lthorn_HDF5 -lthorn_HydroBase -lthorn_IOASCII -lthorn_IOBasic -lthorn_IOUtil -lthorn_InitBase -lthorn_KadathImporter -lthorn_KadathThorn -lthorn_LAPACK -lthorn_LocalInterp2 -lthorn_LocalReduce -lthorn_LoopControl -lthorn_MPI -lthorn_MoL -lthorn_NaNChecker -lthorn_PUGH -lthorn_SpaceMask -lthorn_SphericalSurface -lthorn_StaticConformal -lthorn_SymBase -lthorn_SystemTopology -lthorn_Time -lthorn_Timers -lthorn_TmunuBase -lthorn_Vectors -lthorn_hwloc -lthorn_zlib -lthorn_Cactus -lthorn_CactusBindings -Wl,--no-whole-archive -L/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/scratch/external/KadathThorn/lib -L/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -L/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -L/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -L/usr/lib/x86_64-linux-gnu/hdf5/openmpi -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/gcc/x86_64-linux-gnu/13 -Wl,-rpath,/data/rhaas/postdoc/gr/cactus/ET_trunk/configs/fuka/scratch/external/KadathThorn/lib -Wl,-rpath,/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -Wl,-rpath,/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -Wl,-rpath,/opt/intel/oneapi/mkl/2021.3.0/lib/intel64 -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/openmpi -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/13 -lkadath -lfftw3 -lgsl -lgslcblas -lm -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lboost_filesystem -lboost_system -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lgsl -lgslcblas -lm -lfftw3 -lboost_filesystem -lboost_system -lhdf5hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5 -lmpi -lhwloc -levent_core -levent_pthreads -lm -lz -lsz -lz -lmpi_cxx -lmpi -lm -lz -lmpi_cxx -lmpi -lhwloc -lm -ludev -lpthread -lz -lm -lm -lm -lm -lm -lm -lm -lm -lcrypt -lgfortran
```

Change to KadathThorn:

```diff
diff --git a/src/detect.sh b/src/detect.sh
index 9f80ed6..d5be1a0 100755
--- a/src/detect.sh
+++ b/src/detect.sh
@@ -89,9 +89,10 @@ echo "END MESSAGE"
 # Pass options to Cactus
 echo "BEGIN MAKE_DEFINITION"
 echo "KADATH_DIR      = ${KADATH_DIR}"
-echo "KADATH_INC_DIRS = ${KADATH_INC_DIRS}"
-echo "KADATH_LIB_DIRS = ${KADATH_LIB_DIRS}"
-echo "KADATH_LIBS     = ${KADATH_LIBS}"
+echo "KADATH_INC_DIRS = ${KADATH_INC_DIRS} ${FFTW3_INC_DIRS} ${GSL_INC_DIRS} ${LAPACK_INC_DIRS} ${BOOST_INC_DIRS}"
+echo "KADATH_LIB_DIRS = ${KADATH_LIB_DIRS}" ${FFTW3_LIB_DIRS} ${GSL_LIB_DIRS} ${LAPACK_LIB_DIRS} ${BOOST_LIB_DIRS}
+# keep the order like this, since MKL (LAPACK) can contain a (partial) FFTW3 which conflicts
+echo "KADATH_LIBS     = ${KADATH_LIBS} ${FFTW3_LIBS} ${GSL_LIBS} ${LAPACK_LIBS} ${BOOST_LIBS}"
 echo "END MAKE_DEFINITION"

 echo 'INCLUDE_DIRECTORY $(KADATH_INC_DIRS)'
```

‌

--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2772/issues-link-against-kadath-thorns-and
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.einsteintoolkit.org/pipermail/trac/attachments/20240220/b61e50fb/attachment.htm>


More information about the Trac mailing list