summary refs log tree commit diff
path: root/lib/systems
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-04-28 13:21:42 +0300
committerGitHub <noreply@github.com>2023-04-28 13:21:42 +0300
commitb2ef7956b631118c98f2e3de2f7594f6f844230c (patch)
tree480e7be099f871d7a7616f392a3a548e7491e336 /lib/systems
parentc0f57c1d2359234280f2b6d47ff220f58c19c53d (diff)
parent15e3a50bd354dfa561eaae222159832829834f65 (diff)
downloadnixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.tar
nixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.tar.gz
nixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.tar.bz2
nixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.tar.lz
nixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.tar.xz
nixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.tar.zst
nixpkgs-b2ef7956b631118c98f2e3de2f7594f6f844230c.zip
Merge pull request #227560 from jackyliu16/loongnix-commit
lib.platforms.loongarch64: init
Diffstat (limited to 'lib/systems')
-rw-r--r--lib/systems/default.nix1
-rw-r--r--lib/systems/doubles.nix3
-rw-r--r--lib/systems/examples.nix4
-rw-r--r--lib/systems/inspect.nix1
-rw-r--r--lib/systems/parse.nix2
5 files changed, 10 insertions, 1 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index b2cb8848f08..85e24e08d36 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -136,6 +136,7 @@ rec {
         else if final.isPower then "powerpc"
         else if final.isRiscV then "riscv"
         else if final.isS390 then "s390"
+        else if final.isLoongArch64 then "loongarch"
         else final.parsed.cpu.name;
 
       qemuArch =
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index 6b19309d11f..6d2f015674e 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -26,7 +26,7 @@ let
 
     # Linux
     "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
-    "armv7l-linux" "i686-linux" "m68k-linux" "microblaze-linux"
+    "armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux"
     "microblazeel-linux" "mipsel-linux" "mips64el-linux" "powerpc64-linux"
     "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux"
     "s390x-linux" "x86_64-linux"
@@ -86,6 +86,7 @@ in {
   m68k          = filterDoubles predicates.isM68k;
   s390          = filterDoubles predicates.isS390;
   s390x         = filterDoubles predicates.isS390x;
+  loongarch64   = filterDoubles predicates.isLoongArch64;
   js            = filterDoubles predicates.isJavaScript;
 
   bigEndian     = filterDoubles predicates.isBigEndian;
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 9ea2e3b56e9..3ae5d6ffd47 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -90,6 +90,10 @@ rec {
     config = "mipsel-unknown-linux-gnu";
   } // platforms.fuloong2f_n32;
 
+  loongarch64-linux = {
+    config = "loongarch64-unknown-linux-gnu";
+  };
+
   # can execute on 32bit chip
   mips-linux-gnu                = { config = "mips-unknown-linux-gnu";                } // platforms.gcc_mips32r2_o32;
   mipsel-linux-gnu              = { config = "mipsel-unknown-linux-gnu";              } // platforms.gcc_mips32r2_o32;
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 1700049ca4b..89e9f4231d9 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -57,6 +57,7 @@ rec {
     isM68k         = { cpu = { family = "m68k"; }; };
     isS390         = { cpu = { family = "s390"; }; };
     isS390x        = { cpu = { family = "s390"; bits = 64; }; };
+    isLoongArch64  = { cpu = { family = "loongarch"; bits = 64; }; };
     isJavaScript   = { cpu = cpuTypes.javascript; };
 
     is32bit        = { cpu = { bits = 32; }; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index bd3366e140b..ea8e1ff8fcf 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -131,6 +131,8 @@ rec {
 
     or1k     = { bits = 32; significantByte = bigEndian; family = "or1k"; };
 
+    loongarch64 = { bits = 64; significantByte = littleEndian; family = "loongarch"; };
+
     javascript = { bits = 32; significantByte = littleEndian; family = "javascript"; };
   };