[BOLT] Handle ifuncs trampolines for aarch64
authorVladislav Khmelevsky <och95@yandex.ru>
Wed, 2 Mar 2022 21:34:41 +0000 (00:34 +0300)
committerVladislav Khmelevsky <och95@yandex.ru>
Tue, 8 Mar 2022 22:38:19 +0000 (01:38 +0300)
commit8bdbcfe7d8b0f5ab08fe4b688c3d698f38097b6b
tree5813c8f7e14ce3055167c2df7ae05548215be79e
parent16823adf2a0960d426cd551cdd87e4b8f166efd1
[BOLT] Handle ifuncs trampolines for aarch64

The aarch64 uses the trampolines located in .iplt section, which
contains plt-like trampolines on the value stored in .got. In this case
we don't have JUMP_SLOT relocation, but we have a symbol that belongs to
ifunc trampoline, so use it and set set plt symbol for such functions.

Vladislav Khmelevsky,
Advanced Software Technology Lab, Huawei

Differential Revision: https://reviews.llvm.org/D120850
bolt/include/bolt/Rewrite/RewriteInstance.h
bolt/lib/Rewrite/RewriteInstance.cpp
bolt/test/runtime/AArch64/iplt.c [new file with mode: 0644]