From 23691332c8458adb469ad78051493ef0db434222 Mon Sep 17 00:00:00 2001 From: Filippo ARCIDIACONO Date: Mon, 1 Jul 2013 15:55:26 +0200 Subject: libpthread: pthread_exit in static app. segfaults Static applications that call pthread_exit on the main thread segfault. This is because after a thread terminates __uClibc_main decrements __nptl_nthreads which is only defined in pthread_create. Therefore the right solution is to add a requirement to pthread_create from pthread_exit. This patch has been backported from glibc tree: http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=e1f0b2cfa14b058ab033431b70428ccda8ec6ed0 For further detail see also glibc bug at: http://sourceware.org/bugzilla/show_bug.cgi?id=12310 Signed-off-by: Filippo Arcidiacono Cc: Vladimir Nikulichev Signed-off-by: Bernhard Reutner-Fischer --- libpthread/nptl/pthread_exit.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libpthread') diff --git a/libpthread/nptl/pthread_exit.c b/libpthread/nptl/pthread_exit.c index b37be7a13..141ca750d 100644 --- a/libpthread/nptl/pthread_exit.c +++ b/libpthread/nptl/pthread_exit.c @@ -29,3 +29,9 @@ __pthread_exit (void* value) __do_cancel (); } strong_alias (__pthread_exit, pthread_exit) + +/* + * After a thread terminates, __uClibc_main decrements __nptl_nthreads + * defined in pthread_create.c. + */ +PTHREAD_STATIC_FN_REQUIRE (pthread_create) -- cgit v1.2.3