[SubZero] Generate MIPS.abiflags section
The patch generates MIPS.abiflags section. This section contains a
versioned data structure with essential information required for
loader to determine the requirements of the application.
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/2471883005 .
Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
diff --git a/src/IceELFObjectWriter.cpp b/src/IceELFObjectWriter.cpp
index 2b32e23..4663b71 100644
--- a/src/IceELFObjectWriter.cpp
+++ b/src/IceELFObjectWriter.cpp
@@ -301,6 +301,21 @@
} // end of anonymous namespace
+void ELFObjectWriter::writeTargetRODataSection(const std::string &Name,
+ Elf64_Word ShType,
+ Elf64_Xword ShFlags,
+ Elf64_Xword ShAddralign,
+ Elf64_Xword ShEntsize,
+ const llvm::StringRef &SecData) {
+ TimerMarker Timer(TimerStack::TT_writeELF, &Ctx);
+ assert(!SectionNumbersAssigned);
+ ELFDataSection *Section = createSection<ELFDataSection>(
+ Name, ShType, ShFlags, ShAddralign, ShEntsize);
+ Section->setFileOffset(alignFileOffset(ShAddralign));
+ Section->appendData(Str, llvm::StringRef(SecData.data(), SecData.size()));
+ RODataSections.push_back(Section);
+}
+
void ELFObjectWriter::writeDataSection(const VariableDeclarationList &Vars,
FixupKind RelocationKind,
const std::string &SectionSuffix,