Fix static linking support for non-Windows platforms #84
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.
Problem
When using
RUSTFLAGS="-C target-feature=+crt-static"for static linking on non-Windows platforms (Linux/macOS), the build fails with linker errors. The currentbuild.rsonly handles static linking configuration for MSVC compiler but completely ignores GCC/Clang compilers.Solution
Extend static linking support to GCC/Clang compilers by:
crt-staticfeature for all compiler typesSPM_ENABLE_SHARED=OFFandSPM_BUILD_SHARED_LIBS=OFFfor GCC/Clang when static linking is requestedChanges
Modified
sentencepiece-sys/build.rsto:crt-staticdetection into a reusable variableTesting
Verified that static linking now works correctly on Linux platforms with
RUSTFLAGS="-C target-feature=+crt-static".