summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/systems/doubles.nix3
-rw-r--r--lib/systems/examples.nix5
-rw-r--r--lib/systems/inspect.nix1
-rw-r--r--lib/systems/parse.nix1
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix1
-rw-r--r--pkgs/top-level/release-cross.nix1
6 files changed, 11 insertions, 1 deletions
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index 3cdebbc07c1..90a6eb9f35c 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -41,7 +41,7 @@ let
     # none
     "aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
     "msp430-none" "or1k-none" "m68k-none" "powerpc-none" "powerpcle-none"
-    "riscv32-none" "riscv64-none" "s390-none" "s390x-none" "vc4-none"
+    "riscv32-none" "riscv64-none" "rx-none" "s390-none" "s390x-none" "vc4-none"
     "x86_64-none"
 
     # OpenBSD
@@ -76,6 +76,7 @@ in {
   riscv         = filterDoubles predicates.isRiscV;
   riscv32       = filterDoubles predicates.isRiscV32;
   riscv64       = filterDoubles predicates.isRiscV64;
+  rx            = filterDoubles predicates.isRx;
   vc4           = filterDoubles predicates.isVc4;
   or1k          = filterDoubles predicates.isOr1k;
   m68k          = filterDoubles predicates.isM68k;
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 997a7a8c273..170db6fb9fa 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -145,6 +145,11 @@ rec {
     libc = "newlib";
   };
 
+  rx-embedded = {
+    config = "rx-none-elf";
+    libc = "newlib";
+  };
+
   msp430 = {
     config = "msp430-elf";
     libc = "newlib";
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 27c25deafec..00cbe4f012c 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -26,6 +26,7 @@ rec {
     isRiscV        = { cpu = { family = "riscv"; }; };
     isRiscV32      = { cpu = { family = "riscv"; bits = 32; }; };
     isRiscV64      = { cpu = { family = "riscv"; bits = 64; }; };
+    isRx           = { cpu = { family = "rx"; }; };
     isSparc        = { cpu = { family = "sparc"; }; };
     isWasm         = { cpu = { family = "wasm"; }; };
     isMsp430       = { cpu = { family = "msp430"; }; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 3ceddbb599b..bf436ec8db5 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -116,6 +116,7 @@ rec {
 
     alpha    = { bits = 64; significantByte = littleEndian; family = "alpha"; };
 
+    rx       = { bits = 32; significantByte = littleEndian; family = "rx"; };
     msp430   = { bits = 16; significantByte = littleEndian; family = "msp430"; };
     avr      = { bits = 8; family = "avr"; };
 
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index c2d67169c9c..6b15aa0ddaf 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -213,6 +213,7 @@ stdenv.mkDerivation {
       else if targetPlatform.isM68k then "m68k"
       else if targetPlatform.isS390 then "s390"
       else if targetPlatform.isRiscV then "lriscv"
+      else if targetPlatform.isRx then "rx"
       else throw "unknown emulation for platform: ${targetPlatform.config}";
     in if targetPlatform.useLLVM or false then ""
        else targetPlatform.bfdEmulation or (fmt + sep + arch);
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index 13a49179bcb..63a4a335dc9 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -197,6 +197,7 @@ in
   x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
   riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded;
   riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32-embedded embedded;
+  rx-embedded = mapTestOnCross lib.systems.examples.rx-embedded embedded;
 
   x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common;