| From a844abca43349739c36a4cdb7ea6f3bce560bd7f Mon Sep 17 00:00:00 2001 |
| From: Rolf Eike Beer <eb@emlix.com> |
| Date: Thu, 8 Nov 2018 08:14:46 +0100 |
| Subject: [PATCH] look for pthread_atfork() also in lib c_nonshared |
| |
| Newer versions of glibc do not have pthread_nonshared anymore, instead the |
| symbol is in c_nonshared. This fixes a crash on start on those platforms |
| (namely with syslog-ng). |
| |
| Signed-off-by: Rolf Eike Beer <eb@emlix.com> |
| [ThomasDS: backport from https://github.com/buytenh/ivykis/pull/16, at this |
| moment not yet merged upstream. |
| See also: |
| - https://github.com/buytenh/ivykis/issues/15 |
| - https://github.com/balabit/syslog-ng/issues/2263 |
| ] |
| Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
| |
| --- |
| configure.ac | 2 ++ |
| src/pthr.h | 2 +- |
| 2 files changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/lib/ivykis/configure.ac b/lib/ivykis/configure.ac |
| index e9b10c0..56440d1 100644 |
| --- a/lib/ivykis/configure.ac |
| +++ b/lib/ivykis/configure.ac |
| @@ -88,6 +88,8 @@ esac |
| # link in libpthread_nonshared.a if it is available. |
| # |
| AC_CHECK_LIB([pthread_nonshared], [pthread_atfork]) |
| +# the lib is gone in glibc 2.28, things are now in c_nonshared |
| +AC_CHECK_LIB([c_nonshared], [pthread_atfork]) |
| |
| # Checks for header files. |
| AC_CHECK_HEADERS([process.h]) |
| diff --git a/lib/ivykis/src/pthr.h b/lib/ivykis/src/pthr.h |
| index a41eaf3..32c1af2 100644 |
| --- a/lib/ivykis/src/pthr.h |
| +++ b/lib/ivykis/src/pthr.h |
| @@ -42,7 +42,7 @@ static inline int pthreads_available(void) |
| * symbol because that causes it to be undefined even if you link |
| * libpthread_nonshared.a in explicitly. |
| */ |
| -#ifndef HAVE_LIBPTHREAD_NONSHARED |
| +#if !defined(HAVE_LIBPTHREAD_NONSHARED) && !defined(HAVE_LIBC_NONSHARED) |
| #pragma weak pthread_atfork |
| #endif |
| |