On Thu, Jan 19, 2012 at 6:42 AM, Carmelo AMOROSO <[email protected]> wrote: > On 19/01/2012 15.28, Carmelo AMOROSO wrote: >> Fill properly the sym_ref fields when invoking _dl_find_hash to lookup >> symbols
this did not make the segfault go away. Although this patch is ok. this problem is a crash in libstdc++ I did not have debug info to get more info but I am building an image with debug info >> >> Signed-off-by: Carmelo Amoroso <[email protected]> >> --- >> ldso/ldso/mips/elfinterp.c | 4 +++- >> 1 files changed, 3 insertions(+), 1 deletions(-) >> >> diff --git a/ldso/ldso/mips/elfinterp.c b/ldso/ldso/mips/elfinterp.c >> index b748839..5d0eff5 100644 >> --- a/ldso/ldso/mips/elfinterp.c >> +++ b/ldso/ldso/mips/elfinterp.c >> @@ -161,7 +161,7 @@ int _dl_parse_relocation_information(struct dyn_elf >> *xpnt, >> unsigned long old_val=0; >> #endif >> >> - struct symbol_ref sym_ref = { NULL, NULL }; >> + struct symbol_ref sym_ref; >> /* Now parse the relocation information */ >> rel_size = rel_size / sizeof(ElfW(Rel)); >> rpnt = (ELF_RELOC *) rel_addr; >> @@ -187,6 +187,8 @@ int _dl_parse_relocation_information(struct dyn_elf >> *xpnt, >> #endif >> >> if (reloc_type == R_MIPS_JUMP_SLOT || reloc_type == >> R_MIPS_COPY) { >> + sym_ref.tpnt = NULL; >> + sym_ref.sym = &symtab[symtab_index]; >> symbol_addr = (unsigned long)_dl_find_hash(symname, >> scope, >> tpnt, > > Khem, > not sure, but this could be a problem. Unfortunately the code that > handle relocations for mips is enough different from all other > architectures. > The symbol scope redesign was mixed with another big change to handle > protected symbols, so the risk of breakage on some archs were high. > > Please let me know if it helps. > > Thanks, > Carmelo > _______________________________________________ > uClibc mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/uclibc _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
