summaryrefslogtreecommitdiff
path: root/main/lxc/Add-loongarch64-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/lxc/Add-loongarch64-support.patch')
-rw-r--r--main/lxc/Add-loongarch64-support.patch303
1 files changed, 0 insertions, 303 deletions
diff --git a/main/lxc/Add-loongarch64-support.patch b/main/lxc/Add-loongarch64-support.patch
deleted file mode 100644
index fb7fe891b80..00000000000
--- a/main/lxc/Add-loongarch64-support.patch
+++ /dev/null
@@ -1,303 +0,0 @@
-From df17ac417e7baa686e54e391ed4ef049cd7fb63c Mon Sep 17 00:00:00 2001
-From: zhaixiaojuan <zhaixiaojuan@loongson.cn>
-Date: Thu, 2 Nov 2023 16:14:45 +0800
-Subject: [PATCH] Add loongarch64 support
-
-Signed-off-by: zhaixiaojuan <zhaixiaojuan@loongson.cn>
----
- README.md | 1 +
- config/bash/_lxc.in | 2 +-
- src/lxc/confile.c | 57 ++++++++++++++++++++-------------------
- src/lxc/seccomp.c | 19 +++++++++++++
- src/lxc/syscall_numbers.h | 26 ++++++++++++++++++
- src/tests/arch_parse.c | 9 ++++---
- 6 files changed, 81 insertions(+), 33 deletions(-)
-
-diff --git a/README.md b/README.md
-index 4ddb1c5cd..dd02b3eae 100644
---- a/README.md
-+++ b/README.md
-@@ -110,6 +110,7 @@ features. This includes (but isn't limited to):
- - riscv64
- - s390x
- - armvl7, arm64
-+- loongarch64
-
- LXC also supports at least the following C standard libraries:
-
-diff --git a/config/bash/_lxc.in b/config/bash/_lxc.in
-index 6672bf02d..8a7ce16af 100644
---- a/config/bash/_lxc.in
-+++ b/config/bash/_lxc.in
-@@ -285,7 +285,7 @@ _lxc_attach() {
- ;;
- --arch | -a )
- # https://github.com/lxc/lxc/blob/stable-4.0/src/tests/arch_parse.c#L37
-- COMPREPLY=( $( compgen -W 'arm armel armhf armv7l athlon i386 i486 i586 i686 linux32 mips mipsel ppc powerpc x86 aarch64 amd64 arm64 linux64 mips64 mips64el ppc64 ppc64el ppc64le powerpc64 riscv64 s390x x86_64' -- "${cur}" ) )
-+ COMPREPLY=( $( compgen -W 'arm armel armhf armv7l athlon i386 i486 i586 i686 linux32 mips mipsel ppc powerpc x86 aarch64 amd64 arm64 linux64 loongarch64 mips64 mips64el ppc64 ppc64el ppc64le powerpc64 riscv64 s390x x86_64' -- "${cur}" ) )
- return
- ;;
- --elevated-privileges | -e )
-diff --git a/src/lxc/confile.c b/src/lxc/confile.c
-index 7a8a53418..bccc54f1a 100644
---- a/src/lxc/confile.c
-+++ b/src/lxc/confile.c
-@@ -3254,34 +3254,35 @@ int lxc_config_parse_arch(const char *arch, signed long *persona)
- char *name;
- unsigned long per;
- } pername[] = {
-- { "arm", PER_LINUX32 },
-- { "armel", PER_LINUX32 },
-- { "armhf", PER_LINUX32 },
-- { "armv7l", PER_LINUX32 },
-- { "athlon", PER_LINUX32 },
-- { "i386", PER_LINUX32 },
-- { "i486", PER_LINUX32 },
-- { "i586", PER_LINUX32 },
-- { "i686", PER_LINUX32 },
-- { "linux32", PER_LINUX32 },
-- { "mips", PER_LINUX32 },
-- { "mipsel", PER_LINUX32 },
-- { "ppc", PER_LINUX32 },
-- { "powerpc", PER_LINUX32 },
-- { "x86", PER_LINUX32 },
-- { "aarch64", PER_LINUX },
-- { "amd64", PER_LINUX },
-- { "arm64", PER_LINUX },
-- { "linux64", PER_LINUX },
-- { "mips64", PER_LINUX },
-- { "mips64el", PER_LINUX },
-- { "ppc64", PER_LINUX },
-- { "ppc64el", PER_LINUX },
-- { "ppc64le", PER_LINUX },
-- { "powerpc64", PER_LINUX },
-- { "riscv64", PER_LINUX },
-- { "s390x", PER_LINUX },
-- { "x86_64", PER_LINUX },
-+ { "arm", PER_LINUX32 },
-+ { "armel", PER_LINUX32 },
-+ { "armhf", PER_LINUX32 },
-+ { "armv7l", PER_LINUX32 },
-+ { "athlon", PER_LINUX32 },
-+ { "i386", PER_LINUX32 },
-+ { "i486", PER_LINUX32 },
-+ { "i586", PER_LINUX32 },
-+ { "i686", PER_LINUX32 },
-+ { "linux32", PER_LINUX32 },
-+ { "mips", PER_LINUX32 },
-+ { "mipsel", PER_LINUX32 },
-+ { "ppc", PER_LINUX32 },
-+ { "powerpc", PER_LINUX32 },
-+ { "x86", PER_LINUX32 },
-+ { "aarch64", PER_LINUX },
-+ { "amd64", PER_LINUX },
-+ { "arm64", PER_LINUX },
-+ { "linux64", PER_LINUX },
-+ { "loongarch64", PER_LINUX },
-+ { "mips64", PER_LINUX },
-+ { "mips64el", PER_LINUX },
-+ { "ppc64", PER_LINUX },
-+ { "ppc64el", PER_LINUX },
-+ { "ppc64le", PER_LINUX },
-+ { "powerpc64", PER_LINUX },
-+ { "riscv64", PER_LINUX },
-+ { "s390x", PER_LINUX },
-+ { "x86_64", PER_LINUX },
- };
-
- for (size_t i = 0; i < ARRAY_SIZE(pername); i++) {
-diff --git a/src/lxc/seccomp.c b/src/lxc/seccomp.c
-index cefa18d0a..3ba54331d 100644
---- a/src/lxc/seccomp.c
-+++ b/src/lxc/seccomp.c
-@@ -315,6 +315,7 @@ enum lxc_hostarch_t {
- lxc_seccomp_arch_mipsel64n32,
- lxc_seccomp_arch_s390x,
- lxc_seccomp_arch_s390,
-+ lxc_seccomp_arch_loongarch64,
- lxc_seccomp_arch_unknown = 999,
- };
-
-@@ -349,6 +350,8 @@ static int get_hostarch(void)
- return lxc_seccomp_arch_s390x;
- else if (strnequal(uts.machine, "s390", 4))
- return lxc_seccomp_arch_s390;
-+ else if (strnequal(uts.machine, "loongarch64", 11))
-+ return lxc_seccomp_arch_loongarch64;
- return lxc_seccomp_arch_unknown;
- }
-
-@@ -421,6 +424,11 @@ static scmp_filter_ctx get_new_ctx(enum lxc_hostarch_t n_arch, uint32_t default_
- case lxc_seccomp_arch_s390:
- arch = SCMP_ARCH_S390;
- break;
-+#endif
-+#ifdef SCMP_ARCH_LOONGARCH64
-+ case lxc_seccomp_arch_loongarch64:
-+ arch = SCMP_ARCH_LOONGARCH64;
-+ break;
- #endif
- default:
- return NULL;
-@@ -967,6 +975,17 @@ static int parse_config_v2(FILE *f, char *line, size_t *line_bufsz, struct lxc_c
-
- cur_rule_arch = lxc_seccomp_arch_s390;
- }
-+#endif
-+#ifdef SCMP_ARCH_LOONGARCH64
-+ else if (strequal(line, "[loongarch64]") ||
-+ strequal(line, "[LOONGARCH64]")) {
-+ if (native_arch != lxc_seccomp_arch_loongarch64) {
-+ cur_rule_arch = lxc_seccomp_arch_unknown;
-+ continue;
-+ }
-+
-+ cur_rule_arch = lxc_seccomp_arch_loongarch64;
-+ }
- #endif
- else {
- goto bad_arch;
-diff --git a/src/lxc/syscall_numbers.h b/src/lxc/syscall_numbers.h
-index ae5fdd064..58840a598 100644
---- a/src/lxc/syscall_numbers.h
-+++ b/src/lxc/syscall_numbers.h
-@@ -50,6 +50,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_keyctl 5241
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_keyctl 219
- #else
- #define -1
- #warning "__NR_keyctl not defined for your architecture"
-@@ -87,6 +89,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64
- #define __NR_memfd_create 5314
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_memfd_create 279
- #else
- #define -1
- #warning "__NR_memfd_create not defined for your architecture"
-@@ -122,6 +126,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_pivot_root 5151
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_pivot_root 41
- #else
- #define -1
- #warning "__NR_pivot_root not defined for your architecture"
-@@ -157,6 +163,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_setns 5303
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_setns 268
- #else
- #define -1
- #warning "__NR_setns not defined for your architecture"
-@@ -192,6 +200,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_sethostname 5165
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_sethostname 161
- #else
- #define -1
- #warning "__NR_sethostname not defined for your architecture"
-@@ -259,6 +269,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_signalfd4 5283
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_signalfd4 74
- #else
- #define -1
- #warning "__NR_signalfd4 not defined for your architecture"
-@@ -294,6 +306,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_unshare 5262
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_unshare 97
- #else
- #define -1
- #warning "__NR_unshare not defined for your architecture"
-@@ -329,6 +343,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_bpf 5315
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_bpf 280
- #else
- #define -1
- #warning "__NR_bpf not defined for your architecture"
-@@ -364,6 +380,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_faccessat 5259
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_faccessat 48
- #else
- #define -1
- #warning "__NR_faccessat not defined for your architecture"
-@@ -419,6 +437,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_seccomp 5312
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_seccomp 277
- #else
- #define -1
- #warning "__NR_seccomp not defined for your architecture"
-@@ -454,6 +474,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_gettid 5178
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_gettid 178
- #else
- #define -1
- #warning "__NR_gettid not defined for your architecture"
-@@ -493,6 +515,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_execveat 5316
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_execveat 281
- #else
- #define -1
- #warning "__NR_execveat not defined for your architecture"
-@@ -732,6 +756,8 @@
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_personality (132 + 5000)
- #endif
-+ #elif defined __loongarch64
-+ #define __NR_personality 92
- #else
- #define -1
- #warning "__NR_personality not defined for your architecture"
-diff --git a/src/tests/arch_parse.c b/src/tests/arch_parse.c
-index 6d72d664d..f8b4d8a0a 100644
---- a/src/tests/arch_parse.c
-+++ b/src/tests/arch_parse.c
-@@ -37,10 +37,11 @@
- #endif
-
- static const char *const arches[] = {
-- "arm", "armel", "armhf", "armv7l", "athlon", "i386", "i486",
-- "i586", "i686", "linux32", "mips", "mipsel", "ppc", "powerpc",
-- "x86", "aarch64", "amd64", "arm64", "linux64", "mips64", "mips64el",
-- "ppc64", "ppc64el", "ppc64le", "powerpc64", "riscv64", "s390x", "x86_64",
-+ "arm", "armel", "armhf", "armv7l", "athlon", "i386", "i486",
-+ "i586", "i686", "linux32", "mips", "mipsel", "ppc", "powerpc",
-+ "x86", "aarch64", "amd64", "arm64", "linux64", "loongarch64", "mips64",
-+ "mips64el", "ppc64", "ppc64el", "ppc64le", "powerpc64", "riscv64", "s390x",
-+ "x86_64",
- };
-
- static bool parse_valid_architectures(void)
---
-2.27.0
-