1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-05 02:20:12 +00:00

libcap-ng: add pthread library if header is found

If the pthread.h header is found, make sure library containing
"pthread_atfork" is added to the list of libraries against which to
link. On some hosts (e.g. openSUSE 15.1) "-lpthread" needs to be
explicitly added in order for the code to compile correctly.

We already had a workaround for this for native builds, but using some
external toolchains, we can be bit by this for the target recipe as
well.

Most of this is courtesy Trevor Woerner <twoerner@gmail.com>, via his
patch at stevegrubb/libcap-ng#10, the last thanks to Khem Raj.

(From OE-Core rev: 8d84fdea1c26ed5f8f8261c89070df44da3f1855)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christopher Larson
2019-11-26 23:08:29 +05:00
committed by Richard Purdie
parent 1fb4aa42f9
commit 8f21b6d0d5
4 changed files with 56 additions and 1 deletions
@@ -9,6 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
file://python.patch \
file://0001-configure.ac-add-library-if-header-found.patch \
file://0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch \
"
SRC_URI[md5sum] = "57dc267e2949cdecb651a929f9206572"
@@ -0,0 +1,30 @@
From 0230e2e374bb71aed0181ccd9ebd13c0c5125a5d Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Fri, 25 Oct 2019 17:01:20 -0400
Subject: [PATCH] configure.ac: add library if header found
If the pthread.h header is found, make sure library containing
"pthread_atfork" is added to the list of libraries against which to link.
On some hosts (e.g. openSUSE 15.1) "-lpthread" needs to be explicitly added
in order for the code to compile correctly.
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
configure.ac | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 63088f4..639b464 100644
--- a/configure.ac
+++ b/configure.ac
@@ -56,7 +56,9 @@ AC_CHECK_HEADERS(sys/xattr.h, [], [
AC_CHECK_HEADERS(attr/xattr.h, [], [AC_MSG_WARN(attr/xattr.h not found, disabling file system capabilities.)])
])
AC_CHECK_HEADERS(linux/securebits.h, [], [])
-AC_CHECK_HEADERS(pthread.h, [], [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)])
+AC_CHECK_HEADERS(pthread.h,
+ [AC_SEARCH_LIBS(pthread_atfork, pthread)],
+ [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)])
AC_C_CONST
AC_C_INLINE
@@ -0,0 +1,24 @@
From d95c4018ad57c37f6272dbedfa5217776567c329 Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Tue, 26 Nov 2019 22:34:34 +0500
Subject: [PATCH] Wrap pthread_atfork usage in HAVE_PTHREAD_H
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
src/cap-ng.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/cap-ng.c b/src/cap-ng.c
index 35fcd7a..97a3dbd 100644
--- a/src/cap-ng.c
+++ b/src/cap-ng.c
@@ -166,7 +166,9 @@ static void deinit(void)
static void init_lib(void) __attribute__ ((constructor));
static void init_lib(void)
{
+#ifdef HAVE_PTHREAD_H
pthread_atfork(NULL, NULL, deinit);
+#endif
}
static void init(void)
@@ -3,7 +3,6 @@ require libcap-ng.inc
inherit lib_package autotools
EXTRA_OECONF += "--without-python --without-python3"
LDFLAGS_append_class-native = " -pthread"
BBCLASSEXTEND = "native nativesdk"