systems: support cross-compiling for Renesas RX microcontrollers (#173858)

main
yvt 2 years ago committed by GitHub
parent 66782715d8
commit bf139d83ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      lib/systems/doubles.nix
  2. 5
      lib/systems/examples.nix
  3. 1
      lib/systems/inspect.nix
  4. 1
      lib/systems/parse.nix
  5. 1
      pkgs/build-support/bintools-wrapper/default.nix
  6. 1
      pkgs/top-level/release-cross.nix

@ -41,7 +41,7 @@ let
# none # none
"aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" "aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
"msp430-none" "or1k-none" "m68k-none" "powerpc-none" "powerpcle-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" "x86_64-none"
# OpenBSD # OpenBSD
@ -76,6 +76,7 @@ in {
riscv = filterDoubles predicates.isRiscV; riscv = filterDoubles predicates.isRiscV;
riscv32 = filterDoubles predicates.isRiscV32; riscv32 = filterDoubles predicates.isRiscV32;
riscv64 = filterDoubles predicates.isRiscV64; riscv64 = filterDoubles predicates.isRiscV64;
rx = filterDoubles predicates.isRx;
vc4 = filterDoubles predicates.isVc4; vc4 = filterDoubles predicates.isVc4;
or1k = filterDoubles predicates.isOr1k; or1k = filterDoubles predicates.isOr1k;
m68k = filterDoubles predicates.isM68k; m68k = filterDoubles predicates.isM68k;

@ -145,6 +145,11 @@ rec {
libc = "newlib"; libc = "newlib";
}; };
rx-embedded = {
config = "rx-none-elf";
libc = "newlib";
};
msp430 = { msp430 = {
config = "msp430-elf"; config = "msp430-elf";
libc = "newlib"; libc = "newlib";

@ -26,6 +26,7 @@ rec {
isRiscV = { cpu = { family = "riscv"; }; }; isRiscV = { cpu = { family = "riscv"; }; };
isRiscV32 = { cpu = { family = "riscv"; bits = 32; }; }; isRiscV32 = { cpu = { family = "riscv"; bits = 32; }; };
isRiscV64 = { cpu = { family = "riscv"; bits = 64; }; }; isRiscV64 = { cpu = { family = "riscv"; bits = 64; }; };
isRx = { cpu = { family = "rx"; }; };
isSparc = { cpu = { family = "sparc"; }; }; isSparc = { cpu = { family = "sparc"; }; };
isWasm = { cpu = { family = "wasm"; }; }; isWasm = { cpu = { family = "wasm"; }; };
isMsp430 = { cpu = { family = "msp430"; }; }; isMsp430 = { cpu = { family = "msp430"; }; };

@ -116,6 +116,7 @@ rec {
alpha = { bits = 64; significantByte = littleEndian; family = "alpha"; }; alpha = { bits = 64; significantByte = littleEndian; family = "alpha"; };
rx = { bits = 32; significantByte = littleEndian; family = "rx"; };
msp430 = { bits = 16; significantByte = littleEndian; family = "msp430"; }; msp430 = { bits = 16; significantByte = littleEndian; family = "msp430"; };
avr = { bits = 8; family = "avr"; }; avr = { bits = 8; family = "avr"; };

@ -213,6 +213,7 @@ stdenv.mkDerivation {
else if targetPlatform.isM68k then "m68k" else if targetPlatform.isM68k then "m68k"
else if targetPlatform.isS390 then "s390" else if targetPlatform.isS390 then "s390"
else if targetPlatform.isRiscV then "lriscv" else if targetPlatform.isRiscV then "lriscv"
else if targetPlatform.isRx then "rx"
else throw "unknown emulation for platform: ${targetPlatform.config}"; else throw "unknown emulation for platform: ${targetPlatform.config}";
in if targetPlatform.useLLVM or false then "" in if targetPlatform.useLLVM or false then ""
else targetPlatform.bfdEmulation or (fmt + sep + arch); else targetPlatform.bfdEmulation or (fmt + sep + arch);

@ -197,6 +197,7 @@ in
x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded; x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded; riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded;
riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32-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; x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common;

Loading…
Cancel
Save