This is the mail archive of the 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]

Re: ld broken on Solaris 8

On Fri, 11 May 2001, Mark Kettenis wrote:
> According to the Sun "Linker and Libraries Guide" R_SPARC_UA32
>    "...resembles R_SPARC_32, except that it refers to an unaligned
>     word.  That is, the word to be relocated must be treated as four
>     separate bytes with arbitrary alignment, not as a word aligned
>     according to the architecture requirements."
> Now that's a bit cryptic to me, but I suspect the Sparc doesn't allow
> unaligned word access (or severely penalizes it) and R_SPARC_UA32 is
> there to instruct the dynamic linker to access the bytes individually
> instead of trying an unaligned word access.  If I'm right, this would
> probably mean that for ld there would be no difference.

Your interpretation sounds reasonable.  In my example (a static
relocation in .data) this would be pointless, unless it causes ld to
substitute an unaligned variant of the load insn (if such a thing exists
on SPARC).

In all likelihood the Solaris as is generating R_SPARC_UA32 unnecessarily.
Not that I care anymore; I'll update my tree and see what happens.  In any
case a bug report should be probably be entered for GCC.


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