diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-08-26 11:30:48 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-08-26 11:30:48 +0000 |
commit | f8666418a90c3e1ebe5fe63d2249a16a1ca3190b (patch) | |
tree | e133a35588e6a99eb510099d620563a9b61c2c24 /ldso/ldso/ldso.c | |
parent | 2c13012629aeedaa9280909128cc887e3f761eb1 (diff) |
Relocations of the application's global GOT entries were not being run, and
only the global GOT entry relocations for the loaded shared libs were being
handled. This made applications segfault when using un-fixedup symbols. After
many hours debugging to track down the problem, this patch makes the mips port
happy again.
-Erik
Diffstat (limited to 'ldso/ldso/ldso.c')
-rw-r--r-- | ldso/ldso/ldso.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index 568081acd..5afc4a8f7 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -275,6 +275,11 @@ 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; |