Conversation
config:shared_linking:missing_library_policy to error/warn about accidental runtime deps on linux/freebsd
config:shared_linking:missing_library_policy to error/warn about accidental runtime deps on linux/freebsdconfig:shared_linking:missing_library_policy to error/warn about accidental use of system libraries on linux/freebsd
This comment was marked as outdated.
This comment was marked as outdated.
2114728 to
3ae172e
Compare
4 tasks
Member
Author
|
@hainest do you know how to configure Spack has this variant but when you install I guess for now I'll just require +icu when +locale is on. |
4a4cffc to
b2ece16
Compare
Member
Author
5f539bb to
60fbba4
Compare
Contributor
I ran into issues with this for #30627. Let me get back to you. |
This was referenced Nov 4, 2024
Merged
…dency of libgfortran" This reverts commit b30898d.
5a987f2 to
9cf3cd0
Compare
This was referenced Dec 10, 2024
Member
Author
|
@spackbot run pipeline |
|
I've started that pipeline for you! |
alalazo
previously approved these changes
Dec 16, 2024
Member
alalazo
left a comment
There was a problem hiding this comment.
Only a very minor comment. LGTM.
Co-authored-by: Massimiliano Culpo <[email protected]>
alalazo
approved these changes
Dec 16, 2024
tdrwenski
pushed a commit
to tdrwenski/spack
that referenced
this pull request
Dec 26, 2024
…cidental use of system libraries on linux/freebsd (spack#47365) This commit adds a config option `config:shared_linking:missing_library_policy:error/warn/ignore` which will cause installation errors or warnings when ELF executables or libraries need shared libraries which cannot be resolved from RPATH search paths. The default is to ignore. This is a safeguard against accidentally linking to system libraries instead of Spack libraries. It makes it more likely that build cache installs work on different machines. It works only at the level of libraries, not at the level of symbols. Some system dependencies are allowed (e.g. kernel and libc). Packages can (but are discouraged to) set `unresolved_libraries` to a list of patterns of sonames/library names that are know to be unresolvable in RPATHs. In the future this could be made more fine-grained in a non-breaking way by allowing a dictionary of patterns `lib => [deps]`.
kshea21
pushed a commit
to kshea21/spack
that referenced
this pull request
Dec 26, 2024
…cidental use of system libraries on linux/freebsd (spack#47365) This commit adds a config option `config:shared_linking:missing_library_policy:error/warn/ignore` which will cause installation errors or warnings when ELF executables or libraries need shared libraries which cannot be resolved from RPATH search paths. The default is to ignore. This is a safeguard against accidentally linking to system libraries instead of Spack libraries. It makes it more likely that build cache installs work on different machines. It works only at the level of libraries, not at the level of symbols. Some system dependencies are allowed (e.g. kernel and libc). Packages can (but are discouraged to) set `unresolved_libraries` to a list of patterns of sonames/library names that are know to be unresolvable in RPATHs. In the future this could be made more fine-grained in a non-breaking way by allowing a dictionary of patterns `lib => [deps]`.
teaguesterling
pushed a commit
to teaguesterling/spack
that referenced
this pull request
Feb 5, 2025
…cidental use of system libraries on linux/freebsd (spack#47365) This commit adds a config option `config:shared_linking:missing_library_policy:error/warn/ignore` which will cause installation errors or warnings when ELF executables or libraries need shared libraries which cannot be resolved from RPATH search paths. The default is to ignore. This is a safeguard against accidentally linking to system libraries instead of Spack libraries. It makes it more likely that build cache installs work on different machines. It works only at the level of libraries, not at the level of symbols. Some system dependencies are allowed (e.g. kernel and libc). Packages can (but are discouraged to) set `unresolved_libraries` to a list of patterns of sonames/library names that are know to be unresolvable in RPATHs. In the future this could be made more fine-grained in a non-breaking way by allowing a dictionary of patterns `lib => [deps]`.
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.
This is a retry to land #28109
It adds a config option
config:shared_linking:missing_library_policy:error/warn/ignorewhich will cause installation errors or warnings when ELF executables or libraries need shared libraries which cannot be resolved from RPATH search paths. The default is to ignore.This is a safeguard against accidentally linking to system libraries instead of Spack libraries. It makes it more likely that build cache installs work on different machines.
It does not attempt to resolve symbols.
Some system dependencies are allowed (e.g. kernel and libc).
Packages can (but are discouraged to) set
unresolved_librariesto a list of patterns of sonames/library names that are know to be unresolvable in RPATHs. In the future this could be made more fine-grained in a non-breaking way by allowing a dictionary of patternslib => [deps].