mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-15 03:15:56 +03:00
build-support/rust: toTargetArch: strip off endianness
`toTargetArch` in `pkgs/build-support/rust/lib/default.nix` is used to set `CARGO_CFG_TARGET_ARCH`. This environment variable is supposed to be the `<arch>` portion of an LLVM-style platform name: ``` <arch><sub>-<kernel>-<libc><abi> ``` Note that the pointer-width (the "64" in "x86_64" and "mips64") is part of `<arch>`, but the endianness (the `_be` in `aarch64_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` and `powerpc64le`, which I believe are the only two platforms supported by both rust and nixpkgs which have a "subarchitecture".
This commit is contained in:
parent
eaf476b608
commit
8682bd0a81
@ -5,6 +5,8 @@ rec {
|
||||
toTargetArch = platform:
|
||||
/**/ if platform ? rustc.platform then platform.rustc.platform.arch
|
||||
else if platform.isAarch32 then "arm"
|
||||
else if platform.isMips64 then "mips64" # never add "el" suffix
|
||||
else if platform.isPower64 then "powerpc64" # never add "le" suffix
|
||||
else platform.parsed.cpu.name;
|
||||
|
||||
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
|
||||
|
Loading…
Reference in New Issue
Block a user