From 65f350a6e7d6fa64d174db5c01a5b993892971e6 Mon Sep 17 00:00:00 2001 From: openeuler-ci-bot <80474298@qq.com> Date: Sun, 20 Feb 2022 08:28:01 +0000 Subject: [PATCH] !1 Fix package lxc on RISC-V From: @YukariChiba Reviewed-by: @whoisxxx, @wuwei_plct Signed-off-by: @wuwei_plct --- 0046-signalfd-not-defined.patch | 54 +++++++++++++++++++++++++++++++++ lxc.spec | 14 ++++++++- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 0046-signalfd-not-defined.patch diff --git a/0046-signalfd-not-defined.patch b/0046-signalfd-not-defined.patch new file mode 100644 index 0000000..4ddfac8 --- /dev/null +++ b/0046-signalfd-not-defined.patch @@ -0,0 +1,54 @@ +From 3341e204dc1e1da6ecbc1ffbe59fca33f23ca557 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Tue, 28 Jul 2020 12:31:31 +0200 +Subject: [PATCH] syscall: don't fail if __NR_signalfd is not defined + +lxc fails to build if __NR_signalfd is not defined since version 4.0.0 +and +https://github.com/lxc/lxc/commit/bed09c9cc0bec7bbd2442fcce4a2a0f03994cb09 + +However, some architectures don't define __NR_signalfd but only +__NR_signalfd4. This is the case for example for nios2 or csky: +https://github.com/bminor/glibc/blob/f9ac84f92f151e07586c55e14ed628d493a5929d/sysdeps/unix/sysv/linux/nios2/arch-syscall.h +https://github.com/bminor/glibc/blob/f9ac84f92f151e07586c55e14ed628d493a5929d/sysdeps/unix/sysv/linux/csky/arch-syscall.h + +Fixes: + - http://autobuild.buildroot.org/results/75096a48d2dbda57459523db3ed0952e63f93535 + +Signed-off-by: Fabrice Fontaine +[Retrieved from: +https://github.com/lxc/lxc/commit/3341e204dc1e1da6ecbc1ffbe59fca33f23ca557] +--- + src/lxc/syscall_numbers.h | 3 --- + src/lxc/syscall_wrappers.h | 2 ++ + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/src/lxc/syscall_numbers.h b/src/lxc/syscall_numbers.h +index e2e7883786..72e4ffe460 100644 +--- a/src/lxc/syscall_numbers.h ++++ b/src/lxc/syscall_numbers.h +@@ -228,9 +228,6 @@ + #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */ + #define __NR_signalfd 5276 + #endif +- #else +- #define -1 +- #warning "__NR_signalfd not defined for your architecture" + #endif + #endif + +diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h +index 220ef65fde..6aaa437226 100644 +--- a/src/lxc/syscall_wrappers.h ++++ b/src/lxc/syscall_wrappers.h +@@ -112,8 +112,10 @@ static inline int signalfd(int fd, const sigset_t *mask, int flags) + int retval; + + retval = syscall(__NR_signalfd4, fd, mask, _NSIG / 8, flags); ++#ifdef __NR_signalfd + if (errno == ENOSYS && flags == 0) + retval = syscall(__NR_signalfd, fd, mask, _NSIG / 8); ++#endif + + return retval; + } diff --git a/lxc.spec b/lxc.spec index 03492b5..6ef437e 100644 --- a/lxc.spec +++ b/lxc.spec @@ -1,4 +1,4 @@ -%global _release 2022081201 +%global _release 2022082701 Name: lxc Version: 4.0.3 @@ -53,11 +53,17 @@ Patch0042: 0042-add-x-permission-when-create-directory.patch Patch0043: 0043-do-not-operate-playload-and-attach-cgroup-if-no-cont.patch Patch0044: 0044-fix-HOME-env-unset-error.patch Patch0045: 0045-only-set-user-or-image-set-non-empty-HOME.patch +%ifarch riscv64 +Patch0046: 0046-signalfd-not-defined.patch +%endif BuildRequires: systemd-units git libtool graphviz docbook2X doxygen chrpath BuildRequires: pkgconfig(libseccomp) BuildRequires: libcap libcap-devel libselinux-devel yajl yajl-devel BuildRequires: pkgconfig(bash-completion) +%ifarch riscv64 +BuildRequires: libatomic_ops +%endif Requires: lxc-libs = 4.0.3-%{release} @@ -110,6 +116,9 @@ This package contains documentation for lxc for creating containers. %autosetup -n lxc-4.0.3 -Sgit -p1 %build +%ifarch riscv64 +export LDFLAGS="-pthread" +%endif %configure --enable-doc --enable-api-docs \ --disable-silent-rules --docdir=%{_pkgdocdir} --disable-rpath \ --disable-static --disable-apparmor --enable-selinux \ @@ -224,6 +233,9 @@ make check %{_mandir}/*/man7/%{name}* %changelog +* Sat Aug 27 2022 YukariChiba - 4.0.3-2022082701 +- Fix RISC-V build errors + * Fri Aug 12 2022 haozi007 - 4.0.3-2022081201 - Type:bugfix - ID:NA -- Gitee