diff options
author | Ulrich Drepper <drepper@redhat.com> | 2008-03-08 05:44:56 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2008-03-08 05:44:56 +0000 |
commit | 93025f9373f4efde62aab31aa03c4744fd3bed62 (patch) | |
tree | a3af6e5eb6fb65c5ab6c4d0d83464c5925534d7a /elf | |
parent | c71665ad060cd30c99399d7a4fa47566eaf8b961 (diff) | |
download | glibc-93025f9373f4efde62aab31aa03c4744fd3bed62.zip glibc-93025f9373f4efde62aab31aa03c4744fd3bed62.tar.gz glibc-93025f9373f4efde62aab31aa03c4744fd3bed62.tar.bz2 |
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Add
_dl_tls_get_addr_soft element.
* elf/rtld.c (rtld_global_ro): Initialize _dl_tls_get_addr_soft.
* elf/Versions (ld): Don't export _dl_tls_get_addr_soft.
* dlfcn/dlinfo.c (dlinfo_doit): Access dl_tls_get_addr_soft through
GLRO.
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise.
* elf/dl-tls.c (_dl_tls_get_addr_soft): Use attribute_hidden instead
of internal_function.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/Versions | 1 | ||||
-rw-r--r-- | elf/dl-iteratephdr.c | 4 | ||||
-rw-r--r-- | elf/dl-tls.c | 4 | ||||
-rw-r--r-- | elf/rtld.c | 5 |
4 files changed, 7 insertions, 7 deletions
diff --git a/elf/Versions b/elf/Versions index 967ebdb..87e27c5 100644 --- a/elf/Versions +++ b/elf/Versions @@ -57,7 +57,6 @@ ld { _dl_allocate_tls; _dl_deallocate_tls; _dl_get_tls_static_info; _dl_allocate_tls_init; _dl_tls_setup; _dl_rtld_di_serinfo; - _dl_tls_get_addr_soft; _dl_make_stack_executable; # Only here for gdb while a better method is developed. _dl_debug_state; diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c index 55cf108..c496715 100644 --- a/elf/dl-iteratephdr.c +++ b/elf/dl-iteratephdr.c @@ -1,5 +1,5 @@ /* Get loaded objects program headers. - Copyright (C) 2001,2002,2003,2004,2006,2007 Free Software Foundation, Inc. + Copyright (C) 2001-2004,2006,2007,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2001. @@ -72,7 +72,7 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, info.dlpi_tls_data = NULL; info.dlpi_tls_modid = l->l_tls_modid; if (info.dlpi_tls_modid != 0) - info.dlpi_tls_data = _dl_tls_get_addr_soft (l); + info.dlpi_tls_data = GLRO(dl_tls_get_addr_soft) (l); ret = callback (&info, sizeof (struct dl_phdr_info), data); if (ret) break; diff --git a/elf/dl-tls.c b/elf/dl-tls.c index 3059481..deed472 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -1,5 +1,5 @@ /* Thread-local storage handling in the ELF dynamic linker. Generic version. - Copyright (C) 2002,2003,2004,2005,2006 Free Software Foundation, Inc. + Copyright (C) 2002,2003,2004,2005,2006,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -758,7 +758,7 @@ __tls_get_addr (GET_ADDR_ARGS) /* Look up the module's TLS block as for __tls_get_addr, but never touch anything. Return null if it's not allocated yet. */ void * -internal_function +attribute_hidden _dl_tls_get_addr_soft (struct link_map *l) { if (__builtin_expect (l->l_tls_modid == 0, 0)) @@ -1,5 +1,5 @@ /* Run time dynamic linker. - Copyright (C) 1995-2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-2006, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -161,7 +161,8 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = ._dl_lookup_symbol_x = _dl_lookup_symbol_x, ._dl_check_caller = _dl_check_caller, ._dl_open = _dl_open, - ._dl_close = _dl_close + ._dl_close = _dl_close, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft }; /* If we would use strong_alias here the compiler would see a non-hidden definition. This would undo the effect of the previous |