From 41e25904a520d49ba14d7e9a0a7ea84731572ebd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 31 Oct 2008 20:50:16 +0000 Subject: * elf/dl-tls.c (__tls_get_addr): After calling _dl_update_slotinfo refetch dtv, as it might have changed. * elf/Makefile: Add rules to build and run tst-tls18. * elf/tst-tls18.c: New test. * elf/tst-tlsmod18a.c: New file. --- elf/dl-tls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'elf/dl-tls.c') diff --git a/elf/dl-tls.c b/elf/dl-tls.c index e234a0a..824adc1 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -756,7 +756,10 @@ __tls_get_addr (GET_ADDR_ARGS) void *p; if (__builtin_expect (dtv[0].counter != GL(dl_tls_generation), 0)) - the_map = _dl_update_slotinfo (GET_ADDR_MODULE); + { + the_map = _dl_update_slotinfo (GET_ADDR_MODULE); + dtv = THREAD_DTV (); + } p = dtv[GET_ADDR_MODULE].pointer.val; -- cgit v1.1