aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2013-02-18 19:08:21 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2013-02-18 19:08:21 +0530
commitba384f6ed9275f3966505f2375b56d169e3dc588 (patch)
treed832a5a24bab934c946089b8d2a9a16f1766470d /ChangeLog
parentffaa74cf68a370e232279a9a9b0a02ade287cc99 (diff)
downloadglibc-ba384f6ed9275f3966505f2375b56d169e3dc588.tar
glibc-ba384f6ed9275f3966505f2375b56d169e3dc588.tar.gz
glibc-ba384f6ed9275f3966505f2375b56d169e3dc588.tar.bz2
glibc-ba384f6ed9275f3966505f2375b56d169e3dc588.zip
C++11 thread_local destructors support
This feature is specifically for the C++ compiler to offload calling thread_local object destructors on thread program exit, to glibc. This is to overcome the possible complication of destructors of thread_local objects getting called after the DSO in which they're defined is unloaded by the dynamic linker. The DSO is marked as 'unloadable' if it has a constructed thread_local object and marked as 'unloadable' again when all the constructed thread_local objects defined in it are destroyed.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog33
1 files changed, 33 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 20a7aa1cc5..44ab1f8846 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,38 @@
2013-02-18 Siddhesh Poyarekar <siddhesh@redhat.com>
+ * Versions.def: Add GLIBC_2.18.
+ * include/link.h (struct link_map): New member l_tls_dtor_count.
+ * include/stdlib.h (__cxa_thread_atexit_impl): Declare.
+ (__call_tls_dtors): Likewise.
+ * sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: Add
+ __cxa_thread_atexit_impl.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist:
+ Likewise.
+ * stdlib/Makefile (routines): Add __cxa_thread_atexit_impl.
+ (tests): Add test case tst-tls-atexit.
+ (modules-names): Add shared library for tst-tls-atexit.
+ * stdlib/Versions (GLIBC_2.17): Add __cxa_thread_atexit_impl.
+ (GLIBC_PRIVATE): Add __call_tls_dtors.
+ * stdlib/cxa_thread_atexit_impl.c: New file with helper function
+ for libstdc++.
+ * stdlib/exit.c (__run_exit_handlers): Call __call_tls_dtors.
+ * stdlib/tst-tls-atexit.c: New test case.
+ * stdlib/tst-tls-atexit-lib.c: New test case.
+
* misc/tst-pselect.c: Include stdlib.h for declaration of exit.
* nptl/sysdeps/pthread/tst-timer.c: Likewise.
* nptl/tst-barrier4.c: Likewise.