Named local symbols in the ELF dynamic symbol table

H.J. Lu hjl.tools@gmail.com
Wed Dec 14 21:44:57 GMT 2022


On Tue, Dec 6, 2022 at 9:11 AM Florian Weimer via Binutils
<binutils@sourceware.org> wrote:
>
> The symbol table of /lib/ld-linux-ia64.so.2 starts like this:
>
> Symbol table [ 3] '.dynsym' contains 65 entries:
>  33 local symbols  String table: [ 4] '.dynstr'
>   Num:            Value   Size Type    Bind   Vis          Ndx Name
>     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF
>     1: 00000000000318c0    160 FUNC    LOCAL  DEFAULT       10 _dl_error_free
>     2: 00000000000234c0     16 FUNC    LOCAL  DEFAULT       10 __GI__dl_debug_state
>     3: 0000000000029f80    368 FUNC    LOCAL  DEFAULT       10 _dl_tls_get_addr_soft
>     4: 000000000002be00   1728 FUNC    LOCAL  DEFAULT       10 _dl_open
>     5: 0000000000001550     64 FUNC    LOCAL  DEFAULT       10 _start
>     6: 0000000000031540    784 FUNC    LOCAL  DEFAULT       10 _dl_runtime_profile
>     7: 0000000000031440    208 FUNC    LOCAL  DEFAULT       10 _dl_runtime_resolve
>     8: 00000000000312c0    384 FUNC    LOCAL  DEFAULT       10 _dl_close
>     9: 0000000000018240  10720 FUNC    LOCAL  DEFAULT       10 _dl_lookup_symbol_x
>    10: 000000000003ab40     80 FUNC    LOCAL  DEFAULT       10 _rtld_catch_error
>
> The interesting aspect is that these symbols are named, but are not
> covered by the GNU_HASH table (because they are local).
>
> Is there a way to get the same effect on other targets?  I want to
> preserve the names of the functions that IFUNC resolvers return,
> eventually improving diagnostics around IFUNC resolution.  It would best
> if I wouldn't have to bloat the entire symbol table for that.
>

Are you interested in R_X86_64_IRELATIVE symbols or something
else?

-- 
H.J.


More information about the Binutils mailing list