From ff69b8c2bf81f848979f18a47f18941979c5eaf2 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Thu, 10 Mar 2022 20:27:46 -0800 Subject: [PATCH] Ericson2314's suggestion here: https://github.com/NixOS/nixpkgs/pull/161158#discussion_r822295406 --- lib/systems/examples.nix | 22 +++++++++++++++++++--- lib/systems/platforms.nix | 26 +++++++------------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 1ee704a1811..997a7a8c273 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -93,9 +93,25 @@ rec { config = "mipsel-unknown-linux-gnu"; } // platforms.fuloong2f_n32; - mips64el-linux-gnuabin32 = platforms.mips64el-linux-gnuabin32; # the rust project does not publish a bootstrap tarball for gnuabin32 - mips64el-linux-gnuabi64 = platforms.mips64el-linux-gnuabi64 // { rustc.config = "mips64el-unknown-linux-gnuabi64"; }; - mips64el-qemu-linux-gnuabi64 = platforms.mips64el-qemu-linux-gnuabi64; + # MIPS ABI table transcribed from here: https://wiki.debian.org/Multiarch/Tuples + + # can execute on 32bit chip + mips-linux-gnu = { config = "mips-linux-gnu"; } // platforms.gcc_mips32r2_o32; + mipsel-linux-gnu = { config = "mipsel-linux-gnu"; } // platforms.gcc_mips32r2_o32; + mipsisa32r6-linux-gnu = { config = "mipsisa32r6-linux-gnu"; } // platforms.gcc_mips32r6_o32; + mipsisa32r6el-linux-gnu = { config = "mipsisa32r6el-linux-gnu"; } // platforms.gcc_mips32r6_o32; + + # require 64bit chip (for more registers, 64-bit floating point, 64-bit "long long") but use 32bit pointers + mips64-linux-gnuabin32 = { config = "mips64-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32; + mips64el-linux-gnuabin32 = { config = "mips64el-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32; + mipsisa64r6-linux-gnuabin32 = { config = "mipsisa64r6-linux-gnuabin32"; } // platforms.gcc_mips64r6_n32; + mipsisa64r6el-linux-gnuabin32 = { config = "mipsisa64r6el-linux-gnuabin32"; } // platforms.gcc_mips64r6_n32; + + # 64bit pointers + mips64-linux-gnuabi64 = { config = "mips64-linux-gnuabi64"; } // platforms.gcc_mips64r2_64; + mips64el-linux-gnuabi64 = { config = "mips64el-linux-gnuabi64"; } // platforms.gcc_mips64r2_64; + mipsisa64r6-linux-gnuabi64 = { config = "mipsisa64r6-linux-gnuabi64"; } // platforms.gcc_mips64r6_64; + mipsisa64r6el-linux-gnuabi64 = { config = "mipsisa64r6el-linux-gnuabi64"; } // platforms.gcc_mips64r6_64; muslpi = raspberryPi // { config = "armv6l-unknown-linux-musleabihf"; diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix index e7d61b24b05..04d55416242 100644 --- a/lib/systems/platforms.nix +++ b/lib/systems/platforms.nix @@ -489,30 +489,18 @@ rec { }; }; - # MIPS ABI table transcribed from here: https://wiki.debian.org/Multiarch/Tuples - # can execute on 32bit chip - mips-linux-gnu = { gcc = { arch = "mips32r2"; abi = "o32"; }; }; - mipsel-linux-gnu = { gcc = { arch = "mips32r2"; abi = "o32"; }; }; - mipsisa32r6-linux-gnu = { gcc = { arch = "mips32r6"; abi = "o32"; }; }; - mipsisa32r6el-linux-gnu = { gcc = { arch = "mips32r6"; abi = "o32"; }; }; - - # require 64bit chip (for more registers, 64-bit floating point, 64-bit "long long") but use 32bit pointers - mips64-linux-gnuabin32 = { gcc = { arch = "mips64r2"; abi = "n32"; }; }; - mips64el-linux-gnuabin32 = { gcc = { arch = "mips64r2"; abi = "n32"; }; }; - mipsisa64r6-linux-gnuabin32 = { gcc = { arch = "mips64r6"; abi = "n32"; }; }; - mipsisa64r6el-linux-gnuabin32 = { gcc = { arch = "mips64r6"; abi = "n32"; }; }; - - # 64bit pointers - mips64-linux-gnuabi64 = { gcc = { arch = "mips64r2"; abi = "64"; }; }; - mips64el-linux-gnuabi64 = { gcc = { arch = "mips64r2"; abi = "64"; }; }; - mipsisa64r6-linux-gnuabi64 = { gcc = { arch = "mips64r6"; abi = "64"; }; }; - mipsisa64r6el-linux-gnuabi64 = { gcc = { arch = "mips64r6"; abi = "64"; }; }; + gcc_mips32r2_o32 = { gcc = { arch = "mips32r2"; abi = "o32"; }; }; + gcc_mips32r6_o32 = { gcc = { arch = "mips32r6"; abi = "o32"; }; }; + gcc_mips64r2_n32 = { gcc = { arch = "mips64r2"; abi = "n32"; }; }; + gcc_mips64r6_n32 = { gcc = { arch = "mips64r6"; abi = "n32"; }; }; + gcc_mips64r2_64 = { gcc = { arch = "mips64r2"; abi = "64"; }; }; + gcc_mips64r6_64 = { gcc = { arch = "mips64r6"; abi = "64"; }; }; # based on: # https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html # https://gmplib.org/~tege/qemu.html#mips64-debian - mips64el-qemu-linux-gnuabi64 = mips64el-linux-gnuabi64 // { + mips64el-qemu-linux-gnuabi64 = (import ./examples).mips64el-linux-gnuabi64 // { linux-kernel = { name = "mips64el"; baseConfig = "64r2el_defconfig";