Skip to content

Error with build eclm-parflowGPU with intel.psmpi, LAPACK routines? #113

Description

@AGonzalezNicolas

Follow-up on issue #100

When building the combination eclm-parflowGPU with jsc.2025.intel.psmpi I get the following error:

[ 99%] Building Fortran object eclm/CMakeFiles/eclm.dir/cime_driver.F90.o
[100%] Linking Fortran executable eclm.exe
ld: ../clm5/libclm.a(SoilWaterMovementMod.F90.o): in function `dgtsv_.t253890p.t253891p.t253892p.t253893p.t253894p.t253895p.t253896p.t253897p':
/p/scratch/cslts/gonzalez5/TSMP2/BUILDS/TSMP2_autom_builds/models/eCLM/src/clm5/biogeophys/SoilWaterMovementMod.F90:(.text+0x280855): undefined reference to `dgtsv_'
ld: ../clm5/libclm.a(UrbBuildTempOleson2015Mod.F90.o): in function `dgesv_.t58174p.t58175p.t58176p.t58177p.t58178p.t58179p.t58180p.t58181p':
/p/scratch/cslts/gonzalez5/TSMP2/BUILDS/TSMP2_autom_builds/models/eCLM/src/clm5/biogeophys/UrbBuildTempOleson2015Mod.F90:(.text+0x237ae5): undefined reference to `dgesv_'
ld: ../clm5/libclm.a(BandDiagonalMod.F90.o): in function `dgbsv_.t839p.t840p.t841p.t842p.t843p.t844p.t845p.t846p.t847p.t848p':
/p/scratch/cslts/gonzalez5/TSMP2/BUILDS/TSMP2_autom_builds/models/eCLM/src/clm5/biogeophys/BandDiagonalMod.F90:(.text+0x28eaf): undefined reference to `dgbsv_'
gmake[5]: *** [eclm/CMakeFiles/eclm.dir/build.make:500: eclm/eclm.exe] Error 1
gmake[4]: *** [CMakeFiles/Makefile2:582: eclm/CMakeFiles/eclm.dir/all] Error 2
gmake[3]: *** [Makefile:136: all] Error 2
gmake[2]: *** [CMakeFiles/eCLM.dir/build.make:112: eCLM/src/eCLM-stamp/eCLM-install] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:113: CMakeFiles/eCLM.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2

Do these undefined reference to 'dgesv_', 'dgbsv_','dgtsv_' errors mean that the LAPACK routines are not being linked into the final executable when using intel.psmpi environment?

NOTE: the eclm-parflowGPU builds for gnu.psmpi and gnu.openmpi environments work fine.

Activity

  1. kvrigor commented on Nov 28, 2025

    @kvrigor
    Member

    Thanks for reporting this Ana. The workaround is to simply module load ScaLAPACK/2.2.0-fb in env/jsc.2025.intel.psmpi. While this fixes the eCLM build, there will be issues in the ParFlowGPU build. It would be great if you can also note the other build errors so we could address them.

  2. AGonzalezNicolas commented on Nov 28, 2025

    @AGonzalezNicolas
    ContributorAuthor

    @kvrigor Here the next error:

    [100%] Linking Fortran executable eclm.exe
    /p/software/fs/jurecadc/stages/2025/software/intel-compilers/2024.2.0-CUDA-12/compiler/2024.2/lib/clang/19/lib/x86_64-unknown-linux-gnu/libclang_rt.msan.a(msan.cpp.o): in function `__msan::flags()':
    msan.cpp:(.text._ZN6__msan5flagsEv+0x7): relocation truncated to fit: R_X86_64_PC32 against `.bss._ZN6__msanL10msan_flagsE'
    /p/software/fs/jurecadc/stages/2025/software/intel-compilers/2024.2.0-CUDA-12/compiler/2024.2/lib/clang/19/lib/x86_64-unknown-linux-gnu/libclang_rt.msan.a(msan.cpp.o): in function `__msan::PrintWarningWithOrigin(unsigned long, unsigned long, unsigned int)':
    msan.cpp:(.text._ZN6__msan22PrintWarningWithOriginEmmj+0x37): relocation truncated to fit: R_X86_64_PC32 against symbol `__msan::msan_report_count' defined in .bss._ZN6__msan17msan_report_countE section in /p/software/fs/jurecadc/stages/2025/software/intel-compilers/2024.2.0-CUDA-12/compiler/2024.2/lib/clang/19/lib/x86_64-unknown-linux-gnu/libclang_rt.msan.a(msan.cpp.o)
    msan.cpp:(.text._ZN6__msan22PrintWarningWithOriginEmmj+0x5b): relocation truncated to fit: R_X86_64_PC32 against symbol `__msan::msan_inited' defined in .bss._ZN6__msan11msan_initedE section in /p/software/fs/jurecadc/stages/2025/software/intel-compilers/2024.2.0-CUDA-12/compiler/2024.2/lib/clang/19/lib/x86_64-unknown-linux-gnu/libclang_rt.msan.a(msan.cpp.o)
    msan.cpp:(.text._ZN6__msan22PrintWarningWithOriginEmmj+0x6b): failed to convert GOTPCREL relocation against '_ZN11__sanitizer21common_flags_dont_useE'; relink with --no-relax
    gmake[5]: *** [eclm/CMakeFiles/eclm.dir/build.make:504: eclm/eclm.exe] Error 1
    gmake[4]: *** [CMakeFiles/Makefile2:582: eclm/CMakeFiles/eclm.dir/all] Error 2
    gmake[3]: *** [Makefile:136: all] Error 2
    gmake[2]: *** [CMakeFiles/eCLM.dir/build.make:112: eCLM/src/eCLM-stamp/eCLM-install] Error 2
    gmake[1]: *** [CMakeFiles/Makefile2:113: CMakeFiles/eCLM.dir/all] Error 2
    gmake: *** [Makefile:91: all] Error 2
    
  3. moved this from New features to Issues in TSMP2: Towards Stages/2026 supporton Jan 13, 2026
  4. pinned this issue on May 22, 2026
  5. added and removed on May 22, 2026
  6. linked a pull request that will close this issueeCLM LAPACK linker fixes #133on Jun 16, 2026
  7. kvrigor commented on Jun 17, 2026

    @kvrigor
    Member

    @AGonzalezNicolas this works for me: ./build_tsmp2.sh eclm parflow --env env/jsc.2025.intel.psmpi. You can test the binaries here: /p/scratch/cslts/shared_data/TSMP2_S2025/JURECADC_eCLM-ParFlow_RELEASE-Intel

    Note that we can't build eCLM-ParflowGPU using Intel compilers since there is no equivalent Hypre library built on the same toolchain.

    if [[ "$1" == "--parflowgpu" ]]; then
    # WARNING:
    #
    # Loading Hypre/2.31.0 under Intel will stubbornly load Hypre/2.31.0-cpu
    # since Hypre/2.31.0 is only available under the GCC toolchain. This wrong
    # Hypre will trigger a linker failure in ParFlow. I suggest using jsc.2025.gnu.openmpi when
    # building ParFlow.

  8. AGonzalezNicolas commented on Jun 18, 2026

    @AGonzalezNicolas
    ContributorAuthor

    Ok. Since no eclm-parflowGPU can't be built with jsc.2025.intel.psmpi, this issue can be closed.

  9. unpinned this issue on Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions