From b87b7fc3e6e41cf8006fb2341c236a46f6d8bdd4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 14 Mar 2008 17:22:27 +0000 Subject: Updated to fedora-glibc-20080310T1651 --- elf/Makefile | 7 ++++--- elf/Versions | 1 - elf/dl-iteratephdr.c | 4 ++-- elf/dl-sysdep.c | 3 ++- elf/dl-tls.c | 3 +-- elf/rtld.c | 8 ++++++-- 6 files changed, 15 insertions(+), 11 deletions(-) (limited to 'elf') diff --git a/elf/Makefile b/elf/Makefile index 4230b55df6..2dd2424b28 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 1995-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 @@ -23,7 +23,7 @@ subdir := elf headers = elf.h bits/elfclass.h link.h bits/link.h routines = $(dl-routines) dl-support dl-iteratephdr \ dl-addr enbl-secure dl-profstub \ - dl-origin dl-libc dl-sym dl-tsd + dl-origin dl-libc dl-sym dl-tsd dl-sysdep # The core dynamic linking functions are in libc for the static and # profiled libraries. @@ -33,7 +33,8 @@ dl-routines = $(addprefix dl-,load cache lookup object reloc deps \ execstack caller open close trampoline) all-dl-routines = $(dl-routines) $(sysdep-dl-routines) # But they are absent from the shared libc, because that code is in ld.so. -elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin +elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin \ + dl-sysdep shared-only-routines += dl-caller # ld.so uses those routines, plus some special stuff for being the program diff --git a/elf/Versions b/elf/Versions index 967ebdb3a5..87e27c5a7a 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 55cf10852e..c49671583b 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 , 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-sysdep.c b/elf/dl-sysdep.c index 85e331a90f..dd55905e14 100644 --- a/elf/dl-sysdep.c +++ b/elf/dl-sysdep.c @@ -1,5 +1,5 @@ /* Operating system support for run-time dynamic linker. Generic Unix version. - Copyright (C) 1995-1998, 2000-2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-1998, 2000-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 @@ -398,6 +398,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, } note = ((const void *) (note + 1) + ROUND (note->vendorlen) + ROUND (note->datalen)); +#undef ROUND } if (dsocaps != NULL) break; diff --git a/elf/dl-tls.c b/elf/dl-tls.c index 3059481043..76a3f25c0f 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,6 @@ __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 _dl_tls_get_addr_soft (struct link_map *l) { if (__builtin_expect (l->l_tls_modid == 0, 0)) diff --git a/elf/rtld.c b/elf/rtld.c index 98817d9fa0..46bece7fa3 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -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,11 @@ 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, +#ifdef HAVE_DL_DISCOVER_OSVERSION + ._dl_discover_osversion = _dl_discover_osversion +#endif }; /* If we would use strong_alias here the compiler would see a non-hidden definition. This would undo the effect of the previous -- cgit v1.2.3