diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-08-17 13:37:54 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-08-17 13:37:54 +0000 |
commit | 6d6f3a5c26adcf6b105edfb4b53e97ceee81944c (patch) | |
tree | fdf250e80080d49b1e421f7157661033821c5fb7 /ldso/ldso/frv | |
parent | d965f80088fafaacfd33d0b0770724f4fbcbe6e5 (diff) |
Let ldso decide if it should relocate itselft a second time. This
is needed if ldso should use libcs malloc whenever possible.
Fix RTLD_LAZY propagation to RTLD_NOW relocation when requested by
libdl.
Diffstat (limited to 'ldso/ldso/frv')
-rw-r--r-- | ldso/ldso/frv/elfinterp.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/ldso/ldso/frv/elfinterp.c b/ldso/ldso/frv/elfinterp.c index 227ef8cad..7e61763ae 100644 --- a/ldso/ldso/frv/elfinterp.c +++ b/ldso/ldso/frv/elfinterp.c @@ -213,15 +213,6 @@ _dl_parse(struct elf_resolve *tpnt, struct dyn_elf *scope, int res; symtab_index = ELF32_R_SYM(rpnt->r_info); - - /* When the dynamic linker bootstrapped itself, it resolved some symbols. - Make sure we do not do them again */ - if (!symtab_index && tpnt->libtype == program_interpreter) - continue; - if (symtab_index && tpnt->libtype == program_interpreter && - _dl_symbol(strtab + symtab[symtab_index].st_name)) - continue; - #if defined (__SUPPORT_LD_DEBUG__) debug_sym(symtab,strtab,symtab_index); debug_reloc(symtab,strtab,rpnt); @@ -444,11 +435,6 @@ _dl_parse_relocation_information (struct dyn_elf *rpnt, unsigned long rel_addr, unsigned long rel_size, int type __attribute_used__) { - /* The interpreter initial self-relocation is complete, and we - can't re-apply relocations. */ - if (rpnt->dyn->libtype == program_interpreter) - return 0; - return _dl_parse(rpnt->dyn, rpnt->dyn->symbol_scope, rel_addr, rel_size, _dl_do_reloc); } |