summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Target.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/Target.h')
-rw-r--r--lld/ELF/Target.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h
index 7114f1d3549..3c78beae2c5 100644
--- a/lld/ELF/Target.h
+++ b/lld/ELF/Target.h
@@ -11,6 +11,7 @@
#define LLD_ELF_TARGET_H
#include "llvm/ADT/StringRef.h"
+#include "llvm/Object/ELF.h"
#include <memory>
@@ -31,7 +32,9 @@ public:
unsigned getPltZeroEntrySize() const { return PltZeroEntrySize; }
unsigned getPltEntrySize() const { return PltEntrySize; }
bool supportsLazyRelocations() const { return LazyRelocations; }
+ unsigned getGotHeaderEntriesNum() const { return GotHeaderEntriesNum; }
virtual unsigned getPLTRefReloc(unsigned Type) const;
+ virtual void writeGotHeaderEntries(uint8_t *Buf) const;
virtual void writeGotPltEntry(uint8_t *Buf, uint64_t Plt) const = 0;
virtual void writePltZeroEntry(uint8_t *Buf, uint64_t GotEntryAddr,
uint64_t PltEntryAddr) const = 0;
@@ -66,11 +69,15 @@ protected:
unsigned RelativeReloc;
unsigned PltEntrySize = 8;
unsigned PltZeroEntrySize = 0;
+ unsigned GotHeaderEntriesNum = 0;
bool LazyRelocations = false;
};
uint64_t getPPC64TocBase();
+template <class ELFT>
+typename llvm::object::ELFFile<ELFT>::uintX_t getMipsGpAddr();
+
extern std::unique_ptr<TargetInfo> Target;
TargetInfo *createTarget();
}
OpenPOWER on IntegriCloud