Relocations reference local (static or hidden) symbols on ia64

Andreas Schwab schwab@linux-m68k.org
Fri Sep 24 12:18:54 GMT 2021


On Sep 24 2021, Alan Modra wrote:

> On Thu, Sep 23, 2021 at 10:40:39PM +0200, Florian Weimer via Binutils wrote:
>> * Andreas Schwab:
>> 
>> > On Sep 23 2021, Florian Weimer via Binutils wrote:
>> >
>> >> Relocation section '.rela.dyn' at offset 0xeb8 contains 53 entries:
>> >>     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
>> >> […]
>> >> 0000000000061608  0000001800000047 R_IA64_FPTR64LSB       000000000001dc00 openaux + 0
>> >
>> > This relocation creates the "official" function descriptor for the
>> > function (which serves as the unique address of the function).
>> 
>> Oh.  _dl_make_fptr is … complex.
>> 
>> For a static function such as openaux, I would have expected the static
>> linker to allocate space for a function descriptor and initialize it
>> using an R_IA64_REL64LSB relocation.
>
> Yes, or perhaps a different relocation.

Or let the compiler allocate the descriptor (which it already does for
vtables, see TARGET_VTABLE_USES_DESCRIPTORS).

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."


More information about the Binutils mailing list