about summary refs log tree commit diff
path: root/sysdeps/generic/libc-start.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-31 01:47:34 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-31 01:47:34 +0000
commit3fa21fd813ac323f2890812b99663d7cf17578eb (patch)
tree4a98c7119b18fd5c91368eb8e95c4371ee71fc54 /sysdeps/generic/libc-start.c
parenta70e964ee0ec3827b4d24ed3fbff1b614b1a0269 (diff)
downloadglibc-3fa21fd813ac323f2890812b99663d7cf17578eb.tar.gz
glibc-3fa21fd813ac323f2890812b99663d7cf17578eb.tar.xz
glibc-3fa21fd813ac323f2890812b99663d7cf17578eb.zip
Update.
2004-03-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/libc-start.c (LIBC_START_MAIN)
	[HAVE_CLEANUP_JMP_BUF]: Call __nptl_deallocate_tsd.
Diffstat (limited to 'sysdeps/generic/libc-start.c')
-rw-r--r--sysdeps/generic/libc-start.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c
index b92ab04fdb..fc9df40996 100644
--- a/sysdeps/generic/libc-start.c
+++ b/sysdeps/generic/libc-start.c
@@ -210,6 +210,14 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
     }
   else
     {
+      /* Remove the thread-local data.  */
+# ifdef SHARED
+      __libc_pthread_functions.ptr__nptl_deallocate_tsd ();
+# else
+      extern void __nptl_deallocate_tsd (void) __attribute ((weak));
+      __nptl_deallocate_tsd ();
+# endif
+
       /* One less thread.  Decrement the counter.  If it is zero we
 	 terminate the entire process.  */
       result = 0;