From e1f0b2cfa14b058ab033431b70428ccda8ec6ed0 Mon Sep 17 00:00:00 2001 From: Vladimir Nikulichev Date: Mon, 24 Jun 2013 17:08:07 -0400 Subject: BZ #12310: pthread_exit in static app. segfaults Static applications that call pthread_exit on the main thread segfault. This is because after a thread terminates __libc_start_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. ~~~ nptl/ 2013-06-24 Vladimir Nikulichev [BZ #12310] * pthread_exit.c: Add reference to pthread_create. --- nptl/ChangeLog | 5 +++++ nptl/pthread_exit.c | 4 ++++ 2 files changed, 9 insertions(+) (limited to 'nptl') diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 875bdbdca4..7c0354858b 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2013-06-24 Vladimir Nikulichev + + [BZ #12310] + * pthread_exit.c: Add reference to pthread_create. + 2013-06-22 Joseph Myers * pthread_getattr_default_np.c: Include . diff --git a/nptl/pthread_exit.c b/nptl/pthread_exit.c index 371808116a..263e792806 100644 --- a/nptl/pthread_exit.c +++ b/nptl/pthread_exit.c @@ -29,3 +29,7 @@ __pthread_exit (value) __do_cancel (); } strong_alias (__pthread_exit, pthread_exit) + +/* After a thread terminates, __libc_start_main decrements + __nptl_nthreads defined in pthread_create.c. */ +PTHREAD_STATIC_FN_REQUIRE (pthread_create) -- cgit v1.2.3