lib/systems: add ARC (Synopsys DesignWare ARC) cross-compilation support
Add arc CPU type (32-bit, little-endian, family "arc"), isArc predicate, arc-linux double, arc cross example with arc-unknown-linux-gnu triple, and release-cross job. ARC has glibc support and uses the "arc" Linux kernel arch, which matches the CPU name so no explicit linuxArch mapping is needed.
This commit is contained in:
@@ -32,6 +32,7 @@ let
|
||||
|
||||
# Linux
|
||||
"aarch64-linux"
|
||||
"arc-linux"
|
||||
"armv5tel-linux"
|
||||
"armv6l-linux"
|
||||
"armv7a-linux"
|
||||
@@ -143,6 +144,7 @@ in
|
||||
vc4 = filterDoubles predicates.isVc4;
|
||||
or1k = filterDoubles predicates.isOr1k;
|
||||
m68k = filterDoubles predicates.isM68k;
|
||||
arc = filterDoubles predicates.isArc;
|
||||
s390 = filterDoubles predicates.isS390;
|
||||
s390x = filterDoubles predicates.isS390x;
|
||||
loongarch64 = filterDoubles predicates.isLoongArch64;
|
||||
|
||||
@@ -239,6 +239,10 @@ rec {
|
||||
config = "m68k-unknown-linux-gnu";
|
||||
};
|
||||
|
||||
arc = {
|
||||
config = "arc-unknown-linux-gnu";
|
||||
};
|
||||
|
||||
s390 = {
|
||||
config = "s390-unknown-linux-gnu";
|
||||
};
|
||||
|
||||
@@ -229,6 +229,11 @@ rec {
|
||||
family = "m68k";
|
||||
};
|
||||
};
|
||||
isArc = {
|
||||
cpu = {
|
||||
family = "arc";
|
||||
};
|
||||
};
|
||||
isS390 = {
|
||||
cpu = {
|
||||
family = "s390";
|
||||
|
||||
@@ -382,6 +382,12 @@ rec {
|
||||
family = "or1k";
|
||||
};
|
||||
|
||||
arc = {
|
||||
bits = 32;
|
||||
significantByte = littleEndian;
|
||||
family = "arc";
|
||||
};
|
||||
|
||||
loongarch64 = {
|
||||
bits = 64;
|
||||
significantByte = littleEndian;
|
||||
|
||||
@@ -163,6 +163,7 @@ lib.runTests (
|
||||
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
||||
testlinux = mseteq linux [
|
||||
"aarch64-linux"
|
||||
"arc-linux"
|
||||
"armv5tel-linux"
|
||||
"armv6l-linux"
|
||||
"armv7a-linux"
|
||||
|
||||
@@ -250,6 +250,7 @@ in
|
||||
loongarch64-linux = mapTestOnCross systems.examples.loongarch64-linux linuxCommon;
|
||||
|
||||
m68k = mapTestOnCross systems.examples.m68k linuxCommon;
|
||||
arc = mapTestOnCross systems.examples.arc linuxCommon;
|
||||
s390x = mapTestOnCross systems.examples.s390x linuxCommon;
|
||||
|
||||
# (Cross-compiled) Linux on x86
|
||||
|
||||
Reference in New Issue
Block a user