From 0038f6a2297be2b66a0177bc74b468dddb0a89fa Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Wed, 10 Nov 2004 15:27:26 +0000 Subject: Add RTLD_LOCAL support for dlopened libs. Reported by Andrew de Quincey, who has been most helpful getting this sorted out, thanks. Thanks also to Peter Mazinger who did alot of testing. Removed all traces of dl_parse_copy_information() since it is no longer used. --- ldso/ldso/sh/elfinterp.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'ldso/ldso/sh/elfinterp.c') diff --git a/ldso/ldso/sh/elfinterp.c b/ldso/ldso/sh/elfinterp.c index 821b44cbc..18551841c 100644 --- a/ldso/ldso/sh/elfinterp.c +++ b/ldso/ldso/sh/elfinterp.c @@ -149,7 +149,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) /* Get the address of the GOT entry */ - new_addr = _dl_find_hash(symname, tpnt->symbol_scope, ELF_RTYPE_CLASS_PLT); + new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT); if (unlikely(!new_addr)) { _dl_dprintf(2, "%s: can't resolve symbol '%s'\n", _dl_progname, symname); _dl_exit(1); @@ -253,9 +253,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope, symname = strtab + symtab[symtab_index].st_name; if (symtab_index) { - - - symbol_addr = (unsigned long) _dl_find_hash(symname, scope, + symbol_addr = (unsigned long) _dl_find_hash(symname, scope, tpnt, elf_machine_type_class(reloc_type)); /* @@ -360,9 +358,3 @@ int _dl_parse_relocation_information(struct dyn_elf *rpnt, return _dl_parse(rpnt->dyn, rpnt->dyn->symbol_scope, rel_addr, rel_size, _dl_do_reloc); } -int _dl_parse_copy_information(struct dyn_elf __attribute__((unused))*rpnt, - unsigned long __attribute__((unused))rel_addr, unsigned long __attribute__((unused))rel_size) -{ - return 0; -} - -- cgit v1.2.3