summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h')
-rw-r--r--lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h b/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h
index b2eb496a8c5..fb5fbddff12 100644
--- a/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h
+++ b/lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h
@@ -43,6 +43,23 @@ public:
order);
}
+ StringRef getSectionName(const DefinedAtom *da) const override {
+ return llvm::StringSwitch<StringRef>(da->customSectionName())
+ .StartsWith(".ctors", ".ctors")
+ .StartsWith(".dtors", ".dtors")
+ .Default(TargetLayout<ELFType>::getSectionName(da));
+ }
+
+ Layout::SegmentType getSegmentType(Section<ELFType> *section) const override {
+ switch (section->order()) {
+ case DefaultLayout<ELFType>::ORDER_CTORS:
+ case DefaultLayout<ELFType>::ORDER_DTORS:
+ return llvm::ELF::PT_LOAD;
+ default:
+ return TargetLayout<ELFType>::getSegmentType(section);
+ }
+ }
+
/// \brief GP offset relative to .got section.
uint64_t getGPOffset() const { return 0x7FF0; }
OpenPOWER on IntegriCloud