diff options
author | Andrew Hunter <ahh@google.com> | 2014-01-03 11:22:26 -0800 |
---|---|---|
committer | Paul Pluzhnikov <ppluzhnikov@google.com> | 2014-01-03 11:22:26 -0800 |
commit | 7f507ee17aee720fa423fa38502bc3caa0dd03d7 (patch) | |
tree | 05ec2f0128d719097d18b531bf5e19c617520649 /nptl/Makefile | |
parent | 7dd009d8656c0f5c1c633f3764746335a6feefa7 (diff) | |
download | glibc-7f507ee17aee720fa423fa38502bc3caa0dd03d7.tar glibc-7f507ee17aee720fa423fa38502bc3caa0dd03d7.tar.gz glibc-7f507ee17aee720fa423fa38502bc3caa0dd03d7.tar.bz2 glibc-7f507ee17aee720fa423fa38502bc3caa0dd03d7.zip |
Async-signal safe TLS.
ChangeLog:
2014-01-03 Andrew Hunter <ahh@google.com>
* elf/dl-open.c (): New comment.
* elf/dl-reloc.c (_dl_try_allocate_static_tls): Use
atomic_compare_and_exchange_bool_acq
(_dl_allocate_static_tls): Block signals.
* elf/dl-tls.c (allocate_and_init): Return void.
(_dl_update_slotinfo): Block signals, use atomic update.
nptl/ChangeLog:
2014-01-03 Andrew Hunter <ahh@google.com>
* nptl/Makefile (tst-tls7): New test.
* nptl/tst-tls7.c: New file.
* nptl/tst-tls7mod.c: New file.
* nptl/allocatestack.c (init_one_static_tls): Use atomic barrier.
Diffstat (limited to 'nptl/Makefile')
-rw-r--r-- | nptl/Makefile | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/nptl/Makefile b/nptl/Makefile index 57cc8c69e4..a43e740847 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -293,7 +293,7 @@ tests += tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx5 \ tst-oncex3 tst-oncex4 endif ifeq ($(build-shared),yes) -tests += tst-atfork2 tst-tls3 tst-tls4 tst-tls5 tst-_res1 tst-fini1 \ +tests += tst-atfork2 tst-tls3 tst-tls4 tst-tls5 tst-tls7 tst-_res1 tst-fini1 \ tst-stackguard1 tests-nolibpthread += tst-fini1 ifeq ($(have-z-execstack),yes) @@ -304,7 +304,8 @@ endif modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \ tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \ tst-tls5modd tst-tls5mode tst-tls5modf \ - tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod + tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \ + tst-tls7mod extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) tst-cleanup4aux.o test-extras += $(modules-names) tst-cleanup4aux test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) @@ -318,6 +319,7 @@ tst-tls5modc.so-no-z-defs = yes tst-tls5modd.so-no-z-defs = yes tst-tls5mode.so-no-z-defs = yes tst-tls5modf.so-no-z-defs = yes +tst-tls7mod.so-no-z-defs = yes ifeq ($(build-shared),yes) # Build all the modules even when not actually running test programs. @@ -480,6 +482,12 @@ $(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library) LDFLAGS-tst-tls5 = $(no-as-needed) LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so +# ensure free(malloc()) isn't optimized out +CFLAGS-tst-tls7.c = -fno-builtin-malloc -fno-builtin-free +$(objpfx)tst-tls7: $(libdl) $(shared-thread-library) +$(objpfx)tst-tls7.out: $(objpfx)tst-tls7mod.so +$(objpfx)tst-tls7mod.so: $(shared-thread-library) + ifeq ($(build-shared),yes) ifeq ($(run-built-tests),yes) tests: $(objpfx)tst-tls6.out |