On 19/01/2012 15.28, Carmelo AMOROSO wrote:
> Fill properly the sym_ref fields when invoking _dl_find_hash to lookup
> symbols
> 
> Signed-off-by: Carmelo Amoroso <carmelo.amor...@st.com>
> ---
>  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
uClibc@uclibc.org
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to