]> git.ipfire.org Git - thirdparty/glibc.git/commit
C++11 thread_local destructors support
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 18 Feb 2013 13:38:21 +0000 (19:08 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 18 Feb 2013 13:38:21 +0000 (19:08 +0530)
commitba384f6ed9275f3966505f2375b56d169e3dc588
treed832a5a24bab934c946089b8d2a9a16f1766470d
parentffaa74cf68a370e232279a9a9b0a02ade287cc99
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.
40 files changed:
ChangeLog
Versions.def
include/link.h
include/stdlib.h
nptl/pthread_create.c
ports/ChangeLog.alpha
ports/ChangeLog.arm
ports/ChangeLog.ia64
ports/ChangeLog.m68k
ports/ChangeLog.mips
ports/ChangeLog.powerpc
ports/ChangeLog.tile
ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
stdlib/Makefile
stdlib/Versions
stdlib/cxa_thread_atexit_impl.c [new file with mode: 0644]
stdlib/exit.c
stdlib/tst-tls-atexit-lib.c [new file with mode: 0644]
stdlib/tst-tls-atexit.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist