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

This commit is contained in:
yvt 2022-05-23 09:52:36 +09:00 committed by GitHub
parent 66782715d8
commit bf139d83ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 11 additions and 1 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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