Merge pull request #21288 from loongarch64/la64/main

Add support for the LoongArch architecture.
This commit is contained in:
Yu Watanabe
2021-12-01 12:51:48 +09:00
committed by GitHub
4 changed files with 47 additions and 42 deletions
+36 -32
View File
@@ -70,6 +70,9 @@ int uname_architecture(void) {
{ "parisc64", ARCHITECTURE_PARISC64 },
{ "parisc", ARCHITECTURE_PARISC },
#elif defined(__loongarch64)
{ "loongarch64", ARCHITECTURE_LOONGARCH64 },
#elif defined(__m68k__)
{ "m68k", ARCHITECTURE_M68K },
@@ -137,38 +140,39 @@ int uname_architecture(void) {
/* Maintain same order as in the table above. */
static const char *const architecture_table[_ARCHITECTURE_MAX] = {
[ARCHITECTURE_ARM64] = "arm64",
[ARCHITECTURE_ARM64_BE] = "arm64-be",
[ARCHITECTURE_ARM] = "arm",
[ARCHITECTURE_ARM_BE] = "arm-be",
[ARCHITECTURE_ALPHA] = "alpha",
[ARCHITECTURE_ARC] = "arc",
[ARCHITECTURE_ARC_BE] = "arc-be",
[ARCHITECTURE_CRIS] = "cris",
[ARCHITECTURE_X86_64] = "x86-64",
[ARCHITECTURE_X86] = "x86",
[ARCHITECTURE_IA64] = "ia64",
[ARCHITECTURE_M68K] = "m68k",
[ARCHITECTURE_MIPS64_LE] = "mips64-le",
[ARCHITECTURE_MIPS64] = "mips64",
[ARCHITECTURE_MIPS_LE] = "mips-le",
[ARCHITECTURE_MIPS] = "mips",
[ARCHITECTURE_NIOS2] = "nios2",
[ARCHITECTURE_PARISC64] = "parisc64",
[ARCHITECTURE_PARISC] = "parisc",
[ARCHITECTURE_PPC64_LE] = "ppc64-le",
[ARCHITECTURE_PPC64] = "ppc64",
[ARCHITECTURE_PPC] = "ppc",
[ARCHITECTURE_PPC_LE] = "ppc-le",
[ARCHITECTURE_RISCV32] = "riscv32",
[ARCHITECTURE_RISCV64] = "riscv64",
[ARCHITECTURE_S390X] = "s390x",
[ARCHITECTURE_S390] = "s390",
[ARCHITECTURE_SH64] = "sh64",
[ARCHITECTURE_SH] = "sh",
[ARCHITECTURE_SPARC64] = "sparc64",
[ARCHITECTURE_SPARC] = "sparc",
[ARCHITECTURE_TILEGX] = "tilegx",
[ARCHITECTURE_ARM64] = "arm64",
[ARCHITECTURE_ARM64_BE] = "arm64-be",
[ARCHITECTURE_ARM] = "arm",
[ARCHITECTURE_ARM_BE] = "arm-be",
[ARCHITECTURE_ALPHA] = "alpha",
[ARCHITECTURE_ARC] = "arc",
[ARCHITECTURE_ARC_BE] = "arc-be",
[ARCHITECTURE_CRIS] = "cris",
[ARCHITECTURE_X86_64] = "x86-64",
[ARCHITECTURE_X86] = "x86",
[ARCHITECTURE_IA64] = "ia64",
[ARCHITECTURE_LOONGARCH64] = "loongarch64",
[ARCHITECTURE_M68K] = "m68k",
[ARCHITECTURE_MIPS64_LE] = "mips64-le",
[ARCHITECTURE_MIPS64] = "mips64",
[ARCHITECTURE_MIPS_LE] = "mips-le",
[ARCHITECTURE_MIPS] = "mips",
[ARCHITECTURE_NIOS2] = "nios2",
[ARCHITECTURE_PARISC64] = "parisc64",
[ARCHITECTURE_PARISC] = "parisc",
[ARCHITECTURE_PPC64_LE] = "ppc64-le",
[ARCHITECTURE_PPC64] = "ppc64",
[ARCHITECTURE_PPC] = "ppc",
[ARCHITECTURE_PPC_LE] = "ppc-le",
[ARCHITECTURE_RISCV32] = "riscv32",
[ARCHITECTURE_RISCV64] = "riscv64",
[ARCHITECTURE_S390X] = "s390x",
[ARCHITECTURE_S390] = "s390",
[ARCHITECTURE_SH64] = "sh64",
[ARCHITECTURE_SH] = "sh",
[ARCHITECTURE_SPARC64] = "sparc64",
[ARCHITECTURE_SPARC] = "sparc",
[ARCHITECTURE_TILEGX] = "tilegx",
};
DEFINE_STRING_TABLE_LOOKUP(architecture, int);
+5
View File
@@ -20,6 +20,7 @@ typedef enum {
ARCHITECTURE_ARM_BE,
ARCHITECTURE_CRIS,
ARCHITECTURE_IA64,
ARCHITECTURE_LOONGARCH64,
ARCHITECTURE_M68K,
ARCHITECTURE_MIPS,
ARCHITECTURE_MIPS64,
@@ -197,6 +198,10 @@ int uname_architecture(void);
# elif defined(__SH4A__)
# define LIB_ARCH_TUPLE "sh4a-linux-gnu"
# endif
#elif defined(__loongarch64)
# pragma message "Please update the Arch tuple of loongarch64 after psABI is stable"
# define native_architecture() ARCHITECTURE_LOONGARCH64
# define LIB_ARCH_TUPLE "loongarch64-linux-gnu"
#elif defined(__m68k__)
# define native_architecture() ARCHITECTURE_M68K
# define LIB_ARCH_TUPLE "m68k-linux-gnu"
+1 -10
View File
@@ -28,16 +28,7 @@ const GptPartitionType gpt_partition_type_table[] = {
_GPT_ARCH_SEXTET(ARM, "arm"),
_GPT_ARCH_SEXTET(ARM64, "arm64"),
_GPT_ARCH_SEXTET(IA64, "ia64"),
// TODO: Replace with `_GPT_ARCH_SEXTET(LOONGARCH64, "loongarch64")` once
// https://github.com/systemd/systemd/pull/21288 is merged. */
{ GPT_ROOT_LOONGARCH64, "root-loongarch64", _ARCHITECTURE_INVALID, .is_root = true },
{ GPT_ROOT_LOONGARCH64_VERITY, "root-loongarch64-verity", _ARCHITECTURE_INVALID, .is_root_verity = true },
{ GPT_ROOT_LOONGARCH64_VERITY_SIG, "root-loongarch64-verity-sig", _ARCHITECTURE_INVALID, .is_root_verity_sig = true },
{ GPT_USR_LOONGARCH64, "usr-loongarch64", _ARCHITECTURE_INVALID, .is_usr = true },
{ GPT_USR_LOONGARCH64_VERITY, "usr-loongarch64-verity", _ARCHITECTURE_INVALID, .is_usr_verity = true },
{ GPT_USR_LOONGARCH64_VERITY_SIG, "usr-loongarch64-verity-sig", _ARCHITECTURE_INVALID, .is_usr_verity_sig = true },
_GPT_ARCH_SEXTET(LOONGARCH64, "loongarch64"),
_GPT_ARCH_SEXTET(MIPS_LE, "mips-le"),
_GPT_ARCH_SEXTET(MIPS64_LE, "mips64-le"),
_GPT_ARCH_SEXTET(PPC, "ppc"),
+5
View File
@@ -92,6 +92,11 @@ elif [ "${machine}" = "arm" ]; then
verity_guid=7386cdf2-203c-47a9-a498-f2ecce45a2d6
signature_guid=42b0455f-eb11-491d-98d3-56145ba9d037
architecture="arm"
elif [ "${machine}" = "loongarch64" ]; then
root_guid=77055800-792c-4f94-b39a-98c91b762bb6
verity_guid=f3393b22-e9af-4613-a948-9d3bfbd0c535
signature_guid=5afb67eb-ecc8-4f85-ae8e-ac1e7c50e7d0
architecture="loongarch64"
elif [ "${machine}" = "ia64" ]; then
root_guid=993d8d3d-f80e-4225-855a-9daf8ed7ea97
verity_guid=86ed10d5-b607-45bb-8957-d350f23d0571