This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: alpha-linux gas testsuite failure


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]