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

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

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

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

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

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

Loading…
Cancel
Save