Merge pull request #53029 from Ericson2314/windows-ce-arm
lib: Fix Mingw on 32-bit ARM
This commit is contained in:
commit
1383670a83
|
@ -279,8 +279,14 @@ rec {
|
||||||
"2" = # We only do 2-part hacks for things Nix already supports
|
"2" = # We only do 2-part hacks for things Nix already supports
|
||||||
if elemAt l 1 == "cygwin"
|
if elemAt l 1 == "cygwin"
|
||||||
then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; }
|
then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; }
|
||||||
|
# MSVC ought to be the default ABI so this case isn't needed. But then it
|
||||||
|
# becomes difficult to handle the gnu* variants for Aarch32 correctly for
|
||||||
|
# minGW. So it's easier to make gnu* the default for the MinGW, but
|
||||||
|
# hack-in MSVC for the non-MinGW case right here.
|
||||||
|
else if elemAt l 1 == "windows"
|
||||||
|
then { cpu = elemAt l 0; kernel = "windows"; abi = "msvc"; }
|
||||||
else if (elemAt l 1) == "elf"
|
else if (elemAt l 1) == "elf"
|
||||||
then { cpu = elemAt l 0; vendor = "unknown"; kernel = "none"; abi = elemAt l 1; }
|
then { cpu = elemAt l 0; vendor = "unknown"; kernel = "none"; abi = elemAt l 1; }
|
||||||
else { cpu = elemAt l 0; kernel = elemAt l 1; };
|
else { cpu = elemAt l 0; kernel = elemAt l 1; };
|
||||||
"3" = # Awkwards hacks, beware!
|
"3" = # Awkwards hacks, beware!
|
||||||
if elemAt l 1 == "apple"
|
if elemAt l 1 == "apple"
|
||||||
|
@ -288,7 +294,7 @@ rec {
|
||||||
else if (elemAt l 1 == "linux") || (elemAt l 2 == "gnu")
|
else if (elemAt l 1 == "linux") || (elemAt l 2 == "gnu")
|
||||||
then { cpu = elemAt l 0; kernel = elemAt l 1; abi = elemAt l 2; }
|
then { cpu = elemAt l 0; kernel = elemAt l 1; abi = elemAt l 2; }
|
||||||
else if (elemAt l 2 == "mingw32") # autotools breaks on -gnu for window
|
else if (elemAt l 2 == "mingw32") # autotools breaks on -gnu for window
|
||||||
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows"; abi = "gnu"; }
|
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows"; }
|
||||||
else if hasPrefix "netbsd" (elemAt l 2)
|
else if hasPrefix "netbsd" (elemAt l 2)
|
||||||
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; }
|
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; }
|
||||||
else if (elem (elemAt l 2) ["eabi" "eabihf" "elf"])
|
else if (elem (elemAt l 2) ["eabi" "eabihf" "elf"])
|
||||||
|
@ -324,13 +330,12 @@ rec {
|
||||||
else getKernel args.kernel;
|
else getKernel args.kernel;
|
||||||
abi =
|
abi =
|
||||||
/**/ if args ? abi then getAbi args.abi
|
/**/ if args ? abi then getAbi args.abi
|
||||||
else if isLinux parsed then
|
else if isLinux parsed || isWindows parsed then
|
||||||
if isAarch32 parsed then
|
if isAarch32 parsed then
|
||||||
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 abis.gnu
|
else abis.gnu
|
||||||
else if isWindows parsed then abis.gnu
|
|
||||||
else abis.unknown;
|
else abis.unknown;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue