summaryrefslogtreecommitdiff
path: root/ldso/ldso/ldso.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-08-26 18:36:23 +0000
committerEric Andersen <andersen@codepoet.org>2004-08-26 18:36:23 +0000
commit17415ee0becb11c97e86dfa00c2e503649f952e6 (patch)
tree6410fbd0a149c06695a0a4a38b7d82ec76de67bd /ldso/ldso/ldso.c
parent9d7a22d351d45808aa88224367cc1dd30e518705 (diff)
Avoid multiple passes to perform mips GOT relocations, and do
the whole lot in a single pass. -Erik
Diffstat (limited to 'ldso/ldso/ldso.c')
-rw-r--r--ldso/ldso/ldso.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
index 4c6817e6d..6ce8564bc 100644
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -275,11 +275,6 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr,
INIT_GOT(lpnt, _dl_loaded_modules);
}
-#if defined(__mips__)
- /* Relocate any global GOT entries for the application */
- _dl_perform_mips_global_got_relocations(app_tpnt);
-#endif
-
/* OK, fill this in - we did not have this before */
if (ppnt->p_type == PT_INTERP) {
int readsize = 0;
@@ -667,17 +662,17 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr,
#endif
+#ifdef __SUPPORT_LD_DEBUG_EARLY__
+ _dl_dprintf(_dl_debug_file, "Beginning relocation fixups\n");
+#endif
+
#ifdef __mips__
/*
* Relocation of the GOT entries for MIPS have to be done
- * after all the libraries have been loaded.
- */
+ * after all the libraries have been loaded. */
_dl_perform_mips_global_got_relocations(_dl_loaded_modules);
#endif
-#ifdef __SUPPORT_LD_DEBUG_EARLY__
- _dl_dprintf(_dl_debug_file, "Beginning relocation fixups\n");
-#endif
/*
* OK, now all of the kids are tucked into bed in their proper addresses.
* Now we go through and look for REL and RELA records that indicate fixups