summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Target.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h
index a2a0f58ebec..5b7af1c7f08 100644
--- a/lld/ELF/Target.h
+++ b/lld/ELF/Target.h
@@ -42,8 +42,13 @@ public:
virtual void writeGotHeader(uint8_t *Buf) const;
virtual void writeGotPltHeader(uint8_t *Buf) const;
virtual void writeGotPlt(uint8_t *Buf, uint64_t Plt) const = 0;
+
+ // If lazy binding is supported, the first entry of the PLT has code
+ // to call the dynamic linker to resolve PLT entries the first time
+ // they are called. This function writes that code.
virtual void writePltZero(uint8_t *Buf, uint64_t GotEntryAddr,
uint64_t PltEntryAddr) const = 0;
+
virtual void writePlt(uint8_t *Buf, uint64_t GotAddr, uint64_t GotEntryAddr,
uint64_t PltEntryAddr, int32_t Index,
unsigned RelOff) const = 0;
OpenPOWER on IntegriCloud