aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-07 08:39:57 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-07 08:39:57 +0000
commitc31e278f8636fbe11ad933d9089e98361665a978 (patch)
tree5101942451f1417f14d3f4b0702ee101464a50c4 /elf
parent021723ab784461de9eac57398ea16a47d4ab9366 (diff)
downloadglibc-c31e278f8636fbe11ad933d9089e98361665a978.tar
glibc-c31e278f8636fbe11ad933d9089e98361665a978.tar.gz
glibc-c31e278f8636fbe11ad933d9089e98361665a978.tar.bz2
glibc-c31e278f8636fbe11ad933d9089e98361665a978.zip
Update.
2004-03-07 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/ldsodefs.h: Move _dl_initial_searclist, _dl_hp_timing_overhead, _dl_init_all_dirs, and the content of dl-procinfo.c from _rtld_global to _rtld_global_ro. * elf/rtld.c: Adjust initializer for _rtld_global_ro. * elf/dl-close.c: Use GLRO instead of GL where appropriate. * elf/dl-libc.c: Likewise. * elf/dl-load.c: Likewise. * sysdeps/i386/dl-procinfo.h: Likewise. * sysdeps/i386/i686/hp-timing.h: Likewise. * sysdeps/ia64/hp-timing.h: Likewise. * sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise. * sysdeps/sparc/sparc64/hp-timing.h: Likewise. * sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-close.c5
-rw-r--r--elf/dl-libc.c2
-rw-r--r--elf/dl-load.c2
-rw-r--r--elf/rtld.c20
4 files changed, 15 insertions, 14 deletions
diff --git a/elf/dl-close.c b/elf/dl-close.c
index 62c257ce4f..500b9d57d3 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -597,14 +597,15 @@ free_slotinfo (struct dtv_slotinfo_list **elemp)
libc_freeres_fn (free_mem)
{
if (__builtin_expect (GL(dl_global_scope_alloc), 0) != 0
- && GL(dl_main_searchlist)->r_nlist == GL(dl_initial_searchlist).r_nlist)
+ && (GL(dl_main_searchlist)->r_nlist
+ == GLRO(dl_initial_searchlist).r_nlist))
{
/* All object dynamically loaded by the program are unloaded. Free
the memory allocated for the global scope variable. */
struct link_map **old = GL(dl_main_searchlist)->r_list;
/* Put the old map in. */
- GL(dl_main_searchlist)->r_list = GL(dl_initial_searchlist).r_list;
+ GL(dl_main_searchlist)->r_list = GLRO(dl_initial_searchlist).r_list;
/* Signal that the original map is used. */
GL(dl_global_scope_alloc) = 0;
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index a6c833a9e2..a8b851c090 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -209,7 +209,7 @@ libc_freeres_fn (free_mem)
/* Remove all search directories. */
d = GL(dl_all_dirs);
- while (d != GL(dl_init_all_dirs))
+ while (d != GLRO(dl_init_all_dirs))
{
struct r_search_path_elem *old = d;
d = d->next;
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 1ff12836ec..1a3c9c5ed9 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -757,7 +757,7 @@ _dl_init_paths (const char *llp)
env_path_list.dirs = (void *) -1;
/* Remember the last search directory added at startup. */
- GL(dl_init_all_dirs) = GL(dl_all_dirs);
+ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
}
diff --git a/elf/rtld.c b/elf/rtld.c
index 87d3958679..c9b9c1be80 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -93,8 +93,6 @@ INTVARDEF(_dl_starting_up)
(except those which cannot be added for some reason). */
struct rtld_global _rtld_global =
{
- /* Get architecture specific initializer. */
-#include <dl-procinfo.c>
/* Default presumption without further information is executable stack. */
._dl_stack_flags = PF_R|PF_W|PF_X,
#ifdef _LIBC_REENTRANT
@@ -113,6 +111,8 @@ extern struct rtld_global _rtld_local
read-only after relocation. */
struct rtld_global_ro _rtld_global_ro attribute_relro =
{
+ /* Get architecture specific initializer. */
+#include <dl-procinfo.c>
#ifdef NEED_DL_SYSINFO
._dl_sysinfo = DL_SYSINFO_DEFAULT,
#endif
@@ -1720,6 +1720,14 @@ cannot allocate TLS data structures for initial thread");
#endif
}
+ /* Now set up the variable which helps the assembler startup code. */
+ GL(dl_main_searchlist) = &GL(dl_loaded)->l_searchlist;
+ GL(dl_global_scope)[0] = &GL(dl_loaded)->l_searchlist;
+
+ /* Save the information about the original global scope list since
+ we need it in the memory handling later. */
+ GLRO(dl_initial_searchlist) = *GL(dl_main_searchlist);
+
if (prelinked)
{
struct link_map *l;
@@ -1833,14 +1841,6 @@ cannot allocate TLS data structures for initial thread");
}
}
- /* Now set up the variable which helps the assembler startup code. */
- GL(dl_main_searchlist) = &GL(dl_loaded)->l_searchlist;
- GL(dl_global_scope)[0] = &GL(dl_loaded)->l_searchlist;
-
- /* Save the information about the original global scope list since
- we need it in the memory handling later. */
- GL(dl_initial_searchlist) = *GL(dl_main_searchlist);
-
#ifndef NONTLS_INIT_TP
# define NONTLS_INIT_TP do { } while (0)
#endif