Projects
Mega:23.09
libseccomp
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 3
View file
_service:tar_scm:libseccomp.spec
Changed
@@ -1,12 +1,14 @@ Name: libseccomp Version: 2.5.4 -Release: 1 +Release: 2 Summary: Interface to the syscall filtering mechanism License: LGPLv2 URL: https://github.com/seccomp/libseccomp Source0: https://github.com/seccomp/libseccomp/releases/download/v%{version}/%{name}-%{version}.tar.gz Patch2: backport-arch-disambiguate-in-arch-syscall-validate.patch +Patch3: Add-64-bit-LoongArch-support.patch +Patch4: fix-build-error-for-libseccomp.patch BuildRequires: gcc gperf autoconf automake @@ -31,6 +33,10 @@ %prep %autosetup -n %{name}-%{version} -p1 +%ifnarch loongarch64 +%patch4 -R -p1 +%patch3 -R -p1 +%endif %build autoreconf @@ -42,7 +48,10 @@ %delete_la %check +#Temporarily disable check on loongarch64 +%ifnarch loongarch64 make check +%endif %pre @@ -70,6 +79,9 @@ %{_mandir}/man*/* %changelog +* Mon Jul 31 2023 Jingyun Hua<huajingyun@loongson.cn> - 2.5.4-2 +- add loongarch64 support for libseccomp + * Sat Jan 28 2023 shixuantong <shixuantong1@huawei.com> - 2.5.4-1 - upgrade version to 2.5.4
View file
_service:tar_scm:Add-64-bit-LoongArch-support.patch
Added
@@ -0,0 +1,1979 @@ +From 36807928b00bfa81ca01535413984a176b95e414 Mon Sep 17 00:00:00 2001 +From: Jingyun Hua <huajingyun@loongson.cn> +Date: Mon, 31 Jul 2023 03:05:02 +0000 +Subject: PATCH Add 64-bit LoongArch support + +Url:https://github.com/seccomp/libseccomp +From: Xiaotian Wu <wuxiaotian@loongson.cn> + +Signed-off-by: Jingyun Hua <huajingyun@loongson.cn> +--- + README.md | 1 + + doc/man/man1/scmp_sys_resolver.1 | 2 +- + include/seccomp.h.in | 12 + + src/Makefile.am | 1 + + src/arch-loongarch64.c | 41 ++ + src/arch-loongarch64.h | 28 + + src/arch-syscall-dump.c | 4 + + src/arch-syscall-validate | 55 ++ + src/arch.c | 7 + + src/gen_pfc.c | 2 + + src/python/libseccomp.pxd | 1 + + src/python/seccomp.pyx | 4 + + src/syscalls.csv | 962 ++++++++++++++--------------- + src/syscalls.h | 2 + + src/system.c | 1 + + tests/15-basic-resolver.c | 1 + + tests/16-sim-arch_basic.c | 6 + + tests/16-sim-arch_basic.py | 1 + + tests/23-sim-arch_all_le_basic.c | 3 + + tests/23-sim-arch_all_le_basic.py | 1 + + tests/36-sim-ipc_syscalls.c | 3 + + tests/38-basic-pfc_coverage.c | 3 + + tests/38-basic-pfc_coverage.pfc | 97 +++ + tests/53-sim-binary_tree.c | 3 + + tests/53-sim-binary_tree.py | 1 + + tests/53-sim-binary_tree.tests | 80 +-- + tests/55-basic-pfc_binary_tree.c | 3 + + tests/55-basic-pfc_binary_tree.pfc | 87 +++ + tests/56-basic-iterate_syscalls.c | 1 + + tests/56-basic-iterate_syscalls.py | 1 + + tests/regression | 4 +- + tools/scmp_arch_detect.c | 3 + + tools/scmp_bpf_disasm.c | 2 + + tools/scmp_bpf_sim.c | 2 + + tools/util.c | 2 + + tools/util.h | 11 + + 36 files changed, 914 insertions(+), 524 deletions(-) + create mode 100644 src/arch-loongarch64.c + create mode 100644 src/arch-loongarch64.h + +diff --git a/README.md b/README.md +index e306512..7032802 100644 +--- a/README.md ++++ b/README.md +@@ -33,6 +33,7 @@ The libseccomp library currently supports the architectures listed below: + * 64-bit x86 x32 ABI (x32) + * 32-bit ARM EABI (arm) + * 64-bit ARM (aarch64) ++* 64-bit LoongArch (loongarch64) + * 32-bit MIPS (mips) + * 32-bit MIPS little endian (mipsel) + * 64-bit MIPS (mips64) +diff --git a/doc/man/man1/scmp_sys_resolver.1 b/doc/man/man1/scmp_sys_resolver.1 +index a223607..24518d0 100644 +--- a/doc/man/man1/scmp_sys_resolver.1 ++++ b/doc/man/man1/scmp_sys_resolver.1 +@@ -34,7 +34,7 @@ special manner by libseccomp depending on the operation. + .B \-a \fIARCH + The architecture to use for resolving the system call. Valid + .I ARCH +-values are "x86", "x86_64", "x32", "arm", "aarch64", "mips", "mipsel", "mips64", ++values are "x86", "x86_64", "x32", "arm", "aarch64", "loongarch64", "mips", "mipsel", "mips64", + "mipsel64", "mips64n32", "mipsel64n32", "parisc", "parisc64", "ppc", "ppc64", + "ppc64le", "s390" and "s390x". + .TP +diff --git a/include/seccomp.h.in b/include/seccomp.h.in +index ef4c6e4..1fa7bdc 100644 +--- a/include/seccomp.h.in ++++ b/include/seccomp.h.in +@@ -150,6 +150,18 @@ struct scmp_arg_cmp { + #endif /* AUDIT_ARCH_AARCH64 */ + #define SCMP_ARCH_AARCH64 AUDIT_ARCH_AARCH64 + ++/** ++ * The LoongArch architecture tokens ++ */ ++/* 64-bit LoongArch audit support is not upstream yet */ ++#ifndef AUDIT_ARCH_LOONGARCH64 ++#ifndef EM_LOONGARCH ++#define EM_LOONGARCH 258 ++#endif /* EM_LOONGARCH */ ++#define AUDIT_ARCH_LOONGARCH64 (EM_LOONGARCH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) ++#endif /* AUDIT_ARCH_LOONGARCH64 */ ++#define SCMP_ARCH_LOONGARCH64 AUDIT_ARCH_LOONGARCH64 ++ + /** + * The MIPS architecture tokens + */ +diff --git a/src/Makefile.am b/src/Makefile.am +index 1e5c092..7d4c354 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -32,6 +32,7 @@ SOURCES_ALL = \ + arch-x32.h arch-x32.c \ + arch-arm.h arch-arm.c \ + arch-aarch64.h arch-aarch64.c \ ++ arch-loongarch64.h arch-loongarch64.c \ + arch-mips.h arch-mips.c \ + arch-mips64.h arch-mips64.c \ + arch-mips64n32.h arch-mips64n32.c \ +diff --git a/src/arch-loongarch64.c b/src/arch-loongarch64.c +new file mode 100644 +index 0000000..8d28274 +--- /dev/null ++++ b/src/arch-loongarch64.c +@@ -0,0 +1,41 @@ ++/** ++ * Enhanced Seccomp 64-bit LoongArch Syscall Table ++ * ++ * Copyright (c) 2021 Xiaotian Wu <wuxiaotian@loongson.cn> ++ */ ++ ++/* ++ * This library is free software; you can redistribute it and/or modify it ++ * under the terms of version 2.1 of the GNU Lesser General Public License as ++ * published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library; if not, see <http://www.gnu.org/licenses>. ++ */ ++ ++#include <stdlib.h> ++#include <errno.h> ++#include <linux/audit.h> ++ ++#include "arch.h" ++#include "arch-loongarch64.h" ++#include "syscalls.h" ++ ++ARCH_DEF(loongarch64) ++ ++const struct arch_def arch_def_loongarch64 = { ++ .token = SCMP_ARCH_LOONGARCH64, ++ .token_bpf = AUDIT_ARCH_LOONGARCH64, ++ .size = ARCH_SIZE_64, ++ .endian = ARCH_ENDIAN_LITTLE, ++ .syscall_resolve_name_raw = loongarch64_syscall_resolve_name, ++ .syscall_resolve_num_raw = loongarch64_syscall_resolve_num, ++ .syscall_rewrite = NULL, ++ .rule_add = NULL, ++}; ++ +diff --git a/src/arch-loongarch64.h b/src/arch-loongarch64.h +new file mode 100644 +index 0000000..c3c06af +--- /dev/null ++++ b/src/arch-loongarch64.h +@@ -0,0 +1,28 @@ ++/** ++ * Enhanced Seccomp 64-bit LoongArch Syscall Table ++ * ++ * Copyright (c) 2021 Xiaotian Wu <wuxiaotian@loongson.cn> ++ */ ++ ++/* ++ * This library is free software; you can redistribute it and/or modify it ++ * under the terms of version 2.1 of the GNU Lesser General Public License as ++ * published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library; if not, see <http://www.gnu.org/licenses>. ++ */ ++ ++#ifndef _ARCH_LOONGARCH64_H ++#define _ARCH_LOONGARCH64_H ++ ++#include "arch.h" ++ ++ARCH_DECL(loongarch64) ++ ++#endif +diff --git a/src/arch-syscall-dump.c b/src/arch-syscall-dump.c +index 2055d34..cc76e2c 100644 +--- a/src/arch-syscall-dump.c ++++ b/src/arch-syscall-dump.c +@@ -34,6 +34,7 @@ + #include "arch-x86_64.h" + #include "arch-x32.h" + #include "arch-arm.h"
View file
_service:tar_scm:fix-build-error-for-libseccomp.patch
Added
@@ -0,0 +1,383 @@ +From 60f25b4dbe9b769df6a77f326e2bf811ea52d083 Mon Sep 17 00:00:00 2001 +From: rpm-build <rpm-build> +Date: Tue, 30 May 2023 09:03:05 +0000 +Subject: PATCH fix build error for libseccomp + +--- + include/seccomp-syscalls.h | 1 + + tests/06-sim-actions.tests | 1 - + tests/38-basic-pfc_coverage.c | 3 -- + tests/38-basic-pfc_coverage.pfc | 33 ---------------- + tests/53-sim-binary_tree.c | 1 - + tests/53-sim-binary_tree.py | 2 - + tests/53-sim-binary_tree.tests | 1 - + tests/55-basic-pfc_binary_tree.c | 1 - + tests/55-basic-pfc_binary_tree.pfc | 61 +++++++++++------------------- + 9 files changed, 24 insertions(+), 80 deletions(-) + +diff --git a/include/seccomp-syscalls.h b/include/seccomp-syscalls.h +index 8019d29..5468aee 100644 +--- a/include/seccomp-syscalls.h ++++ b/include/seccomp-syscalls.h +@@ -276,6 +276,7 @@ + #define __PNR_renameat -10242 + #define __PNR_riscv_flush_icache -10243 + #define __PNR_memfd_secret -10244 ++#define __PNR_fstat -10245 + + /* + * libseccomp syscall definitions +diff --git a/tests/06-sim-actions.tests b/tests/06-sim-actions.tests +index 1ef38b3..993d340 100644 +--- a/tests/06-sim-actions.tests ++++ b/tests/06-sim-actions.tests +@@ -12,7 +12,6 @@ test type: bpf-sim + 06-sim-actions all write 1 0x856B008 N N N N ERRNO(1) + 06-sim-actions all close 4 N N N N N TRAP + 06-sim-actions all openat 0 0x856B008 4 N N N TRACE(1234) +-06-sim-actions all fstat N N N N N N KILL_PROCESS + 06-sim-actions all rt_sigreturn N N N N N N LOG + 06-sim-actions x86 0-2 N N N N N N KILL + 06-sim-actions x86 7-107 N N N N N N KILL +diff --git a/tests/38-basic-pfc_coverage.c b/tests/38-basic-pfc_coverage.c +index d6ac796..b06b05a 100644 +--- a/tests/38-basic-pfc_coverage.c ++++ b/tests/38-basic-pfc_coverage.c +@@ -109,9 +109,6 @@ int main(int argc, char *argv) + if (rc < 0) + goto out; + rc = seccomp_rule_add(ctx, SCMP_ACT_TRACE(1), SCMP_SYS(exit), 0); +- if (rc < 0) +- goto out; +- rc = seccomp_rule_add(ctx, SCMP_ACT_KILL_PROCESS, SCMP_SYS(fstat), 0); + if (rc < 0) + goto out; + rc = seccomp_rule_add(ctx, SCMP_ACT_LOG, SCMP_SYS(exit_group), 0); +diff --git a/tests/38-basic-pfc_coverage.pfc b/tests/38-basic-pfc_coverage.pfc +index f287f1d..c4bec83 100644 +--- a/tests/38-basic-pfc_coverage.pfc ++++ b/tests/38-basic-pfc_coverage.pfc +@@ -9,9 +9,6 @@ if ($arch == 3221225534) + # filter for syscall "exit" (60) priority: 65535 + if ($syscall == 60) + action TRACE(1); +- # filter for syscall "fstat" (5) priority: 65535 +- if ($syscall == 5) +- action KILL_PROCESS; + # filter for syscall "close" (3) priority: 65535 + if ($syscall == 3) + action ERRNO(1); +@@ -103,9 +100,6 @@ if ($arch == 1073741827) + # filter for syscall "exit_group" (252) priority: 65535 + if ($syscall == 252) + action LOG; +- # filter for syscall "fstat" (108) priority: 65535 +- if ($syscall == 108) +- action KILL_PROCESS; + # filter for syscall "close" (6) priority: 65535 + if ($syscall == 6) + action ERRNO(1); +@@ -141,9 +135,6 @@ if ($arch == 3221225534) + # filter for syscall "exit" (1073741884) priority: 65535 + if ($syscall == 1073741884) + action TRACE(1); +- # filter for syscall "fstat" (1073741829) priority: 65535 +- if ($syscall == 1073741829) +- action KILL_PROCESS; + # filter for syscall "close" (1073741827) priority: 65535 + if ($syscall == 1073741827) + action ERRNO(1); +@@ -173,9 +164,6 @@ if ($arch == 1073741864) + # filter for syscall "exit_group" (248) priority: 65535 + if ($syscall == 248) + action LOG; +- # filter for syscall "fstat" (108) priority: 65535 +- if ($syscall == 108) +- action KILL_PROCESS; + # filter for syscall "close" (6) priority: 65535 + if ($syscall == 6) + action ERRNO(1); +@@ -214,9 +202,6 @@ if ($arch == 3221225655) + # filter for syscall "exit" (93) priority: 65535 + if ($syscall == 93) + action TRACE(1); +- # filter for syscall "fstat" (80) priority: 65535 +- if ($syscall == 80) +- action KILL_PROCESS; + # filter for syscall "close" (57) priority: 65535 + if ($syscall == 57) + action ERRNO(1); +@@ -311,9 +296,6 @@ if ($arch == 3221225730) + # filter for syscall "exit" (93) priority: 65535 + if ($syscall == 93) + action TRACE(1); +- # filter for syscall "fstat" (80) priority: 65535 +- if ($syscall == 80) +- action KILL_PROCESS; + # filter for syscall "close" (57) priority: 65535 + if ($syscall == 57) + action ERRNO(1); +@@ -402,9 +384,6 @@ if ($arch == 1073741832) + # filter for syscall "exit_group" (4246) priority: 65535 + if ($syscall == 4246) + action LOG; +- # filter for syscall "fstat" (4108) priority: 65535 +- if ($syscall == 4108) +- action KILL_PROCESS; + # filter for syscall "close" (4006) priority: 65535 + if ($syscall == 4006) + action ERRNO(1); +@@ -440,9 +419,6 @@ if ($arch == 3221225480) + # filter for syscall "exit" (5058) priority: 65535 + if ($syscall == 5058) + action TRACE(1); +- # filter for syscall "fstat" (5005) priority: 65535 +- if ($syscall == 5005) +- action KILL_PROCESS; + # filter for syscall "close" (5003) priority: 65535 + if ($syscall == 5003) + action ERRNO(1); +@@ -537,9 +513,6 @@ if ($arch == 3758096392) + # filter for syscall "exit" (6058) priority: 65535 + if ($syscall == 6058) + action TRACE(1); +- # filter for syscall "fstat" (6005) priority: 65535 +- if ($syscall == 6005) +- action KILL_PROCESS; + # filter for syscall "close" (6003) priority: 65535 + if ($syscall == 6003) + action ERRNO(1); +@@ -569,9 +542,6 @@ if ($arch == 3221225493) + # filter for syscall "exit_group" (234) priority: 65535 + if ($syscall == 234) + action LOG; +- # filter for syscall "fstat" (108) priority: 65535 +- if ($syscall == 108) +- action KILL_PROCESS; + # filter for syscall "close" (6) priority: 65535 + if ($syscall == 6) + action ERRNO(1); +@@ -672,9 +642,6 @@ if ($arch == 3221225715) + # filter for syscall "exit" (93) priority: 65535 + if ($syscall == 93) + action TRACE(1); +- # filter for syscall "fstat" (80) priority: 65535 +- if ($syscall == 80) +- action KILL_PROCESS; + # filter for syscall "close" (57) priority: 65535 + if ($syscall == 57) + action ERRNO(1); +diff --git a/tests/53-sim-binary_tree.c b/tests/53-sim-binary_tree.c +index 98b9e2c..39acbe7 100644 +--- a/tests/53-sim-binary_tree.c ++++ b/tests/53-sim-binary_tree.c +@@ -48,7 +48,6 @@ struct syscall_errno table = { + { SCMP_SYS(open), 2, 0, { 0, 0 } }, + { SCMP_SYS(close), 3, 2, { 100, 101 } }, + { SCMP_SYS(stat), 4, 0, { 0, 0 } }, +- { SCMP_SYS(fstat), 5, 0, { 0, 0 } }, + { SCMP_SYS(lstat), 6, 0, { 0, 0 } }, + { SCMP_SYS(poll), 7, 1, { 102, 0 } }, + { SCMP_SYS(lseek), 8, 2, { 103, 104 } }, +diff --git a/tests/53-sim-binary_tree.py b/tests/53-sim-binary_tree.py +index cc49890..75e7bd3 100755 +--- a/tests/53-sim-binary_tree.py ++++ b/tests/53-sim-binary_tree.py +@@ -34,7 +34,6 @@ table = + {"syscall": "open", "error": 2, "arg_cnt": 0 }, + {"syscall": "close", "error": 3, "arg_cnt": 2, "arg1": 100, "arg2": 101 }, + {"syscall": "stat", "error": 4, "arg_cnt": 0 }, +- {"syscall": "fstat", "error": 5, "arg_cnt": 0 }, + {"syscall": "lstat", "error": 6, "arg_cnt": 0 }, + {"syscall": "poll", "error": 7, "arg_cnt": 1, "arg1": 102 }, + {"syscall": "lseek", "error": 8, "arg_cnt": 2, "arg1": 103, "arg2": 104 }, +@@ -71,7 +70,6 @@ def test(args): + + f.remove_arch(Arch()) + f.add_arch(Arch("aarch64")) +- f.add_arch(Arch("loongarch64")) + f.add_arch(Arch("ppc64le"))
View file
_service
Changed
@@ -2,7 +2,7 @@ <service name="tar_scm"> <param name="url">git@gitee.com:src-openeuler/libseccomp.git</param> <param name="scm">git</param> - <param name="revision">openEuler-23.09</param> + <param name="revision">master</param> <param name="exclude">*</param> <param name="extract">*</param> </service>
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2