diff options
author | jasonliu <jasonliu.development@gmail.com> | 2019-11-22 15:36:46 +0000 |
---|---|---|
committer | jasonliu <jasonliu.development@gmail.com> | 2019-11-22 15:49:37 +0000 |
commit | af8576ff9d5a66d30ce27176aff808b688c3ec85 (patch) | |
tree | dba4bd9ac2d9b13638930528fb4af476d2c2a379 /llvm/lib/MC | |
parent | 26fa9e31f58a7ff693f3a5d8c2eb1b6a5a13b133 (diff) | |
download | bcm5719-llvm-af8576ff9d5a66d30ce27176aff808b688c3ec85.tar.gz bcm5719-llvm-af8576ff9d5a66d30ce27176aff808b688c3ec85.zip |
[XCOFF][AIX] Read-only data section object file generation
Summary:
This patch is a follow up on read-only assembly patch D70182.
It intends to enable object file generation for the read-only data section on AIX.
Reviewers: DiggerLin, daltenty
Differential Revision: https://reviews.llvm.org/D70455
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/XCOFFObjectWriter.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/MC/XCOFFObjectWriter.cpp b/llvm/lib/MC/XCOFFObjectWriter.cpp index 34f75e2ccdf..95f950465c0 100644 --- a/llvm/lib/MC/XCOFFObjectWriter.cpp +++ b/llvm/lib/MC/XCOFFObjectWriter.cpp @@ -150,6 +150,7 @@ class XCOFFObjectWriter : public MCObjectWriter { // the sections. Should have one for each set of csects that get mapped into // the same section and get handled in a 'similar' way. CsectGroup ProgramCodeCsects; + CsectGroup ReadOnlyCsects; CsectGroup DataCsects; CsectGroup FuncDSCsects; CsectGroup TOCCsects; @@ -219,7 +220,7 @@ XCOFFObjectWriter::XCOFFObjectWriter( : W(OS, support::big), TargetObjectWriter(std::move(MOTW)), Strings(StringTableBuilder::XCOFF), Text(".text", XCOFF::STYP_TEXT, /* IsVirtual */ false, - CsectGroups{&ProgramCodeCsects}), + CsectGroups{&ProgramCodeCsects, &ReadOnlyCsects}), Data(".data", XCOFF::STYP_DATA, /* IsVirtual */ false, CsectGroups{&DataCsects, &FuncDSCsects, &TOCCsects}), BSS(".bss", XCOFF::STYP_BSS, /* IsVirtual */ true, @@ -245,6 +246,10 @@ CsectGroup &XCOFFObjectWriter::getCsectGroup(const MCSectionXCOFF *MCSec) { assert(XCOFF::XTY_SD == MCSec->getCSectType() && "Only an initialized csect can contain program code."); return ProgramCodeCsects; + case XCOFF::XMC_RO: + assert(XCOFF::XTY_SD == MCSec->getCSectType() && + "Only an initialized csect can contain read only data."); + return ReadOnlyCsects; case XCOFF::XMC_RW: if (XCOFF::XTY_CM == MCSec->getCSectType()) return BSSCsects; |