[all-commits] [llvm/llvm-project] 18a49f: [ELF] Merge relaIplt into relaDyn
Fangrui Song via All-commits
all-commits at lists.llvm.org
Sun Mar 24 14:07:32 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 18a49f03aa2b6bfeb073648b9eb75277a2386fc4
https://github.com/llvm/llvm-project/commit/18a49f03aa2b6bfeb073648b9eb75277a2386fc4
Author: Fangrui Song <i at maskray.me>
Date: 2024-03-24 (Sun, 24 Mar 2024)
Changed paths:
M lld/ELF/Relocations.cpp
M lld/ELF/SyntheticSections.cpp
M lld/ELF/SyntheticSections.h
M lld/ELF/Writer.cpp
M lld/test/ELF/aarch64-gnu-ifunc.s
M lld/test/ELF/arm-gnu-ifunc.s
M lld/test/ELF/gnu-ifunc-i386.s
M lld/test/ELF/systemz-ifunc-nonpreemptible.s
Log Message:
-----------
[ELF] Merge relaIplt into relaDyn
`relaIplt` was added so that IRELATIVE relocations are placed at the end
of .rela.dyn (since https://reviews.llvm.org/D65651) or .rela.plt
(--pack-dyn-relocs=android[+relr]). Unfortunately, handling `relaIplt`
requires special cases all over the code base. We can extend
partitionRels/computeRels to partition both RELATIVE and IRELATIVE
relocations, rendering `relaIplt` unneeded.
The change allows IRELATIVE relocations in the DT_ANDROID_REL[A] table
(untested?!), which may be processed before other types of relocations.
This seems acceptable for Bionic's DEFINE_IFUNC_FOR use cases.
In addition, this change simplies changing .rel[a].dyn to a compact
relocation format (CREL).
SHF_INFO_LINK is removed from .rel[a].dyn with IRELATIVE relocations.
(See https://reviews.llvm.org/D89828).
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list