summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2020-03-25 15:09:40 +0100
committerThomas Deutschmann <whissi@gentoo.org>2020-03-25 15:10:40 +0100
commit935c99eeed01166ca391aed5711ad63b566661e5 (patch)
tree0802e1eca972b154e6a851b240735b7d034cd899 /sys-apps/util-linux
parentsys-kernel/genkernel: bump to v4.0.5 (diff)
downloadgentoo-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/util-linux')
-rw-r--r--sys-apps/util-linux/files/util-linux-2.35.1-cleanup-pidfd-include.patch36
-rw-r--r--sys-apps/util-linux/files/util-linux-2.35.1-include_sys_types-header.patch58
-rw-r--r--sys-apps/util-linux/util-linux-2.35.1.ebuild5
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