mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-02 16:36:40 +00:00
Generate the correct EH frame section types on Solaris, this time without breaking other platforms...
llvm-svn: 150819
This commit is contained in:
parent
d237b9b330
commit
57bacb511d
@ -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