MUMPS: compile without LTO - #241
Merged
Merged
Conversation
The el10 rpm build gets `-flto=auto -ffat-lto-objects` from the
distribution's flags, and with its GCC 14.3 / binutils 2.41 every link
against the MUMPS archives loses Fortran symbols that are defined in
them. libmoo.so fails first:
mumps_comm_buffer_common.F:150: undefined reference to `mpi_test_'
dmumps_driver.F:502: undefined reference to `mpi_initialized_'
`libmumps_common.a` and `libseq.a` both define those symbols (`nm`
shows `T mpi_test_`); the definitions go missing in the LTO link.
Compiling only the libseq stubs without LTO just moves the error to
`dmumps_ana_driver_` and friends, and the MUMPS demos, which do not use
moo's `--exclude-libs,ALL`, fail the same way. That was the el10 demo
failure that 3b8d7b2 worked around; the old comment blaming a missing
MPI symbol set was wrong. fc43 and fc44 use the same LTO flags with
newer toolchains and are not affected.
Build the MUMPS libraries without LTO. Verified in the
build-deps:el10.amd64 image with the rpm flags: moo, dsimple_test and
c_example all link.
Assisted-by: Claude Opus 5.5 (1M context)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The el10 rpm build gets
-flto=auto -ffat-lto-objectsfrom the distribution's flags, and with its GCC 14.3 / binutils 2.41 every link against the MUMPS archives loses Fortran symbols that are defined in them. libmoo.so fails first:libmumps_common.aandlibseq.aboth define those symbols (nmshowsT mpi_test_); the definitions go missing in the LTO link. Compiling only the libseq stubs without LTO just moves the error todmumps_ana_driver_and friends, and the MUMPS demos, which do not use moo's--exclude-libs,ALL, fail the same way. That was the el10 demo failure that 3b8d7b2 worked around; the old comment blaming a missing MPI symbol set was wrong. fc43 and fc44 use the same LTO flags with newer toolchains and are not affected.Build the MUMPS libraries without LTO. Verified in the build-deps:el10.amd64 image with the rpm flags: moo, dsimple_test and c_example all link.
Assisted-by: Claude Opus 5.5 (1M context)
Related Issues
Purpose
Approach