chcon: link to libfts on musl targets #7863
Open
+24
−3
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 fixes a build failure on aarch64-unknown-linux-musl.
On musl‐based targets the fts API is not provided by libc but by a separate libfts library.
src/uu/chcon/build.rs
Add a build script (
build.rs
) that detects whenCARGO_CFG_TARGET_OS=linux
&&CARGO_CFG_TARGET_ENV=musl
and emitsrustc-link-lib=fts
, so thatuu_chcon
can link successfully.src/uu/chcon/src/fts.rs
In the glibc version of the header,
level
isshort
, under musl it'sint
; likewise,pathlen
isunsigned
on musl but signed on glibc.Note
To test this, I build as:
RUSTFLAGS='-Ctarget-feature=-crt-static' make
in Alpine Linux.