lib.systems: Simplify ABI on POWER for rust.rustcTarget
Rust does not know how to parse "gnuabielfv{1,2}", so simplify those down to just "gnu".
This obsoletes the manual rustcTarget fix in the ppc64-elfv1 example.
This commit is contained in:
@@ -491,6 +491,13 @@ let
|
|||||||
}
|
}
|
||||||
.${cpu.name} or cpu.name;
|
.${cpu.name} or cpu.name;
|
||||||
vendor_ = final.rust.platform.vendor;
|
vendor_ = final.rust.platform.vendor;
|
||||||
|
abi_ =
|
||||||
|
# We're very explicit about the POWER ELF ABI w/ glibc in our parsing, while Rust is not.
|
||||||
|
# TODO: Somehow ensure that Rust actually *uses* the correct ABI, and not just a libc-based default.
|
||||||
|
if (lib.strings.hasPrefix "powerpc" cpu.name) && (lib.strings.hasPrefix "gnuabielfv" abi.name) then
|
||||||
|
"gnu"
|
||||||
|
else
|
||||||
|
abi.name;
|
||||||
in
|
in
|
||||||
# TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL.
|
# TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL.
|
||||||
args.rust.rustcTarget or args.rustc.config or (
|
args.rust.rustcTarget or args.rustc.config or (
|
||||||
@@ -501,7 +508,7 @@ let
|
|||||||
if final.isWasi then
|
if final.isWasi then
|
||||||
"${cpu_}-wasip1"
|
"${cpu_}-wasip1"
|
||||||
else
|
else
|
||||||
"${cpu_}-${vendor_}-${kernel.name}${optionalString (abi.name != "unknown") "-${abi.name}"}"
|
"${cpu_}-${vendor_}-${kernel.name}${optionalString (abi.name != "unknown") "-${abi_}"}"
|
||||||
);
|
);
|
||||||
|
|
||||||
# The name of the rust target if it is standard, or the json file
|
# The name of the rust target if it is standard, or the json file
|
||||||
|
|||||||
Reference in New Issue
Block a user