summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-03-14 17:22:27 +0000
committerJakub Jelinek <jakub@redhat.com>2008-03-14 17:22:27 +0000
commitb87b7fc3e6e41cf8006fb2341c236a46f6d8bdd4 (patch)
tree8b042dd05d766dd46dfa953aec240207eae14208 /elf
parent5c25449dd9fd706f79ee6d92019f28044d9270fa (diff)
Updated to fedora-glibc-20080310T1651
Diffstat (limited to 'elf')
-rw-r--r--elf/Makefile7
-rw-r--r--elf/Versions1
-rw-r--r--elf/dl-iteratephdr.c4
-rw-r--r--elf/dl-sysdep.c3
-rw-r--r--elf/dl-tls.c3
-rw-r--r--elf/rtld.c8
6 files changed, 15 insertions, 11 deletions
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 <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-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