[140577] trunk/dports/lang

eborisch at macports.org eborisch at macports.org
Wed Sep 23 19:38:52 PDT 2015


Revision: 140577
          https://trac.macports.org/changeset/140577
Author:   eborisch at 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:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150923/77603bf2/attachment.html>


More information about the macports-changes mailing list