summary refs log tree commit diff
path: root/lib/systems
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2022-03-10 20:27:46 -0800
committerAdam Joseph <adam@westernsemico.com>2022-03-10 20:30:19 -0800
commitff69b8c2bf81f848979f18a47f18941979c5eaf2 (patch)
treeeab30c2c98827b329c796e65a6c2107ec8fa38e0 /lib/systems
parent6de935a0126efde78feefbbe3bddfaa6be2bda6a (diff)
downloadnixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.tar
nixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.tar.gz
nixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.tar.bz2
nixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.tar.lz
nixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.tar.xz
nixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.tar.zst
nixpkgs-ff69b8c2bf81f848979f18a47f18941979c5eaf2.zip
Ericson2314's suggestion here: https://github.com/NixOS/nixpkgs/pull/161158#discussion_r822295406
Diffstat (limited to 'lib/systems')
-rw-r--r--lib/systems/examples.nix22
-rw-r--r--lib/systems/platforms.nix26
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";