Merge pull request #116495 from r-burns/ppc64

lib/systems: remove powerpc64 elfv1 support
This commit is contained in:
Sandro 2021-04-12 16:44:14 +02:00 committed by GitHub
commit 9f198c1423
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 19 deletions

View File

@ -73,7 +73,7 @@ in {
darwin = filterDoubles predicates.isDarwin; darwin = filterDoubles predicates.isDarwin;
freebsd = filterDoubles predicates.isFreeBSD; freebsd = filterDoubles predicates.isFreeBSD;
# Should be better, but MinGW is unclear. # Should be better, but MinGW is unclear.
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.elfv1; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.elfv2; }); gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; });
illumos = filterDoubles predicates.isSunOS; illumos = filterDoubles predicates.isSunOS;
linux = filterDoubles predicates.isLinux; linux = filterDoubles predicates.isLinux;
netbsd = filterDoubles predicates.isNetBSD; netbsd = filterDoubles predicates.isNetBSD;

View File

@ -21,14 +21,10 @@ rec {
config = "powerpc64le-unknown-linux-musl"; config = "powerpc64le-unknown-linux-musl";
}; };
ppc64-elfv1 = { ppc64 = {
config = "powerpc64-unknown-linux-elfv1"; config = "powerpc64-unknown-linux-gnu";
gcc = { abi = "elfv2"; }; # for gcc configuration
}; };
ppc64-elfv2 = {
config = "powerpc64-unknown-linux-elfv2";
};
ppc64 = ppc64-elfv2; # default to modern elfv2
ppc64-musl = { ppc64-musl = {
config = "powerpc64-unknown-linux-musl"; config = "powerpc64-unknown-linux-musl";
gcc = { abi = "elfv2"; }; # for gcc configuration gcc = { abi = "elfv2"; }; # for gcc configuration

View File

@ -337,18 +337,10 @@ rec {
The "gnu" ABI is ambiguous on 32-bit ARM. Use "gnueabi" or "gnueabihf" instead. The "gnu" ABI is ambiguous on 32-bit ARM. Use "gnueabi" or "gnueabihf" instead.
''; '';
} }
{ assertion = platform: platform.system != "powerpc64-linux";
message = ''
The "gnu" ABI is ambiguous on big-endian 64-bit PPC. Use "elfv1" or "elfv2" instead.
'';
}
]; ];
}; };
gnuabi64 = { abi = "64"; }; gnuabi64 = { abi = "64"; };
elfv1 = { abi = "elfv1"; };
elfv2 = { abi = "elfv2"; };
musleabi = { float = "soft"; }; musleabi = { float = "soft"; };
musleabihf = { float = "hard"; }; musleabihf = { float = "hard"; };
musl = {}; musl = {};
@ -452,7 +444,6 @@ rec {
if lib.versionAtLeast (parsed.cpu.version or "0") "6" if lib.versionAtLeast (parsed.cpu.version or "0") "6"
then abis.gnueabihf then abis.gnueabihf
else abis.gnueabi else abis.gnueabi
else if cpu == "powerpc64" then abis.elfv2
else abis.gnu else abis.gnu
else abis.unknown; else abis.unknown;
}; };

View File

@ -19,8 +19,7 @@ in with pkgs; rec {
tarMinimal = gnutar.override { acl = null; }; tarMinimal = gnutar.override { acl = null; };
busyboxMinimal = busybox.override { busyboxMinimal = busybox.override {
useMusl = with stdenv.targetPlatform; !isRiscV && useMusl = !stdenv.targetPlatform.isRiscV;
(system == "powerpc64-linux" -> parsed.abi.name != "elfv1");
enableStatic = true; enableStatic = true;
enableMinimal = true; enableMinimal = true;
extraConfig = '' extraConfig = ''

View File

@ -227,6 +227,8 @@ let
}.${stdenv.hostPlatform.parsed.abi.name} }.${stdenv.hostPlatform.parsed.abi.name}
or lib.systems.parse.abis.musl; or lib.systems.parse.abis.musl;
}; };
} // lib.optionalAttrs (stdenv.hostPlatform.system == "powerpc64-linux") {
gcc.abi = "elfv2";
}; };
}); });
}; };