build.rs: Migrate to CARGO_ENCODED_RUSTFLAGS #159
Merged
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.
Fixes #158.
Cargo introduced
CARGO_ENCODED_RUSTFLAGS
in rust-lang/cargo#9601 to make setting flags less error prone – it encodes arguments separated by0x1f
(ASCII Unit Separator), instead of white spaces (oldRUSTFLAGS
).CARGO_ENCODED_RUSTFLAGS
are preferred over the oldRUSTFLAGS
in cargo. For build scripts, cargo converts itsRUSTFLAGS
toCARGO_ENCODED_RUSTFLAGS
. For unsetRUSTFLAGS
it is set to an empty string. Thus our build script would call cargo for building libhermit-rs with a set – but empty –CARGO_ENCODED_RUSTFLAGS
, which takes precedence over our preparedRUSTFLAGS
. Specifically this caused our-Zmutable-noalias=no
flag to be ignored, causing the same network issue as #128 again.This PR adjusts our build script to make direct use of
CARGO_ENCODED_RUSTFLAGS
, the new and preferred way of handling flags in build scripts. This causes our flags to be correctly handled again.