alpha-linux gas testsuite failure

Richard Henderson rth@redhat.com
Sun Sep 19 22:48:00 GMT 2010


On 09/19/2010 03:33 PM, Richard Henderson wrote:
> I seemed like we were already taking care of this disgustingness:
> 
> #ifdef OBJ_ELF
>       /* Ohhh, this is ugly.  The problem is that if this is a local global
>          symbol, the relocation will entirely be performed at link time, not
>          at assembly time.  bfd_perform_reloc doesn't know about this sort
>          of thing, and as a result we need to fake it out here.  */
>       if ((S_IS_EXTERNAL (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy)
>            || (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE)
>            || (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_THREAD_LOCAL))
>           && !S_IS_COMMON (fixp->fx_addsy))
>         reloc->addend -= symbol_get_bfdsym (fixp->fx_addsy)->value;
> #endif
> 
> but clearly that has stopped working.  Do you know off-hand what
> the newly correct condition should be?  I can probably dig it out
> eventually...

Humph.  Clearly the best solution is to get rid of both hacks
and have the alpha port use bfd_elf_generic_reloc.


r~



More information about the Binutils mailing list