Bug#1015672: sundials: ftbfs with LTO (link time optimization) enabled

Drew Parsons dparsons at debian.org
Tue Sep 17 18:09:56 BST 2024


Source: sundials
Followup-For: Bug #1015672

This issue seems to have metastasised, such that the suggested SUSE
patch is no longer sufficient.  sunlinsol is now affected, not
the nvector components

With sundials 7.1.1, optimize=+lto gets

[ 82%] Linking Fortran executable test_fsunlinsol_spbcgs_mod_serial
cd /projects/mathlibs/build/sundials/debian/build/examples/sunlinsol/spbcgs/serial && /usr/bin/cmake -E cmake_link_script CMakeFiles/test_fsunlinsol_spbcgs_mod_serial.dir/link.txt --verbose=1
/usr/bin/gfortran -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -g -O2 -ffile-prefix-map=/projects/mathlibs/build/sundials=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -fcf-protection CMakeFiles/test_fsunlinsol_spbcgs_mod_serial.dir/test_fsunlinsol_spbcgs_mod_serial.f90.o CMakeFiles/test_fsunlinsol_spbcgs_mod_serial.dir/__/__/__/utilities/test_utilities.f90.o CMakeFiles/test_fsunlinsol_spbcgs_mod_serial.dir/__/__/test_sunlinsol.f90.o -o test_fsunlinsol_spbcgs_mod_serial  -Wl,-rpath,/projects/mathlibs/build/sundials/debian/build/src/nvector/serial/fmod_int32:/projects/mathlibs/build/sundials/debian/build/src/sunlinsol/spbcgs/fmod_int32:/projects/mathlibs/build/sundials/debian/build/src/nvector/serial:/projects/mathlibs/build/sundials/debian/build/src/sunlinsol/spbcgs:/projects/mathlibs/build/sundials/debian/build/src/sundials/fmod_int32:/projects/mathlibs/build/sundials/debian/build/src/sundials:/usr/lib/x86_64-linux-gnu/openmpi/lib ../../../../src/nvector/serial/fmod_int32/libsundials_fnvecserial_mod.so.7.1.1 ../../../../src/sunlinsol/spbcgs/fmod_int32/libsundials_fsunlinsolspbcgs_mod.so.5.1.1 -lm ../../../../src/nvector/serial/libsundials_nvecserial.so.7.1.1 ../../../../src/sunlinsol/spbcgs/libsundials_sunlinsolspbcgs.so.5.1.1 ../../../../src/sundials/fmod_int32/libsundials_fcore_mod.so.7.1.1 ../../../../src/sundials/libsundials_core.so.7.1.1 /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so
/usr/bin/ld: /tmp/cccP2ly1.ltrans0.ltrans.o: in function `MAIN__':
./debian/build/examples/sunlinsol/spfgmr/serial/./examples/sunlinsol/test_sunlinsol.f90:165:(.text+0x1153): undefined reference to `atimes'
/usr/bin/ld: ./debian/build/examples/sunlinsol/spfgmr/serial/./examples/sunlinsol/test_sunlinsol.f90:187:(.text+0x11c6): undefined reference to `psolve'
/usr/bin/ld: /tmp/cccP2ly1.ltrans0.ltrans.o:./debian/build/examples/sunlinsol/spfgmr/serial/./examples/sunlinsol/test_sunlinsol.f90:187:(.text+0x11cd): undefined reference to `psetup'
collect2: error: ld returned 1 exit status
make[3]: *** [examples/sunlinsol/spfgmr/serial/CMakeFiles/test_fsunlinsol_spfgmr_mod_serial.dir/build.make:136: examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial] Error 1
make[3]: Leaving directory '/projects/mathlibs/build/sundials/debian/build'
make[2]: *** [CMakeFiles/Makefile2:22702: examples/sunlinsol/spfgmr/serial/CMakeFiles/test_fsunlinsol_spfgmr_mod_serial.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
/usr/bin/ld: /tmp/ccaVS6Vi.ltrans0.ltrans.o: in function `MAIN__':
./debian/build/examples/sunlinsol/spgmr/serial/./examples/sunlinsol/test_sunlinsol.f90:165:(.text+0x1153): undefined reference to `atimes'
/usr/bin/ld: ./debian/build/examples/sunlinsol/spgmr/serial/./examples/sunlinsol/test_sunlinsol.f90:187:(.text+0x11c6): undefined reference to `psolve'
/usr/bin/ld: /tmp/ccaVS6Vi.ltrans0.ltrans.o:./debian/build/examples/sunlinsol/spgmr/serial/./examples/sunlinsol/test_sunlinsol.f90:187:(.text+0x11cd): undefined reference to `psetup'
collect2: error: ld returned 1 exit status
...


sundials 7.1.1 also already addresses pthread linking in
src/nvector/pthreads/CMakeLists.txt with

  LINK_LIBRARIES
      PRIVATE Threads::Threads



More information about the debian-science-maintainers mailing list