Skip to content

Commit ee6b627

Browse files
authored
[SYSVABI] Add example that ifunc resolvers are indirectly called (#324)
An ifunc resolver function needs a BTI as it is called indirectly via the dynamic loader when resolving the R_AARCH64_IRELATIVE relocation. When static linking the relocation is also resolved via an indirect branch to the resolver from a local resolver function like _dl_relocate_static_pie in glibc.
1 parent 204c2e7 commit ee6b627

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

sysvabi64/sysvabi64.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1751,7 +1751,9 @@ calls to that location.
17511751
escapes to an entity that is permitted to generate an indirect
17521752
branch that is opaque to the relocatable object producer. This
17531753
includes the locations of all symbols that can be exported into the
1754-
dynamic symbol table by a static linker.
1754+
dynamic symbol table by a static linker. It also includes IFUNC
1755+
resolver functions as these are called indirectly via the dynamic
1756+
loader or a local relocation resolver when static linking.
17551757

17561758
* A static linker is required to generate `Custom PLTs`_ with BTI
17571759
instructions.

0 commit comments

Comments
 (0)