diff options
author | Piotr Kubaj <pkubaj@FreeBSD.org> | 2021-08-27 18:22:26 +0000 |
---|---|---|
committer | Piotr Kubaj <pkubaj@FreeBSD.org> | 2021-08-27 18:22:26 +0000 |
commit | e6d23ad3c1ce370183de89a6013e55085de3510b (patch) | |
tree | 5118d844edc149ae8b28223f2ed8bc158bed6e51 | |
parent | 2ed037639e9b536d23f997772c4bd23394ceb666 (diff) | |
download | ports-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/Makefile | 2 | ||||
-rw-r--r-- | devel/llvm12/files/patch-llvm_lib_CodeGen_TargetLoweringBase.cpp | 12 |
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); + } + } |