Revision: 140577 https://trac.macports.org/changeset/140577 Author: eborisch@macports.org Date: 2015-09-23 19:38:52 -0700 (Wed, 23 Sep 2015) Log Message: ----------- llvm/clang-3.[78]: Update 3.7 to release; update 3.8 to latest SVN. Add +openmp variant (makes "clang-mp-3.[78] -fopenmp ..." work) to 3.7 and 3.8. See #48759. Modified Paths: -------------- trunk/dports/lang/llvm-3.7/Portfile trunk/dports/lang/llvm-3.8/Portfile Added Paths: ----------- trunk/dports/lang/llvm-3.7/files/openmp-locations.patch trunk/dports/lang/llvm-3.8/files/openmp-locations.patch Modified: trunk/dports/lang/llvm-3.7/Portfile =================================================================== --- trunk/dports/lang/llvm-3.7/Portfile 2015-09-24 01:18:36 UTC (rev 140576) +++ trunk/dports/lang/llvm-3.7/Portfile 2015-09-24 02:38:52 UTC (rev 140577) @@ -3,6 +3,7 @@ PortSystem 1.0 PortGroup select 1.0 PortGroup compiler_blacklist_versions 1.0 +PortGroup active_variants 1.1 set llvm_version 3.7 set llvm_version_no_dot 37 @@ -62,26 +63,25 @@ default_variants +analyzer } -fetch.type svn -svn.revision 246024 +#fetch.type svn +#svn.revision 246024 -set compiler_rt_rev ${svn.revision} -set libcxx_rev ${svn.revision} -set clang-modernize_rev ${svn.revision} -version ${llvm_version}-r${svn.revision} +#set compiler_rt_rev ${svn.revision} +#set libcxx_rev ${svn.revision} +#set clang-modernize_rev ${svn.revision} +#version ${llvm_version}-r${svn.revision} #worksrcdir trunk #svn.url https://llvm.org/svn/llvm-project/llvm/trunk -worksrcdir release_${llvm_version_no_dot} -svn.url https://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot} -default_variants-append +assertions +#worksrcdir release_${llvm_version_no_dot} +#svn.url https://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot} +#default_variants-append +assertions -#version ${llvm_version}.0 -#epoch 1 -#master_sites http://llvm.org/releases/${version} -#use_xz yes -#extract.suffix .tar.xz -#distfiles llvm-${version}.src${extract.suffix} -#worksrcdir llvm-${version}.src +version ${llvm_version}.0 +epoch 1 +master_sites http://llvm.org/releases/${version} +use_xz yes +distfiles llvm-${version}.src${extract.suffix} +worksrcdir llvm-${version}.src if {${distfiles} ne ""} { if {${subport} eq "llvm-${llvm_version}"} { @@ -93,6 +93,26 @@ } } +checksums \ + llvm-3.7.0.src.tar.xz \ + rmd160 1e47ce5e07df267a921c60e526673b2908ffb99b \ + sha256 ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153 \ + cfe-3.7.0.src.tar.xz \ + rmd160 b59a82dcc44d16f1152f5204584bbc47861d223e \ + sha256 4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc \ + compiler-rt-3.7.0.src.tar.xz \ + rmd160 94cc920bce769e8b6234376ce8c517cdccd96e0c \ + sha256 227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b \ + libcxx-3.7.0.src.tar.xz \ + rmd160 d78a0948483ff593ab2c39dc5ca745b4d08e8620 \ + sha256 c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e \ + clang-tools-extra-3.7.0.src.tar.xz \ + rmd160 fda3871341bfbcfc28d8a368dd56ff8cf60b4987 \ + sha256 8ae8a0a3a96b7a700412d67df0af172cb2fc1326beec575fcc0f71d2e72709cd \ + polly-3.7.0.src.tar.xz \ + rmd160 6c26e90141608c2c4e883faf36c74c35d3ee3d3e \ + sha256 3e5f3f4dc141c7d25b36b910d48c7da74ecc92f10cea5b568c909623d6067edf + patch.pre_args -p1 patchfiles \ 0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch \ @@ -326,6 +346,14 @@ destroot.args-append OVERRIDE_libdir=${sub_prefix}/lib } } elseif {${subport} eq "clang-${llvm_version}"} { + if {[variant_isset assertions]} { + # Need to match llvm +-assertions + require_active_variants port:llvm-${llvm_version} assertions + } else { + # Need to match llvm +-assertions + require_active_variants port:llvm-${llvm_version} {} assertions + } + variant analyzer description {Install clang static analyzer} { depends_run-append port:perl5 @@ -360,7 +388,18 @@ } } + variant openmp description {Use MacPorts' provided libomp with -fopenmp} { + configure.args-append \ + --with-clang-default-openmp-runtime=libomp + depends_lib-append port:libomp + patchfiles-append openmp-locations.patch + post-patch { + reinplace "s|@@PREFIX@@|${prefix}|" \ + ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp + } + } + post-patch { reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-bbedit.applescript \ Added: trunk/dports/lang/llvm-3.7/files/openmp-locations.patch =================================================================== --- trunk/dports/lang/llvm-3.7/files/openmp-locations.patch (rev 0) +++ trunk/dports/lang/llvm-3.7/files/openmp-locations.patch 2015-09-24 02:38:52 UTC (rev 140577) @@ -0,0 +1,53 @@ +--- orig/tools/clang/lib/Driver/Tools.cpp 2015-09-03 11:39:15.000000000 -0500 ++++ fixed/tools/clang/lib/Driver/Tools.cpp 2015-09-03 11:44:09.000000000 -0500 +@@ -4064,6 +4064,8 @@ + case OMPRT_OMP: + case OMPRT_IOMP5: + // Clang can generate useful OpenMP code for these two runtime libraries. ++ // Automatically find MacPorts' omp.h ++ CmdArgs.push_back("-I@@PREFIX@@/include/libomp"); + CmdArgs.push_back("-fopenmp"); + + // If no option regarding the use of TLS in OpenMP codegeneration is +@@ -6531,12 +6533,18 @@ + options::OPT_fno_openmp, false)) { + switch (getOpenMPRuntime(getToolChain(), Args)) { + case OMPRT_OMP: ++ // Automatically find MacPorts' libomp ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lomp"); + break; + case OMPRT_GOMP: ++ // Automatically find MacPorts' libgomp (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lgomp"); + break; + case OMPRT_IOMP5: ++ // Automatically find MacPorts' libiomp5 (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-liomp5"); + break; + case OMPRT_Unknown: +@@ -8248,9 +8256,13 @@ + // Also link the particular OpenMP runtimes. + switch (getOpenMPRuntime(ToolChain, Args)) { + case OMPRT_OMP: ++ // Automatically find MacPorts' libomp ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lomp"); + break; + case OMPRT_GOMP: ++ // Automatically find MacPorts' libgomp (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lgomp"); + + // FIXME: Exclude this for platforms with libgomp that don't require +@@ -8258,6 +8270,8 @@ + CmdArgs.push_back("-lrt"); + break; + case OMPRT_IOMP5: ++ // Automatically find MacPorts' libiomp5 (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-liomp5"); + break; + case OMPRT_Unknown: Modified: trunk/dports/lang/llvm-3.8/Portfile =================================================================== --- trunk/dports/lang/llvm-3.8/Portfile 2015-09-24 01:18:36 UTC (rev 140576) +++ trunk/dports/lang/llvm-3.8/Portfile 2015-09-24 02:38:52 UTC (rev 140577) @@ -3,6 +3,7 @@ PortSystem 1.0 PortGroup select 1.0 PortGroup compiler_blacklist_versions 1.0 +PortGroup active_variants 1.1 set llvm_version 3.8 set llvm_version_no_dot 38 @@ -326,6 +327,14 @@ destroot.args-append OVERRIDE_libdir=${sub_prefix}/lib } } elseif {${subport} eq "clang-${llvm_version}"} { + if {[variant_isset assertions]} { + # Need to match llvm +-assertions + require_active_variants port:llvm-${llvm_version} assertions + } else { + # Need to match llvm +-assertions + require_active_variants port:llvm-${llvm_version} {} assertions + } + variant analyzer description {Install clang static analyzer} { depends_run-append port:perl5 @@ -360,7 +369,18 @@ } } + variant openmp description {Use MacPorts' provided libomp with -fopenmp} { + configure.args-append \ + --with-clang-default-openmp-runtime=libomp + depends_lib-append port:libomp + patchfiles-append openmp-locations.patch + post-patch { + reinplace "s|@@PREFIX@@|${prefix}|" \ + ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp + } + } + post-patch { reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-bbedit.applescript \ Added: trunk/dports/lang/llvm-3.8/files/openmp-locations.patch =================================================================== --- trunk/dports/lang/llvm-3.8/files/openmp-locations.patch (rev 0) +++ trunk/dports/lang/llvm-3.8/files/openmp-locations.patch 2015-09-24 02:38:52 UTC (rev 140577) @@ -0,0 +1,53 @@ +--- orig/tools/clang/lib/Driver/Tools.cpp 2015-09-03 11:39:15.000000000 -0500 ++++ fixed/tools/clang/lib/Driver/Tools.cpp 2015-09-03 11:44:09.000000000 -0500 +@@ -4064,6 +4064,8 @@ + case OMPRT_OMP: + case OMPRT_IOMP5: + // Clang can generate useful OpenMP code for these two runtime libraries. ++ // Automatically find MacPorts' omp.h ++ CmdArgs.push_back("-I@@PREFIX@@/include/libomp"); + CmdArgs.push_back("-fopenmp"); + + // If no option regarding the use of TLS in OpenMP codegeneration is +@@ -6531,12 +6533,18 @@ + options::OPT_fno_openmp, false)) { + switch (getOpenMPRuntime(getToolChain(), Args)) { + case OMPRT_OMP: ++ // Automatically find MacPorts' libomp ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lomp"); + break; + case OMPRT_GOMP: ++ // Automatically find MacPorts' libgomp (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lgomp"); + break; + case OMPRT_IOMP5: ++ // Automatically find MacPorts' libiomp5 (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-liomp5"); + break; + case OMPRT_Unknown: +@@ -8248,9 +8256,13 @@ + // Also link the particular OpenMP runtimes. + switch (getOpenMPRuntime(ToolChain, Args)) { + case OMPRT_OMP: ++ // Automatically find MacPorts' libomp ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lomp"); + break; + case OMPRT_GOMP: ++ // Automatically find MacPorts' libgomp (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-lgomp"); + + // FIXME: Exclude this for platforms with libgomp that don't require +@@ -8258,6 +8270,8 @@ + CmdArgs.push_back("-lrt"); + break; + case OMPRT_IOMP5: ++ // Automatically find MacPorts' libiomp5 (libomp) ++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp"); + CmdArgs.push_back("-liomp5"); + break; + case OMPRT_Unknown: