aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/patches/patch-24-llvm-r213890-ppc-eh_frame.diff
diff options
context:
space:
mode:
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.diff21
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 000000000000..9a4881feb737
--- /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