diff --git a/src/basic/virt.c b/src/basic/virt.c index 617439708d..156a19ee52 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -139,7 +139,7 @@ static int detect_vm_device_tree(void) { #endif } -#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) +#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch64) static int detect_vm_dmi_vendor(void) { static const char *const dmi_vendors[] = { "/sys/class/dmi/id/product_name", /* Test this before sys_vendor to detect KVM over QEMU */ @@ -226,10 +226,10 @@ static int detect_vm_smbios(void) { log_debug("DMI BIOS Extension table does not indicate virtualization."); return SMBIOS_VM_BIT_UNSET; } -#endif /* defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) */ +#endif /* defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch64) */ static int detect_vm_dmi(void) { -#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) +#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch64) int r; r = detect_vm_dmi_vendor(); diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 5818adbb55..49629c6bc2 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -381,6 +381,8 @@ static void test_exec_personality(Manager *m) { #elif defined(__i386__) test(m, "exec-personality-x86.service", 0, CLD_EXITED); +#elif defined(__loongarch64) + test(m, "exec-personality-loongarch64.service", 0, CLD_EXITED); #else log_notice("Unknown personality, skipping %s", __func__); #endif diff --git a/src/udev/meson.build b/src/udev/meson.build index cd0bb6653f..29ac85da12 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -133,7 +133,7 @@ udev_progs = [['ata_id/ata_id.c'], 'mtd_probe/mtd_probe.h', 'mtd_probe/probe_smartmedia.c']] -dmi_arches = ['x86', 'x86_64', 'aarch64', 'arm', 'ia64', 'mips'] +dmi_arches = ['x86', 'x86_64', 'aarch64', 'arm', 'ia64', 'loongarch64', 'mips'] if dmi_arches.contains(host_machine.cpu_family()) udev_progs += [['dmi_memory_id/dmi_memory_id.c']] endif diff --git a/test/test-execute/exec-personality-loongarch64.service b/test/test-execute/exec-personality-loongarch64.service new file mode 100644 index 0000000000..0531ad1164 --- /dev/null +++ b/test/test-execute/exec-personality-loongarch64.service @@ -0,0 +1,7 @@ +[Unit] +Description=Test for Personality=loongarch64 + +[Service] +ExecStart=/bin/sh -c 'echo $(uname -m); exit $(test $(uname -m) = "loongarch64")' +Type=oneshot +Personality=loongarch64