diff options
Diffstat (limited to 'contrib/llvm/patches/patch-24-llvm-r213890-ppc-eh_frame.diff')
-rw-r--r-- | contrib/llvm/patches/patch-24-llvm-r213890-ppc-eh_frame.diff | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/contrib/llvm/patches/patch-24-llvm-r213890-ppc-eh_frame.diff b/contrib/llvm/patches/patch-24-llvm-r213890-ppc-eh_frame.diff new file mode 100644 index 0000000..9a4881f --- /dev/null +++ b/contrib/llvm/patches/patch-24-llvm-r213890-ppc-eh_frame.diff @@ -0,0 +1,21 @@ +Pull in r213890 from upstream llvm trunk (by Jörg Sonnenberger): + + Use the same .eh_frame encoding for 32bit PPC as on i386. + +This fixes DT_TEXTREL errors when linking C++ objects using exceptions +on PowerPC. + +Introduced here: http://svnweb.freebsd.org/changeset/base/276300 + +Index: lib/MC/MCObjectFileInfo.cpp +=================================================================== +--- lib/MC/MCObjectFileInfo.cpp ++++ lib/MC/MCObjectFileInfo.cpp +@@ -287,6 +287,7 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Tri + if (Ctx->getAsmInfo()->getExceptionHandlingType() == ExceptionHandling::ARM) + break; + // Fallthrough if not using EHABI ++ case Triple::ppc: + case Triple::x86: + PersonalityEncoding = (RelocM == Reloc::PIC_) + ? dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4 |