diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2020-03-25 15:09:40 +0100 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2020-03-25 15:10:40 +0100 |
commit | 935c99eeed01166ca391aed5711ad63b566661e5 (patch) | |
tree | 0802e1eca972b154e6a851b240735b7d034cd899 /sys-apps | |
parent | sys-kernel/genkernel: bump to v4.0.5 (diff) | |
download | gentoo-935c99eeed01166ca391aed5711ad63b566661e5.tar.gz gentoo-935c99eeed01166ca391aed5711ad63b566661e5.tar.bz2 gentoo-935c99eeed01166ca391aed5711ad63b566661e5.zip |
sys-apps/util-linux: fix compile error caused by undefined SYS_pidfd_send_signal
Closes: https://bugs.gentoo.org/714100
Package-Manager: Portage-2.3.94, Repoman-2.3.21
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
Diffstat (limited to 'sys-apps')
3 files changed, 99 insertions, 0 deletions
diff --git a/sys-apps/util-linux/files/util-linux-2.35.1-cleanup-pidfd-include.patch b/sys-apps/util-linux/files/util-linux-2.35.1-cleanup-pidfd-include.patch new file mode 100644 index 000000000000..85e4d705735c --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.35.1-cleanup-pidfd-include.patch @@ -0,0 +1,36 @@ +From 0a4035ff2e4fd5b5ae0cf8f8665696c2aff53b75 Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Tue, 10 Mar 2020 11:43:16 +0100 +Subject: [PATCH] include: cleanup pidfd inckudes + +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + include/pidfd-utils.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/include/pidfd-utils.h b/include/pidfd-utils.h +index 0baedd2c9..4a6c3a604 100644 +--- a/include/pidfd-utils.h ++++ b/include/pidfd-utils.h +@@ -3,10 +3,10 @@ + + #if defined(__linux__) + # include <sys/syscall.h> +-# if defined(SYS_pidfd_send_signal) ++# if defined(SYS_pidfd_send_signal) && defined(SYS_pidfd_open) + # include <sys/types.h> + +-# ifndef HAVE_PIDFD_OPEN ++# ifndef HAVE_PIDFD_SEND_SIGNAL + static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, + unsigned int flags) + { +@@ -14,7 +14,7 @@ static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, + } + # endif + +-# ifndef HAVE_PIDFD_SEND_SIGNAL ++# ifndef HAVE_PIDFD_OPEN + static inline int pidfd_open(pid_t pid, unsigned int flags) + { + return syscall(SYS_pidfd_open, pid, flags); diff --git a/sys-apps/util-linux/files/util-linux-2.35.1-include_sys_types-header.patch b/sys-apps/util-linux/files/util-linux-2.35.1-include_sys_types-header.patch new file mode 100644 index 000000000000..8c646ee73a9d --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.35.1-include_sys_types-header.patch @@ -0,0 +1,58 @@ +From 3cfde0370d3a8949df0c5bcf447cec6692910ed2 Mon Sep 17 00:00:00 2001 +From: Sami Kerola <kerolasa@iki.fi> +Date: Sat, 15 Feb 2020 21:12:50 +0000 +Subject: [PATCH] kill: include sys/types.h before checking + SYS_pidfd_send_signal + +Including sys/types.h must happen before SYS_pidfd_send_signal is checked, +because that header defines variable in normal conditions. When sys/types.h +does not have SYS_pidfd_send_signal then fallback is defined in config.h +that is included by default, and has therefore worked fine before and after +this change. + +Signed-off-by: Sami Kerola <kerolasa@iki.fi> +--- + include/pidfd-utils.h | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/include/pidfd-utils.h b/include/pidfd-utils.h +index 593346576..0baedd2c9 100644 +--- a/include/pidfd-utils.h ++++ b/include/pidfd-utils.h +@@ -1,26 +1,28 @@ + #ifndef UTIL_LINUX_PIDFD_UTILS + #define UTIL_LINUX_PIDFD_UTILS + +-#if defined(__linux__) && defined(SYS_pidfd_send_signal) +-# include <sys/types.h> ++#if defined(__linux__) + # include <sys/syscall.h> ++# if defined(SYS_pidfd_send_signal) ++# include <sys/types.h> + +-# ifndef HAVE_PIDFD_OPEN ++# ifndef HAVE_PIDFD_OPEN + static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, + unsigned int flags) + { + return syscall(SYS_pidfd_send_signal, pidfd, sig, info, flags); + } +-# endif ++# endif + +-# ifndef HAVE_PIDFD_SEND_SIGNAL ++# ifndef HAVE_PIDFD_SEND_SIGNAL + static inline int pidfd_open(pid_t pid, unsigned int flags) + { + return syscall(SYS_pidfd_open, pid, flags); + } +-# endif ++# endif + +-# define UL_HAVE_PIDFD 1 ++# define UL_HAVE_PIDFD 1 + +-#endif /* __linux__ && SYS_pidfd_send_signal */ ++# endif /* SYS_pidfd_send_signal */ ++#endif /* __linux__ */ + #endif /* UTIL_LINUX_PIDFD_UTILS */ diff --git a/sys-apps/util-linux/util-linux-2.35.1.ebuild b/sys-apps/util-linux/util-linux-2.35.1.ebuild index c3759ac85c74..6c0d78321cc9 100644 --- a/sys-apps/util-linux/util-linux-2.35.1.ebuild +++ b/sys-apps/util-linux/util-linux-2.35.1.ebuild @@ -76,6 +76,11 @@ RESTRICT="!test? ( test )" S="${WORKDIR}/${MY_P}" +PATCHES=( + "${FILESDIR}"/util-linux-2.35.1-include_sys_types-header.patch + "${FILESDIR}"/util-linux-2.35.1-cleanup-pidfd-include.patch +) + src_prepare() { default |