yann@1819: From a05c4380c5aaa6e107a4c7e1e5a139ec4cc43f0c Mon Sep 17 00:00:00 2001 yann@1819: From: Henning Heinold yann@1819: Date: Sun, 21 Feb 2010 11:55:32 +0100 yann@1819: Subject: [PATCH 14/15] LT pthread_atfork: unhide yann@1819: yann@1819: Trying to compile perl with uClibc new linuxthreads on arm. yann@1819: I run into the problem that pthread_atfork is not available. yann@1819: The problem was that it was synced with the glibc version, which has yann@1819: compat ifdefs we do not need in uClibc. The inital checked in version yann@1819: is right and works. So either revert the commit 2 years ago yann@1819: or patch it with the patch attached I made for openembedded. yann@1819: yann@1819: Signed-off-by: Henning Heinold yann@1819: Signed-off-by: Bernhard Reutner-Fischer yann@1819: --- yann@1819: libpthread/linuxthreads/Makefile.in | 2 +- yann@1819: libpthread/linuxthreads/pthread_atfork.c | 13 +++---------- yann@1819: 2 files changed, 4 insertions(+), 11 deletions(-) yann@1819: yann@1819: diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in yann@1819: index 947dea9..d53b5fa 100644 yann@1819: --- a/libpthread/linuxthreads/Makefile.in yann@1819: +++ b/libpthread/linuxthreads/Makefile.in yann@1819: @@ -45,7 +45,7 @@ pthread_sysdep_SRC := $(patsubst %,$(libpthread_DIR)/sysdeps/pthread/%.c,$(pthre yann@1819: pthread_SRC := \ yann@1819: attr barrier cancel condvar errno events join pthread \ yann@1819: lockfile manager mutex pt-machine ptcleanup \ yann@1819: - ptclock_gettime ptclock_settime ptfork pthandles \ yann@1819: + ptclock_gettime ptclock_settime ptfork pthandles pthread_atfork \ yann@1819: pthread_setegid pthread_seteuid pthread_setgid pthread_setregid \ yann@1819: pthread_setresgid pthread_setresuid pthread_setreuid pthread_setuid \ yann@1819: rwlock semaphore sighandler signals specific spinlock yann@1819: diff --git a/libpthread/linuxthreads/pthread_atfork.c b/libpthread/linuxthreads/pthread_atfork.c yann@1819: index 2464acb..4c83dd0 100644 yann@1819: --- a/libpthread/linuxthreads/pthread_atfork.c yann@1819: +++ b/libpthread/linuxthreads/pthread_atfork.c yann@1819: @@ -43,12 +43,8 @@ extern void *__dso_handle __attribute__ ((__weak__)); yann@1819: yann@1819: /* Hide the symbol so that no definition but the one locally in the yann@1819: executable or DSO is used. */ yann@1819: -int yann@1819: -#ifndef __pthread_atfork yann@1819: -/* Don't mark the compatibility function as hidden. */ yann@1819: -attribute_hidden yann@1819: -#endif yann@1819: -__pthread_atfork (prepare, parent, child) yann@1819: + yann@1819: +int attribute_hidden __pthread_atfork (prepare, parent, child) yann@1819: void (*prepare) (void); yann@1819: void (*parent) (void); yann@1819: void (*child) (void); yann@1819: @@ -56,8 +52,5 @@ __pthread_atfork (prepare, parent, child) yann@1819: return __register_atfork (prepare, parent, child, yann@1819: &__dso_handle == NULL ? NULL : __dso_handle); yann@1819: } yann@1819: -#ifndef __pthread_atfork yann@1819: -extern int pthread_atfork (void (*prepare) (void), void (*parent) (void), yann@1819: - void (*child) (void)) attribute_hidden; yann@1819: + yann@1819: strong_alias (__pthread_atfork, pthread_atfork) yann@1819: -#endif yann@1819: -- yann@1819: 1.6.6.1 yann@1819: