From 937aa19a4b46d2177724d019e08a607ab8da3ce2 Mon Sep 17 00:00:00 2001 From: Shankar Easwaran Date: Thu, 28 Feb 2013 18:36:34 +0000 Subject: [PATCH] [ELF] Set header flags to 0 by default llvm-svn: 176279 --- lld/lib/ReaderWriter/ELF/DefaultLayout.h | 7 +++++-- lld/lib/ReaderWriter/ELF/HeaderChunks.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lld/lib/ReaderWriter/ELF/DefaultLayout.h b/lld/lib/ReaderWriter/ELF/DefaultLayout.h index 93c23f3fbd87..0719b41b9642 100644 --- a/lld/lib/ReaderWriter/ELF/DefaultLayout.h +++ b/lld/lib/ReaderWriter/ELF/DefaultLayout.h @@ -566,7 +566,10 @@ template void DefaultLayout::assignSectionsToSegments() { section->setSegmentType(segmentType); StringRef segmentName = section->segmentKindToStr(); - int64_t sectionFlag = msi->flags(); + int64_t lookupSectionFlag = msi->flags(); + if (!(lookupSectionFlag & llvm::ELF::SHF_WRITE)) + lookupSectionFlag &= ~llvm::ELF::SHF_EXECINSTR; + lookupSectionFlag &= ~(llvm::ELF::SHF_STRINGS | llvm::ELF::SHF_MERGE); Segment *segment; // We need a seperate segment for sections that dont have @@ -589,7 +592,7 @@ template void DefaultLayout::assignSectionsToSegments() { } // Use the flags of the merged Section for the segment - const SegmentKey key("PT_LOAD", sectionFlag); + const SegmentKey key("PT_LOAD", lookupSectionFlag); const std::pair *> currentSegment(key, nullptr); std::pair segmentInsert( diff --git a/lld/lib/ReaderWriter/ELF/HeaderChunks.h b/lld/lib/ReaderWriter/ELF/HeaderChunks.h index 561d3f1bf594..4c81b12d6812 100644 --- a/lld/lib/ReaderWriter/ELF/HeaderChunks.h +++ b/lld/lib/ReaderWriter/ELF/HeaderChunks.h @@ -72,7 +72,7 @@ Header::Header(const ELFTargetInfo &ti) e_ident(llvm::ELF::EI_MAG2, 'L'); e_ident(llvm::ELF::EI_MAG3, 'F'); e_ehsize(sizeof(Elf_Ehdr)); - e_flags(2); + e_flags(0); } template