build-support/rust: toTargetArch: strip off endianness #187841
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.
Description of changes
toTargetArch
inpkgs/build-support/rust/lib/default.nix
is used to setCARGO_CFG_TARGET_ARCH
. This environment variable is supposed to be the<arch>
portion of an LLVM-style platform name:Note that the pointer-width (the "64" in "x86_64" and "mips64") is part of
<arch>
, but the endianness (the_be
inaarch64_be
) is not.Unfortunately at the moment nixpkgs' parsed
cpuType
has no way to query for the three subparts (name, pointer-width, and subarch/endianness), nor any way to ask for just the first two parts.For now, this commit simply fixes the problem in the two cases that matter:
mips64el
andpowerpc64le
, which I believe are the only two platforms supported by both rust and nixpkgs which have a "subarchitecture".Things done
ring
./result/bin/
)