mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 14:01:57 -09:00
package/procps-ng: fix build with missing pidfd_open
port back patch introduced shortly after the 4.0.5 release. Fixes: checking for __NR_pidfd_open... no configure: error: Neither pidfd_open or __NR_pidfd_open found. Disable pidwait with configure option --disable-pidwait happening with this defconfig: BR2_arm=y BR2_cortex_a15_a7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_INIT_SYSTEMD=y BR2_PACKAGE_PROCPS_NG=y Signed-off-by: Michael Nosthoff <buildroot@heine.tech> Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
c73fb46fea
commit
0aa1b043df
@@ -0,0 +1,57 @@
|
|||||||
|
From 90a0ddcd64c2d43dc2c2c856b1b42b5cae6b8a44 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Markus Mayer <mmayer@broadcom.com>
|
||||||
|
Date: Wed, 11 Dec 2024 14:53:33 -0800
|
||||||
|
Subject: [PATCH] pgrep: provide definition for __NR_pidfd_open if needed
|
||||||
|
|
||||||
|
We already implement pidfd_open() ourselves if libc doesn't provide it.
|
||||||
|
Let's also provide our own definition of __NR_pidfd_open in case the
|
||||||
|
kernel headers don't contain it.
|
||||||
|
|
||||||
|
This way, pgrep can provide its full capabilities after being built
|
||||||
|
against older kernel headers (for increased compatibility) but being run
|
||||||
|
on systems with newer kernels.
|
||||||
|
|
||||||
|
Signed-off-by: Markus Mayer <mmayer@broadcom.com>
|
||||||
|
Upstream: https://gitlab.com/procps-ng/procps/-/commit/90a0ddcd64c2d43dc2c2c856b1b42b5cae6b8a44
|
||||||
|
Signed-off: Michael Nosthoff <buildroot@heine.tech>
|
||||||
|
---
|
||||||
|
configure.ac | 2 +-
|
||||||
|
src/pgrep.c | 9 +++++++++
|
||||||
|
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 1e984b12..14ba3ad7 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -325,7 +325,7 @@ AS_IF([[test "x$enable_pidwait" = xyes -a "x$have_pidfd_open" = xno]],
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
#ifndef __NR_pidfd_open
|
||||||
|
-#error __NR_pidfd_open not defined
|
||||||
|
+#warning __NR_pidfd_open not defined; using our definition
|
||||||
|
#endif
|
||||||
|
])],
|
||||||
|
AC_MSG_RESULT([yes]),
|
||||||
|
diff --git a/src/pgrep.c b/src/pgrep.c
|
||||||
|
index 2c6b06b8..6fc25dd4 100644
|
||||||
|
--- a/src/pgrep.c
|
||||||
|
+++ b/src/pgrep.c
|
||||||
|
@@ -874,6 +874,15 @@ static int signal_option(int *argc, char **argv)
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(ENABLE_PIDWAIT) && !defined(HAVE_PIDFD_OPEN)
|
||||||
|
+
|
||||||
|
+#ifndef __NR_pidfd_open
|
||||||
|
+#ifdef __alpha__
|
||||||
|
+#define __NR_pidfd_open 544
|
||||||
|
+#else
|
||||||
|
+#define __NR_pidfd_open 434
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static int pidfd_open (pid_t pid, unsigned int flags)
|
||||||
|
{
|
||||||
|
return syscall(__NR_pidfd_open, pid, flags);
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
||||||
@@ -14,6 +14,9 @@ PROCPS_NG_INSTALL_STAGING = YES
|
|||||||
PROCPS_NG_DEPENDENCIES = ncurses host-pkgconf $(TARGET_NLS_DEPENDENCIES)
|
PROCPS_NG_DEPENDENCIES = ncurses host-pkgconf $(TARGET_NLS_DEPENDENCIES)
|
||||||
PROCPS_NG_CONF_OPTS = LIBS=$(TARGET_NLS_LIBS)
|
PROCPS_NG_CONF_OPTS = LIBS=$(TARGET_NLS_LIBS)
|
||||||
|
|
||||||
|
# Applying 0001-pgrep-provide-definition-for-nr-pidfd_open.patch touches configure.ac
|
||||||
|
PROCPS_NG_AUTORECONF = YES
|
||||||
|
|
||||||
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
||||||
PROCPS_NG_DEPENDENCIES += systemd
|
PROCPS_NG_DEPENDENCIES += systemd
|
||||||
PROCPS_NG_CONF_OPTS += --with-systemd
|
PROCPS_NG_CONF_OPTS += --with-systemd
|
||||||
|
|||||||
Reference in New Issue
Block a user