Revision: 141235 https://trac.macports.org/changeset/141235 Author: jeremyhu@macports.org Date: 2015-10-13 00:10:18 -0700 (Tue, 13 Oct 2015) Log Message: ----------- llvm-gcc42: Fix build failure with clang (#49241) Modified Paths: -------------- trunk/dports/lang/llvm-gcc42/Portfile Added Paths: ----------- trunk/dports/lang/llvm-gcc42/files/clang-optimization.patch Modified: trunk/dports/lang/llvm-gcc42/Portfile =================================================================== --- trunk/dports/lang/llvm-gcc42/Portfile 2015-10-13 06:57:08 UTC (rev 141234) +++ trunk/dports/lang/llvm-gcc42/Portfile 2015-10-13 07:10:18 UTC (rev 141235) @@ -6,7 +6,7 @@ name llvm-gcc42 version 2336.11 -revision 2 +revision 3 set gcc_version 4.2.1 categories lang platforms darwin @@ -54,10 +54,6 @@ set objroot ${workpath}/objroot set symroot ${workpath}/symroot -# https://trac.macports.org/ticket/42899 -# TODO: Fix it to build with newer clang -compiler.blacklist-append {clang > 503} macports-clang-3.4 macports-clang-3.5 macports-clang-3.6 macports-clang-3.7 - # Don't compile with self compiler.blacklist-append macports-llvm-gcc-4.2 @@ -82,6 +78,10 @@ autogen.patch \ fixincludes.patch +if {[string match *clang* ${configure.cc}]} { + patchfiles-append clang-optimization.patch +} + post-extract { xinstall -W ${filespath} build_gcc ${worksrcpath} } @@ -130,6 +130,13 @@ if {[string match "*clang*" ${configure.compiler}]} { reinplace "s:--enable-werror : :" ${worksrcpath}/build_gcc } + + # ltmain.sh notes 'On all known operating systems, these are identical', and -module has gone + # away with Apple's clang-3.4 + if {[string match *clang* ${configure.cc}]} { + reinplace "s:module:export_dynamic:" ${worksrcpath}/llvmCore/Makefile.rules + reinplace "s:-no-undefined::" ${worksrcpath}/llvmCore/tools/lto/Makefile + } } compiler.cpath /usr/include Added: trunk/dports/lang/llvm-gcc42/files/clang-optimization.patch =================================================================== --- trunk/dports/lang/llvm-gcc42/files/clang-optimization.patch (rev 0) +++ trunk/dports/lang/llvm-gcc42/files/clang-optimization.patch 2015-10-13 07:10:18 UTC (rev 141235) @@ -0,0 +1,38 @@ +--- llvmCore/lib/CodeGen/MachineSSAUpdater.cpp.orig 2015-10-12 19:33:17.000000000 -0400 ++++ llvmCore/lib/CodeGen/MachineSSAUpdater.cpp 2015-10-12 19:34:31.000000000 -0400 +@@ -38,7 +38,7 @@ + return *static_cast<IncomingPredInfoTy*>(IPI); + } + +- ++#pragma clang optimize off + MachineSSAUpdater::MachineSSAUpdater(MachineFunction &MF, + SmallVectorImpl<MachineInstr*> *NewPHI) + : AV(0), IPI(0), InsertedPHIs(NewPHI) { +@@ -50,6 +50,7 @@ + delete &getAvailableVals(AV); + delete &getIncomingPredInfo(IPI); + } ++#pragma clang optimize on + + /// Initialize - Reset this object to get ready for a new set of SSA + /// updates. ProtoValue is the value used to name PHI nodes. +--- llvmCore/lib/Transforms/Utils/SSAUpdater.cpp.orig 2015-10-12 19:34:50.000000000 -0400 ++++ llvmCore/lib/Transforms/Utils/SSAUpdater.cpp 2015-10-12 19:35:24.000000000 -0400 +@@ -32,7 +32,7 @@ + return *static_cast<IncomingPredInfoTy*>(IPI); + } + +- ++#pragma clang optimize off + SSAUpdater::SSAUpdater(SmallVectorImpl<PHINode*> *NewPHI) + : AV(0), PrototypeValue(0), IPI(0), InsertedPHIs(NewPHI) {} + +@@ -40,6 +40,7 @@ + delete &getAvailableVals(AV); + delete &getIncomingPredInfo(IPI); + } ++#pragma clang optimize on + + /// Initialize - Reset this object to get ready for a new set of SSA + /// updates. ProtoValue is the value used to name PHI nodes.