forked from OSchip/llvm-project
[ELF] Make TargetInfo::writeIgotPlt a no-op
RELA targets don't read initial .got.plt entries. REL targets (ARM, x86-32) write the address of the IFUNC resolver to the entry (`write32le(buf, s.getVA())`). The default writeIgotPlt() is not meaningful. Make it a no-op. AArch64 and x86-64 will have 0 as initial .got.plt entries associated with IFUNC. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D72474
This commit is contained in:
parent
f17ae668a9
commit
2d077d6dfa
|
@ -150,10 +150,6 @@ bool TargetInfo::inBranchRange(RelType type, uint64_t src, uint64_t dst) const {
|
|||
return true;
|
||||
}
|
||||
|
||||
void TargetInfo::writeIgotPlt(uint8_t *buf, const Symbol &s) const {
|
||||
writeGotPlt(buf, s);
|
||||
}
|
||||
|
||||
RelExpr TargetInfo::adjustRelaxExpr(RelType type, const uint8_t *data,
|
||||
RelExpr expr) const {
|
||||
return expr;
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
virtual void writeGotPltHeader(uint8_t *buf) const {}
|
||||
virtual void writeGotHeader(uint8_t *buf) const {}
|
||||
virtual void writeGotPlt(uint8_t *buf, const Symbol &s) const {};
|
||||
virtual void writeIgotPlt(uint8_t *buf, const Symbol &s) const;
|
||||
virtual void writeIgotPlt(uint8_t *buf, const Symbol &s) const {}
|
||||
virtual int64_t getImplicitAddend(const uint8_t *buf, RelType type) const;
|
||||
virtual int getTlsGdRelaxSkip(RelType type) const { return 1; }
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
// GOTPLT: Contents of section .got.plt:
|
||||
// GOTPLT-NEXT: 230440 00000000 00000000 00000000 00000000
|
||||
// GOTPLT-NEXT: 230450 00000000 00000000 f0022100 00000000
|
||||
// GOTPLT-NEXT: 230460 f0022100 00000000 f0022100 00000000
|
||||
// GOTPLT-NEXT: 230470 f0022100 00000000
|
||||
// GOTPLT-NEXT: 230460 f0022100 00000000 00000000 00000000
|
||||
// GOTPLT-NEXT: 230470 00000000 00000000
|
||||
|
||||
// Check that the PLTRELSZ tag does not include the IRELATIVE relocations
|
||||
// CHECK: DynamicSection [
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
// GOTPLT: Contents of section .got.plt:
|
||||
// GOTPLT-NEXT: 203430 40232000 00000000 00000000 00000000
|
||||
// GOTPLT-NEXT: 203440 00000000 00000000 06132000 00000000
|
||||
// GOTPLT-NEXT: 203450 16132000 00000000 26132000 00000000
|
||||
// GOTPLT-NEXT: 203460 36132000 00000000
|
||||
// GOTPLT-NEXT: 203450 16132000 00000000 00000000 00000000
|
||||
// GOTPLT-NEXT: 203460 00000000 00000000
|
||||
|
||||
// Check that the PLTRELSZ tag does not include the IRELATIVE relocations
|
||||
// CHECK: DynamicSection [
|
||||
|
|
Loading…
Reference in New Issue