diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-01-28 01:10:41 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-01-28 01:10:41 +0000 |
commit | b00758f1782a7f0540a22918c26c7997f4e1a7bb (patch) | |
tree | 33e53ea992551dbd4a15dcaa71c66e710d8b5aca | |
parent | 04b20727d876d0af23aa83cd7bc2444e1c1b18d5 (diff) | |
download | upstream-b00758f1782a7f0540a22918c26c7997f4e1a7bb.tar.gz upstream-b00758f1782a7f0540a22918c26c7997f4e1a7bb.tar.bz2 upstream-b00758f1782a7f0540a22918c26c7997f4e1a7bb.zip |
uClibc 0.9.32: fix infinite recursion on application exit triggered by linking libc before libpthread
SVN-Revision: 25186
-rw-r--r-- | toolchain/uClibc/patches-0.9.32/180-pthread_cleanup_fix.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/toolchain/uClibc/patches-0.9.32/180-pthread_cleanup_fix.patch b/toolchain/uClibc/patches-0.9.32/180-pthread_cleanup_fix.patch new file mode 100644 index 0000000000..ae36018792 --- /dev/null +++ b/toolchain/uClibc/patches-0.9.32/180-pthread_cleanup_fix.patch @@ -0,0 +1,45 @@ +--- a/libpthread/nptl/cleanup_defer_compat.c ++++ b/libpthread/nptl/cleanup_defer_compat.c +@@ -22,7 +22,7 @@ + + void + attribute_protected +-_pthread_cleanup_push_defer ( ++__pthread_cleanup_push_defer ( + struct _pthread_cleanup_buffer *buffer, + void (*routine) (void *), + void *arg) +@@ -57,12 +57,12 @@ _pthread_cleanup_push_defer ( + + THREAD_SETMEM (self, cleanup, buffer); + } +-strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer) ++strong_alias (__pthread_cleanup_push_defer, _pthread_cleanup_push_defer) + + + void + attribute_protected +-_pthread_cleanup_pop_restore ( ++__pthread_cleanup_pop_restore ( + struct _pthread_cleanup_buffer *buffer, + int execute) + { +@@ -97,4 +97,4 @@ _pthread_cleanup_pop_restore ( + if (execute) + buffer->__routine (buffer->__arg); + } +-strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore) ++strong_alias (__pthread_cleanup_pop_restore, _pthread_cleanup_pop_restore) +--- a/libpthread/nptl/init.c ++++ b/libpthread/nptl/init.c +@@ -112,8 +112,8 @@ static const struct pthread_functions pt + .ptr___pthread_key_create = __pthread_key_create_internal, + .ptr___pthread_getspecific = __pthread_getspecific_internal, + .ptr___pthread_setspecific = __pthread_setspecific_internal, +- .ptr__pthread_cleanup_push_defer = _pthread_cleanup_push_defer, +- .ptr__pthread_cleanup_pop_restore = _pthread_cleanup_pop_restore, ++ .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer, ++ .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore, + .ptr_nthreads = &__nptl_nthreads, + .ptr___pthread_unwind = &__pthread_unwind, + .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd, |