Adam Joseph 2 years ago
parent 6de935a012
commit ff69b8c2bf
  1. 22
      lib/systems/examples.nix
  2. 26
      lib/systems/platforms.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";

@ -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";

Loading…
Cancel
Save