diff --git a/src/basic/architecture.c b/src/basic/architecture.c index 730a5f2de2..f474ed2954 100644 --- a/src/basic/architecture.c +++ b/src/basic/architecture.c @@ -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); diff --git a/src/basic/architecture.h b/src/basic/architecture.h index eaee01348e..0b91c69c0b 100644 --- a/src/basic/architecture.h +++ b/src/basic/architecture.h @@ -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" diff --git a/src/shared/gpt.c b/src/shared/gpt.c index bf494119b5..c01a57a5fb 100644 --- a/src/shared/gpt.c +++ b/src/shared/gpt.c @@ -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"), diff --git a/test/units/testsuite-50.sh b/test/units/testsuite-50.sh index e7e4e4b147..1e8df93349 100755 --- a/test/units/testsuite-50.sh +++ b/test/units/testsuite-50.sh @@ -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