This is the mail archive of the binutils@sources.redhat.com 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: gas, sparc, dwarf2, and R_SPARC_(UA)64


Hi Jakub, Hi DJ,

> Jakub wrote:
Just verified that Sun ld at least in Solaris 8 is dumb enough
not to convert UA* relocs on aligned locations into their aligned
counterparts.
Wouldn't it be easier to simply convert aligned relocs to unaligned ones
when writing them by gas if it detects misaligned location
(or, use unaligned ones internally as you had in the patch, but when
writing them into .o file convert the aligned ones from UA* to non-UA*
relocs)?

So this means that in order to be compatible with the Solaris native linker GAS has to generate aligned relocs for aligned locations and unaligned relocs for unaligned locations. Is that right ? Plus it must not generate unaligned relocs for aligned locations or aligned relocs for unaligned locations ?


Wouldn't it be easier to simply convert aligned relocs to unaligned
ones when writing them by gas if it detects misaligned location

: DJ wrote: : My initial patch did just that (that's why there's a suspiciously : lonely looking conditional and recursion there ;)

It did ?  I must have missed that.  It looked to me like it just
reinvoked cons_fix_new_sparc() with sparc_no_align_cons set if
sparc_no_align_cons was clear.

: but it didn't catch all the cases.

Do you remember what those cases were ?

: I suppose I could re-debug those cases if needed, but it looked like
: gas just didn't know enough to ensure that kind of alignment after
: linking (don't know why).

I guess that we are going to have to find out.

Cheers
  Nick


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