COFF: Add 'IMAGE_SCN_CNT_INITIALIZED_DATA' to all DWARF sections

The CodeView debug info section, .debug$S, also has this set.  MinGW
sets this bit for their DWARF sections as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230156 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Majnemer 2015-02-22 02:35:27 +00:00
parent f68ceb2e58
commit ff7a64eb3a

View File

@ -620,126 +620,151 @@ void MCObjectFileInfo::InitCOFFMCObjectFileInfo(Triple T) {
DwarfAbbrevSection = DwarfAbbrevSection =
Ctx->getCOFFSection(".debug_abbrev", Ctx->getCOFFSection(".debug_abbrev",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfInfoSection = DwarfInfoSection =
Ctx->getCOFFSection(".debug_info", Ctx->getCOFFSection(".debug_info",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfLineSection = DwarfLineSection =
Ctx->getCOFFSection(".debug_line", Ctx->getCOFFSection(".debug_line",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfFrameSection = DwarfFrameSection =
Ctx->getCOFFSection(".debug_frame", Ctx->getCOFFSection(".debug_frame",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfPubNamesSection = DwarfPubNamesSection =
Ctx->getCOFFSection(".debug_pubnames", Ctx->getCOFFSection(".debug_pubnames",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfPubTypesSection = DwarfPubTypesSection =
Ctx->getCOFFSection(".debug_pubtypes", Ctx->getCOFFSection(".debug_pubtypes",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfGnuPubNamesSection = DwarfGnuPubNamesSection =
Ctx->getCOFFSection(".debug_gnu_pubnames", Ctx->getCOFFSection(".debug_gnu_pubnames",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfGnuPubTypesSection = DwarfGnuPubTypesSection =
Ctx->getCOFFSection(".debug_gnu_pubtypes", Ctx->getCOFFSection(".debug_gnu_pubtypes",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfStrSection = DwarfStrSection =
Ctx->getCOFFSection(".debug_str", Ctx->getCOFFSection(".debug_str",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfLocSection = DwarfLocSection =
Ctx->getCOFFSection(".debug_loc", Ctx->getCOFFSection(".debug_loc",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfARangesSection = DwarfARangesSection =
Ctx->getCOFFSection(".debug_aranges", Ctx->getCOFFSection(".debug_aranges",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfRangesSection = DwarfRangesSection =
Ctx->getCOFFSection(".debug_ranges", Ctx->getCOFFSection(".debug_ranges",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfMacroInfoSection = DwarfMacroInfoSection =
Ctx->getCOFFSection(".debug_macinfo", Ctx->getCOFFSection(".debug_macinfo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfInfoDWOSection = DwarfInfoDWOSection =
Ctx->getCOFFSection(".debug_info.dwo", Ctx->getCOFFSection(".debug_info.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfTypesDWOSection = DwarfTypesDWOSection =
Ctx->getCOFFSection(".debug_types.dwo", Ctx->getCOFFSection(".debug_types.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfAbbrevDWOSection = DwarfAbbrevDWOSection =
Ctx->getCOFFSection(".debug_abbrev.dwo", Ctx->getCOFFSection(".debug_abbrev.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfStrDWOSection = DwarfStrDWOSection =
Ctx->getCOFFSection(".debug_str.dwo", Ctx->getCOFFSection(".debug_str.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfLineDWOSection = DwarfLineDWOSection =
Ctx->getCOFFSection(".debug_line.dwo", Ctx->getCOFFSection(".debug_line.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfLocDWOSection = DwarfLocDWOSection =
Ctx->getCOFFSection(".debug_loc.dwo", Ctx->getCOFFSection(".debug_loc.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfStrOffDWOSection = DwarfStrOffDWOSection =
Ctx->getCOFFSection(".debug_str_offsets.dwo", Ctx->getCOFFSection(".debug_str_offsets.dwo",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfAddrSection = DwarfAddrSection =
Ctx->getCOFFSection(".debug_addr", Ctx->getCOFFSection(".debug_addr",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfAccelNamesSection = DwarfAccelNamesSection =
Ctx->getCOFFSection(".apple_names", Ctx->getCOFFSection(".apple_names",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfAccelNamespaceSection = DwarfAccelNamespaceSection =
Ctx->getCOFFSection(".apple_namespaces", Ctx->getCOFFSection(".apple_namespaces",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfAccelTypesSection = DwarfAccelTypesSection =
Ctx->getCOFFSection(".apple_types", Ctx->getCOFFSection(".apple_types",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());
DwarfAccelObjCSection = DwarfAccelObjCSection =
Ctx->getCOFFSection(".apple_objc", Ctx->getCOFFSection(".apple_objc",
COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_MEM_DISCARDABLE |
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
COFF::IMAGE_SCN_MEM_READ, COFF::IMAGE_SCN_MEM_READ,
SectionKind::getMetadata()); SectionKind::getMetadata());