aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-08-27 18:22:26 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2021-08-27 18:22:26 +0000
commite6d23ad3c1ce370183de89a6013e55085de3510b (patch)
tree5118d844edc149ae8b28223f2ed8bc158bed6e51
parent2ed037639e9b536d23f997772c4bd23394ceb666 (diff)
downloadports-e6d23ad3c1ce370183de89a6013e55085de3510b.tar.gz
ports-e6d23ad3c1ce370183de89a6013e55085de3510b.zip
devel/llvm12: fix for broken binaries generated by llvm12
Selectively reverts LLVM commit 2518433f861fcb877d0a7bdd9aec1aec1f77505a that was pointed as the source of regression on LLVM12. This affects powerpc64*, making binaries crash with segmentation fault due to bad code generation around "__stack_chk_guard" Root cause and/or proper fix is under investigation: https://bugs.llvm.org/show_bug.cgi?id=51590 Submitted by: adalava Differential review (for base): https://reviews.freebsd.org/D31698
-rw-r--r--devel/llvm12/Makefile2
-rw-r--r--devel/llvm12/files/patch-llvm_lib_CodeGen_TargetLoweringBase.cpp12
2 files changed, 13 insertions, 1 deletions
diff --git a/devel/llvm12/Makefile b/devel/llvm12/Makefile
index 501f9edff5e5..1300cca4c9e6 100644
--- a/devel/llvm12/Makefile
+++ b/devel/llvm12/Makefile
@@ -1,6 +1,6 @@
PORTNAME= llvm
DISTVERSION= 12.0.1
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= devel lang
MASTER_SITES= https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \
https://${PRE_}releases.llvm.org/${LLVM_RELEASE}/${RCDIR}
diff --git a/devel/llvm12/files/patch-llvm_lib_CodeGen_TargetLoweringBase.cpp b/devel/llvm12/files/patch-llvm_lib_CodeGen_TargetLoweringBase.cpp
new file mode 100644
index 000000000000..9c1603198256
--- /dev/null
+++ b/devel/llvm12/files/patch-llvm_lib_CodeGen_TargetLoweringBase.cpp
@@ -0,0 +1,12 @@
+--- llvm/lib/CodeGen/TargetLoweringBase.cpp.orig 2021-08-27 13:06:05 UTC
++++ llvm/lib/CodeGen/TargetLoweringBase.cpp
+@@ -1961,7 +1961,8 @@ void TargetLoweringBase::insertSSPDeclarations(Module
+ GlobalVariable::ExternalLinkage, nullptr,
+ "__stack_chk_guard");
+ if (TM.getRelocationModel() == Reloc::Static &&
+- !TM.getTargetTriple().isWindowsGNUEnvironment())
++ !TM.getTargetTriple().isWindowsGNUEnvironment() &&
++ !(TM.getTargetTriple().isPPC64() && TM.getTargetTriple().isOSFreeBSD()))
+ GV->setDSOLocal(true);
+ }
+ }