fix segmentation faults of musl binaries with static relocation-model #8135
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.
Rust 1.46.0 [enabled Position Independent Executables(PIE) for x86_64-unknown-linux-musl] (rust-lang/rust#70740). This causes the compiled binary to segfault when building with GCC versions that support it. For instance a plain cargo build on ubuntu 18.04 works fine because it comes with v7.5.0 which does not support PIE. However a plan guild will build with v9.1.0 which does and these builds emit a segmentation fault. While we should investigate if there is something in the way we compile GCC which causes this. Setting relocation-model to static suppresses PIE.
Also note that while troubleshooting this, I tried building with rust 1.44.1 and set
export RUSTFLAGS='-C link-args=-pie'
which worked so there must be some additional nuances in compiler flags beyond simply turning on pie.Signed-off-by: Matt Wrock [email protected]