Generate the correct EH frame section types on Solaris, this time without breaking other platforms...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150819 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Chisnall
2012-02-17 17:31:15 +00:00
parent 8bb51ef6d2
commit 4cbcee1618
2 changed files with 10 additions and 1 deletions

View File

@@ -258,6 +258,13 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
}
}
// Solaris requires different flags for .eh_frame to seemingly every other
// platform.
EHSectionFlags = ELF::SHF_ALLOC;
if (T.getOS() == Triple::Solaris)
EHSectionFlags |= ELF::SHF_WRITE;
// ELF
BSSSection =
Ctx->getELFSection(".bss", ELF::SHT_NOBITS,
@@ -559,7 +566,7 @@ void MCObjectFileInfo::InitEHFrameSection() {
else if (Env == IsELF)
EHFrameSection =
Ctx->getELFSection(".eh_frame", ELF::SHT_PROGBITS,
ELF::SHF_ALLOC,
EHSectionFlags,
SectionKind::getDataRel());
else
EHFrameSection =