Merge pull request #116495 from r-burns/ppc64

lib/systems: remove powerpc64 elfv1 support

Sandro 9f198c14 a710ac72

Changed files
+7 -19
lib
pkgs
stdenv
top-level
+1 -1
lib/systems/doubles.nix
···
darwin = filterDoubles predicates.isDarwin;
freebsd = filterDoubles predicates.isFreeBSD;
# 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;
linux = filterDoubles predicates.isLinux;
netbsd = filterDoubles predicates.isNetBSD;
+3 -7
lib/systems/examples.nix
···
config = "powerpc64le-unknown-linux-musl";
};
-
ppc64-elfv1 = {
-
config = "powerpc64-unknown-linux-elfv1";
-
};
-
ppc64-elfv2 = {
-
config = "powerpc64-unknown-linux-elfv2";
+
ppc64 = {
+
config = "powerpc64-unknown-linux-gnu";
+
gcc = { abi = "elfv2"; }; # for gcc configuration
};
-
ppc64 = ppc64-elfv2; # default to modern elfv2
-
ppc64-musl = {
config = "powerpc64-unknown-linux-musl";
gcc = { abi = "elfv2"; }; # for gcc configuration
-9
lib/systems/parse.nix
···
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"; };
-
-
elfv1 = { abi = "elfv1"; };
-
elfv2 = { abi = "elfv2"; };
musleabi = { float = "soft"; };
musleabihf = { float = "hard"; };
···
if lib.versionAtLeast (parsed.cpu.version or "0") "6"
then abis.gnueabihf
else abis.gnueabi
-
else if cpu == "powerpc64" then abis.elfv2
else abis.gnu
else abis.unknown;
};
+1 -2
pkgs/stdenv/linux/make-bootstrap-tools.nix
···
tarMinimal = gnutar.override { acl = null; };
busyboxMinimal = busybox.override {
-
useMusl = with stdenv.targetPlatform; !isRiscV &&
-
(system == "powerpc64-linux" -> parsed.abi.name != "elfv1");
+
useMusl = !stdenv.targetPlatform.isRiscV;
enableStatic = true;
enableMinimal = true;
extraConfig = ''
+2
pkgs/top-level/stage.nix
···
}.${stdenv.hostPlatform.parsed.abi.name}
or lib.systems.parse.abis.musl;
};
+
} // lib.optionalAttrs (stdenv.hostPlatform.system == "powerpc64-linux") {
+
gcc.abi = "elfv2";
};
});
};