summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2018-08-17 12:29:03 +0200
committerDaiki Ueno <ueno@gnu.org>2018-08-17 15:53:42 +0200
commita877b0eca3d59f7f8cd126047c0e899df6018858 (patch)
tree6023fc8e032d2a472e04344040f18699e71e3ec8
parentf69746d140cec20516c223825523fb0ade53384a (diff)
Revert "build: Link to libpthread, if pthread_atfork() needs to be used"
This reverts commit 541d79cb651cfd3238b9aa41fce70208df8e9496.
-rw-r--r--NEWS2
-rw-r--r--common/library.c10
-rw-r--r--configure.ac7
3 files changed, 6 insertions, 13 deletions
diff --git a/NEWS b/NEWS
index 616face..ab8ff57 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,7 @@
* server: Enable socket activation through systemd [PR#173]
* rpc-server: p11_kit_remote_serve_tokens: Allow exporting all modules [PR#174]
* proxy: Fail early if there is no slot mapping [PR#175]
- * Remove hard dependency on libpthread on glibc systems [PR#177]
+ * Remove hard dependency on libpthread [PR#177]
* Build fixes [PR#170, PR#176]
0.23.12 (stable)
diff --git a/common/library.c b/common/library.c
index 73a008c..b72465b 100644
--- a/common/library.c
+++ b/common/library.c
@@ -145,14 +145,12 @@ extern int __register_atfork (void (*prepare) (void), void (*parent) (void),
#ifdef HAVE___REGISTER_ATFORK
-extern void *__dso_handle;
-
-#define p11_register_atfork(a,b,c) \
- (__register_atfork((a),(b),(c),__dso_handle))
+#define p11_register_atfork(a,b,c,d) \
+ (__register_atfork((a),(b),(c),(d)))
#else
-#define p11_register_atfork(a,b,c) \
+#define p11_register_atfork(a,b,c,d) \
(pthread_atfork((a),(b),(c)))
#endif /* HAVE___REGISTER_ATFORK */
@@ -179,7 +177,7 @@ p11_library_init_impl (void)
p11_message_locale = newlocale (LC_ALL_MASK, "POSIX", (locale_t) 0);
#endif
- p11_register_atfork (NULL, NULL, count_forks);
+ p11_register_atfork (NULL, NULL, count_forks, NULL);
}
void
diff --git a/configure.ac b/configure.ac
index dde0ea2..93a6c83 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,12 +123,7 @@ if test "$os_unix" = "yes"; then
AC_CHECK_FUNCS([setenv])
AC_CHECK_FUNCS([getpeereid])
AC_CHECK_FUNCS([getpeerucred])
- # If __register_atfork() is not available, we have to link to
- # libpthread so that the non-stub version of pthread_atfork() work
- # FIXME: replace pthread_atfork() uses with manual PID checks
- AC_CHECK_FUNCS([__register_atfork], , [
- AC_CHECK_LIB([pthread], [pthread_atfork])
- ])
+ AC_CHECK_FUNCS([__register_atfork])
AC_CHECK_DECLS([__register_atfork])
# Check if issetugid() is available and has compatible behavior with OpenBSD