mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 18:06:49 +00:00
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:
parent
8bb51ef6d2
commit
4cbcee1618
@ -47,6 +47,8 @@ protected:
|
||||
unsigned FDEEncoding;
|
||||
unsigned FDECFIEncoding;
|
||||
unsigned TTypeEncoding;
|
||||
// Section flags for eh_frame
|
||||
unsigned EHSectionFlags;
|
||||
|
||||
/// TextSection - Section directive for standard text.
|
||||
///
|
||||
|
@ -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 =
|
||||
|
Loading…
Reference in New Issue
Block a user