1 From a05c4380c5aaa6e107a4c7e1e5a139ec4cc43f0c Mon Sep 17 00:00:00 2001
2 From: Henning Heinold <heinold@inf.fu-berlin.de>
3 Date: Sun, 21 Feb 2010 11:55:32 +0100
4 Subject: [PATCH 14/15] LT pthread_atfork: unhide
6 Trying to compile perl with uClibc new linuxthreads on arm.
7 I run into the problem that pthread_atfork is not available.
8 The problem was that it was synced with the glibc version, which has
9 compat ifdefs we do not need in uClibc. The inital checked in version
10 is right and works. So either revert the commit 2 years ago
11 or patch it with the patch attached I made for openembedded.
13 Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
14 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
16 libpthread/linuxthreads/Makefile.in | 2 +-
17 libpthread/linuxthreads/pthread_atfork.c | 13 +++----------
18 2 files changed, 4 insertions(+), 11 deletions(-)
20 diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in
21 index 947dea9..d53b5fa 100644
22 --- a/libpthread/linuxthreads/Makefile.in
23 +++ b/libpthread/linuxthreads/Makefile.in
24 @@ -45,7 +45,7 @@ pthread_sysdep_SRC := $(patsubst %,$(libpthread_DIR)/sysdeps/pthread/%.c,$(pthre
26 attr barrier cancel condvar errno events join pthread \
27 lockfile manager mutex pt-machine ptcleanup \
28 - ptclock_gettime ptclock_settime ptfork pthandles \
29 + ptclock_gettime ptclock_settime ptfork pthandles pthread_atfork \
30 pthread_setegid pthread_seteuid pthread_setgid pthread_setregid \
31 pthread_setresgid pthread_setresuid pthread_setreuid pthread_setuid \
32 rwlock semaphore sighandler signals specific spinlock
33 diff --git a/libpthread/linuxthreads/pthread_atfork.c b/libpthread/linuxthreads/pthread_atfork.c
34 index 2464acb..4c83dd0 100644
35 --- a/libpthread/linuxthreads/pthread_atfork.c
36 +++ b/libpthread/linuxthreads/pthread_atfork.c
37 @@ -43,12 +43,8 @@ extern void *__dso_handle __attribute__ ((__weak__));
39 /* Hide the symbol so that no definition but the one locally in the
40 executable or DSO is used. */
42 -#ifndef __pthread_atfork
43 -/* Don't mark the compatibility function as hidden. */
46 -__pthread_atfork (prepare, parent, child)
48 +int attribute_hidden __pthread_atfork (prepare, parent, child)
49 void (*prepare) (void);
50 void (*parent) (void);
52 @@ -56,8 +52,5 @@ __pthread_atfork (prepare, parent, child)
53 return __register_atfork (prepare, parent, child,
54 &__dso_handle == NULL ? NULL : __dso_handle);
56 -#ifndef __pthread_atfork
57 -extern int pthread_atfork (void (*prepare) (void), void (*parent) (void),
58 - void (*child) (void)) attribute_hidden;
60 strong_alias (__pthread_atfork, pthread_atfork)