Add loongarch support
Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>
This commit is contained in:
parent
1a853ba152
commit
96ed02e859
43
0029-Add-support-for-the-LoongArch-architecture.patch
Normal file
43
0029-Add-support-for-the-LoongArch-architecture.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
diff --git a/src/basic/architecture.c b/src/basic/architecture.c
|
||||||
|
index 409632c..e86aff3 100644
|
||||||
|
--- a/src/basic/architecture.c
|
||||||
|
+++ b/src/basic/architecture.c
|
||||||
|
@@ -118,6 +118,8 @@ int uname_architecture(void) {
|
||||||
|
#elif defined(__arc__)
|
||||||
|
{ "arc", ARCHITECTURE_ARC },
|
||||||
|
{ "arceb", ARCHITECTURE_ARC_BE },
|
||||||
|
+#elif defined(__loongarch64)
|
||||||
|
+ { "loongarch64", ARCHITECTURE_LOONGARCH64 },
|
||||||
|
#else
|
||||||
|
#error "Please register your architecture here!"
|
||||||
|
#endif
|
||||||
|
@@ -173,6 +175,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = {
|
||||||
|
[ARCHITECTURE_RISCV64] = "riscv64",
|
||||||
|
[ARCHITECTURE_ARC] = "arc",
|
||||||
|
[ARCHITECTURE_ARC_BE] = "arc-be",
|
||||||
|
+ [ARCHITECTURE_LOONGARCH64] = "loongarch64",
|
||||||
|
};
|
||||||
|
|
||||||
|
DEFINE_STRING_TABLE_LOOKUP(architecture, int);
|
||||||
|
diff --git a/src/basic/architecture.h b/src/basic/architecture.h
|
||||||
|
index 9abc183..758bd8c 100644
|
||||||
|
--- a/src/basic/architecture.h
|
||||||
|
+++ b/src/basic/architecture.h
|
||||||
|
@@ -44,6 +44,7 @@ enum {
|
||||||
|
ARCHITECTURE_RISCV64,
|
||||||
|
ARCHITECTURE_ARC,
|
||||||
|
ARCHITECTURE_ARC_BE,
|
||||||
|
+ ARCHITECTURE_LOONGARCH64,
|
||||||
|
_ARCHITECTURE_MAX,
|
||||||
|
_ARCHITECTURE_INVALID = -EINVAL,
|
||||||
|
};
|
||||||
|
@@ -229,6 +230,9 @@ int uname_architecture(void);
|
||||||
|
# define native_architecture() ARCHITECTURE_ARC
|
||||||
|
# define LIB_ARCH_TUPLE "arc-linux"
|
||||||
|
# endif
|
||||||
|
+#elif defined(__loongarch64)
|
||||||
|
+# define native_architecture() ARCHITECTURE_LOONGARCH64
|
||||||
|
+# define LIB_ARCH_TUPLE "loongarch64-linux-gnu"
|
||||||
|
#else
|
||||||
|
# error "Please register your architecture here!"
|
||||||
|
#endif
|
||||||
65
0030-Add-LoongArch-dmi-virt-detection-and-testcase.patch
Normal file
65
0030-Add-LoongArch-dmi-virt-detection-and-testcase.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
diff --git a/src/basic/virt.c b/src/basic/virt.c
|
||||||
|
index 7e88f09..de1acf1 100644
|
||||||
|
--- a/src/basic/virt.c
|
||||||
|
+++ b/src/basic/virt.c
|
||||||
|
@@ -140,7 +140,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 */
|
||||||
|
@@ -225,10 +225,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 125e0bb..6e168d3 100644
|
||||||
|
--- a/src/test/test-execute.c
|
||||||
|
+++ b/src/test/test-execute.c
|
||||||
|
@@ -284,6 +284,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 4e80f9b..f2eb0b2 100644
|
||||||
|
--- a/src/udev/meson.build
|
||||||
|
+++ b/src/udev/meson.build
|
||||||
|
@@ -129,7 +129,7 @@ udev_id_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_id_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 0000000..0531ad1
|
||||||
|
--- /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
|
||||||
13
systemd.spec
13
systemd.spec
@ -20,7 +20,7 @@
|
|||||||
Name: systemd
|
Name: systemd
|
||||||
Url: https://www.freedesktop.org/wiki/Software/systemd
|
Url: https://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 249
|
Version: 249
|
||||||
Release: 40
|
Release: 41
|
||||||
License: MIT and LGPLv2+ and GPLv2+
|
License: MIT and LGPLv2+ and GPLv2+
|
||||||
Summary: System and Service Manager
|
Summary: System and Service Manager
|
||||||
|
|
||||||
@ -444,6 +444,10 @@ Patch9029: Don-t-set-AlternativeNamesPolicy-by-default.patch
|
|||||||
Patch9030: change-NTP-server-to-x.pool.ntp.org.patch
|
Patch9030: change-NTP-server-to-x.pool.ntp.org.patch
|
||||||
Patch9031: keep-weight-consistent-with-the-set-value.patch
|
Patch9031: keep-weight-consistent-with-the-set-value.patch
|
||||||
Patch9032: Systemd-Add-sw64-architecture.patch
|
Patch9032: Systemd-Add-sw64-architecture.patch
|
||||||
|
%ifarch loongarch64
|
||||||
|
Patch9033: 0029-Add-support-for-the-LoongArch-architecture.patch
|
||||||
|
Patch9034: 0030-Add-LoongArch-dmi-virt-detection-and-testcase.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
BuildRequires: gcc, gcc-c++
|
BuildRequires: gcc, gcc-c++
|
||||||
BuildRequires: libcap-devel, libmount-devel, pam-devel, libselinux-devel
|
BuildRequires: libcap-devel, libmount-devel, pam-devel, libselinux-devel
|
||||||
@ -458,8 +462,10 @@ BuildRequires: python3-devel, python3-lxml, firewalld-filesystem, libseccomp-de
|
|||||||
BuildRequires: python3-jinja2
|
BuildRequires: python3-jinja2
|
||||||
|
|
||||||
%ifarch %{valgrind_arches}
|
%ifarch %{valgrind_arches}
|
||||||
|
%ifnarch loongarch64
|
||||||
BuildRequires: valgrind-devel
|
BuildRequires: valgrind-devel
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
BuildRequires: util-linux
|
BuildRequires: util-linux
|
||||||
BuildRequires: chrpath
|
BuildRequires: chrpath
|
||||||
|
|
||||||
@ -824,7 +830,9 @@ mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
|||||||
echo "/usr/lib/systemd" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
|
echo "/usr/lib/systemd" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
|
||||||
|
|
||||||
%check
|
%check
|
||||||
|
%ifnarch loongarch64
|
||||||
%ninja_test -C %{_vpath_builddir}
|
%ninja_test -C %{_vpath_builddir}
|
||||||
|
%endif
|
||||||
|
|
||||||
#############################################################################################
|
#############################################################################################
|
||||||
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
|
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
|
||||||
@ -1853,6 +1861,9 @@ fi
|
|||||||
%{_libdir}/security/pam_systemd.so
|
%{_libdir}/security/pam_systemd.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Nov 15 2022 huajingyun<huajingyun@loongson.cn> - 249-41
|
||||||
|
- Add loongarch64 architecture
|
||||||
|
|
||||||
* Mon Nov 7 2022 yangmingtai <yangmingtai@huawei.com> -249-40
|
* Mon Nov 7 2022 yangmingtai <yangmingtai@huawei.com> -249-40
|
||||||
- fix CVE-2022-3821
|
- fix CVE-2022-3821
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user