From edcad332d938a97d09d3b3664ed4618eaf1d4938 Mon Sep 17 00:00:00 2001 From: jackyliu16 <18922251299@163.com> Date: Thu, 27 Apr 2023 20:04:17 +0300 Subject: lib.platforms.loongarch64: init --- lib/systems/default.nix | 1 + lib/systems/doubles.nix | 3 ++- lib/systems/examples.nix | 4 ++++ lib/systems/inspect.nix | 1 + lib/systems/parse.nix | 2 ++ lib/tests/systems.nix | 2 +- 6 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 7e6fa5ecfb4..ea8e0bcb78b 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 b32c8630107..ce9e5068c90 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -49,6 +49,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"; }; }; diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index 88e2e4206d5..792aa94f335 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -34,7 +34,7 @@ with lib.systems.doubles; lib.runTests { testredox = mseteq redox [ "x86_64-redox" ]; testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */); testillumos = mseteq illumos [ "x86_64-solaris" ]; - testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" "microblaze-linux" "microblazeel-linux" ]; + testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" "microblaze-linux" "microblazeel-linux" "loongarch64-linux" ]; testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ]; testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]; testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ]; -- cgit 1.4.1