Relocations reference local (static or hidden) symbols on ia64
Florian Weimer
fweimer@redhat.com
Thu Sep 23 20:01:11 GMT 2021
I am trying to get rid of relocations with symbols in ld.so in glibc.
It will simplify self-relocation of the dynamic loader *a lot*. (The
amount of cruft that goes away with this change is utterly ridiculous.)
Consider my surprise when I learnt that ia64 ld produces symbolic
relocations for static functions in some cases, for example this:
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
[…]
Against:
Symbol table '.dynsym' contains 65 entries:
Num: Value Size Type Bind Vis Ndx Name
[…]
24: 000000000001dc00 176 FUNC LOCAL DEFAULT 10 openaux
[…]
Is this just a fancy way of using the value 0x1dc00 in the relocation?
I have attached an object like this.
Are there any other targets I should watch out for if I want to avoid
fancy relocations?
(ld.so in glibc does not use thread local storage and should otherwise
be very harmless. On most targets, there will be exactly one relocation
type to process. Even hppa has just 3.)
Thanks,
Florian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ld-linux-ia64.so.2.gz
Type: application/gzip
Size: 132256 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20210923/d6de1311/attachment-0001.gz>
More information about the Binutils
mailing list