[151991] trunk/dports/lang

jeremyhu at macports.org jeremyhu at macports.org
Thu Aug 25 15:42:32 PDT 2016


Revision: 151991
          https://trac.macports.org/changeset/151991
Author:   jeremyhu at macports.org
Date:     2016-08-25 15:42:32 -0700 (Thu, 25 Aug 2016)
Log Message:
-----------
llvm-devel: New port tracking llvm trunk

Modified Paths:
--------------
    trunk/dports/lang/llvm-3.3/Portfile
    trunk/dports/lang/llvm-3.4/Portfile
    trunk/dports/lang/llvm-3.5/Portfile
    trunk/dports/lang/llvm-3.6/Portfile
    trunk/dports/lang/llvm-3.7/Portfile
    trunk/dports/lang/llvm-3.8/Portfile
    trunk/dports/lang/llvm-3.9/Portfile

Added Paths:
-----------
    trunk/dports/lang/llvm-devel/
    trunk/dports/lang/llvm-devel/Portfile
    trunk/dports/lang/llvm-devel/files/
    trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
    trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
    trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
    trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
    trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
    trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch
    trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
    trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
    trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
    trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch
    trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
    trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
    trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
    trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
    trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch
    trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch
    trunk/dports/lang/llvm-devel/files/llvm-bin
    trunk/dports/lang/llvm-devel/files/mp-clang-devel
    trunk/dports/lang/llvm-devel/files/mp-llvm-devel
    trunk/dports/lang/llvm-devel/files/openmp-locations.patch

Modified: trunk/dports/lang/llvm-3.3/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.3/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.3/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -176,7 +176,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.3 3.4 3.5 3.6 3.7 3.8} {
+foreach ver {3.3 3.4 3.5 3.6 3.7 3.8 3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Modified: trunk/dports/lang/llvm-3.4/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.4/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.4/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -222,7 +222,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.4 3.5 3.6 3.7 3.8} {
+foreach ver {3.4 3.5 3.6 3.7 3.8 3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Modified: trunk/dports/lang/llvm-3.5/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.5/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.5/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -208,7 +208,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.5 3.6 3.7 3.8} {
+foreach ver {3.5 3.6 3.7 3.8 3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Modified: trunk/dports/lang/llvm-3.6/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.6/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.6/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -197,7 +197,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.6 3.7 3.8} {
+foreach ver {3.6 3.7 3.8 3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Modified: trunk/dports/lang/llvm-3.7/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.7/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.7/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -200,7 +200,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.7 3.8} {
+foreach ver {3.7 3.8 3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Modified: trunk/dports/lang/llvm-3.8/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.8/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.8/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -232,7 +232,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.8} {
+foreach ver {3.8 3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Modified: trunk/dports/lang/llvm-3.9/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.9/Portfile	2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.9/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -210,7 +210,7 @@
 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
-foreach ver {3.8} {
+foreach ver {3.9 devel} {
     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }

Added: trunk/dports/lang/llvm-devel/Portfile
===================================================================
--- trunk/dports/lang/llvm-devel/Portfile	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/Portfile	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,413 @@
+# $Id$
+
+# TODO:
+#  * Update clang subport to build against installed llvm
+
+PortSystem              1.0
+PortGroup select        1.0
+PortGroup compiler_blacklist_versions 1.0
+PortGroup active_variants 1.1
+PortGroup cmake         1.0
+
+set llvm_version        devel
+set llvm_version_no_dot devel
+set clang_executable_version 4.0
+name                    llvm-${llvm_version}
+revision                0
+subport                 clang-${llvm_version} {}
+set suffix              mp-${llvm_version}
+set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
+dist_subdir             llvm
+categories              lang
+platforms               darwin
+license                 NCSA
+maintainers             jeremyhu larryv
+
+if {${subport} eq "llvm-${llvm_version}"} {
+    homepage            http://llvm.org/
+    description         llvm is a next generation compiler infrastructure
+    long_description    The LLVM Core libraries provide a modern source- and \
+                        target-independent optimizer, along with code \
+                        generation support for many popular CPUs (as well as \
+                        some less common ones!) These libraries are built \
+                        around a well specified code representation known as \
+                        the LLVM intermediate representation ("LLVM IR").
+
+    depends_lib         port:libedit port:libffi port:ncurses port:zlib
+    depends_run         bin:perl:perl5 port:llvm_select
+
+    # 3.2.6's install_name_tool doesn't support load commands we might see with newer clang+ld64
+    # 4.3 is just a guess here and should be updated if there are additional reports with other Xcode versions
+    if {[vercmp $xcodeversion 4.3] < 0 && [string match "*macports*" ${configure.compiler}]} {
+        depends_build-append port:cctools
+    }
+} elseif {${subport} eq "clang-${llvm_version}"} {
+    homepage            http://clang.llvm.org/
+    description         C, C++, Objective C and Objective C++ compiler
+    long_description    Clang is an "LLVM native" C/C++/Objective-C compiler, \
+                        which aims to deliver amazingly fast compiles (e.g. \
+                        about 3x faster than GCC when compiling Objective-C \
+                        code in a debug configuration), extremely useful error \
+                        and warning messages and to provide a platform for \
+                        building great source level tools. The included Clang \
+                        Static Analyzer is a tool that automatically finds bugs in \
+                        your code, and is a great example of the sort of tool \
+                        that can be built using the Clang frontend as a \
+                        library to parse C/C++ code.
+
+    depends_lib         port:libxml2 port:libomp port:llvm-${llvm_version} port:python27
+    depends_run         port:clang_select port:ld64
+    depends_extract     bin:svn:subversion
+    depends_build-append port:cctools
+    depends_skip_archcheck-append cctools ld64 subversion
+
+    # Clang doesn't actually use any of these, but the LLVM makefile
+    # system overlinks its binaries. Remove (or convert to build deps?)
+    # after #46040 is resolved.
+    depends_lib-append  port:libedit port:libffi port:ncurses port:zlib
+
+    default_variants    +analyzer
+}
+
+fetch.type              svn
+svn.revision            279763
+
+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
+default_variants-append +debug
+
+#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
+
+if {${distfiles} ne ""} {
+    if {${subport} eq "llvm-${llvm_version}"} {
+        if {[variant_isset polly]} {
+            distfiles-append     polly-${version}.src${extract.suffix}
+        }
+    } elseif {${subport} eq "clang-${llvm_version}"} {
+        distfiles-append     cfe-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix} clang-tools-extra-${version}.src${extract.suffix}
+    }
+}
+
+patch.pre_args  -p1
+patchfiles \
+        0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch \
+        0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch \
+        0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
+
+if {${subport} eq "clang-${llvm_version}"} {
+    patchfiles-append \
+        1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
+        1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch \
+        1003-Default-to-ppc7400-for-OSX-10.5.patch \
+        1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch \
+        1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch \
+        2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch \
+        3001-buildit-build-fix-for-Leopard.patch \
+        3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch \
+        3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch \
+        3004-Fix-missing-long-long-math-prototypes-when-using-the.patch \
+        3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
+        openmp-locations.patch
+
+    # https://llvm.org/bugs/show_bug.cgi?id=25681
+    if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
+        # Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
+        # Cannot set cxxflags due to https://llvm.org/bugs/show_bug.cgi?id=25904
+        #configure.cxxflags-append -DSVN_REVISION='"${svn.revision}"'
+
+        post-patch {
+            reinplace "1 i \\                             
+                #define SVN_REVISION \"${svn.revision}\"
+            " ${worksrcpath}/tools/clang/lib/Basic/Version.cpp
+        }
+    }
+}
+
+configure.post_args         ../${worksrcdir}
+default configure.dir       {${workpath}/build}
+default build.dir           {${workpath}/build}
+
+# https://llvm.org/bugs/show_bug.cgi?id=25664
+configure.ldflags-append    -Wl,-rpath, at loader_path
+
+# https://trac.macports.org/ticket/51542
+configure.ldflags-append    -Wl,-rpath, at loader_path/
+
+configure.args-append \
+    -DLLVM_LINK_LLVM_DYLIB=ON \
+    -DCMAKE_INSTALL_PREFIX="${sub_prefix}" \
+    -DLLVM_ENABLE_ASSERTIONS=OFF \
+    -DLLVM_ENABLE_RTTI=ON \
+    -DLLVM_INCLUDE_TESTS=OFF \
+    -DLLVM_INCLUDE_EXAMPLES=OFF \
+    -DLLVM_ENABLE_FFI=ON \
+    -DLLVM_BINDINGS_LIST=none \
+    -DFFI_INCLUDE_DIR=${prefix}/include \
+    -DFFI_LIBRARY_DIR=${prefix}/lib
+
+if {${subport} eq "llvm-${llvm_version}"} {
+    select.group        llvm
+    select.file         ${filespath}/mp-${subport}
+} elseif {${subport} eq "clang-${llvm_version}"} {
+    select.group        clang
+    select.file         ${filespath}/mp-${subport}
+
+    configure.args-append \
+        -DCLANG_INCLUDE_TESTS=OFF \
+        -DCLANG_ENABLE_STATIC_ANALYZER=OFF \
+        -DLLVM_BUILD_RUNTIME=ON \
+        -DLIBCXX_ENABLE_SHARED=OFF \
+        -DLIBCXX_INSTALL_LIBRARY=OFF
+
+    # TODO: libc++ shouldn't be built at all.
+    #       https://llvm.org/bugs/show_bug.cgi?id=25666
+
+    if {${os.major} <= 12} {
+        # We unfortunately don't have an option to just turn off tsan
+        # https://llvm.org/bugs/show_bug.cgi?id=27715
+        configure.args-append \
+            -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+    }
+}
+
+# llvm-3.5 and later requires a C++11 runtime
+# XCode 4.3's clang (318.x) fails per https://trac.macports.org/ticket/44161
+# XCode 4.5's clang (421.11.66) fails due to http://llvm.org/bugs/show_bug.cgi?id=20184
+# Xcode 4.6.3's clang (425.0.28) fails due to http://trac.macports.org/ticket/46897
+# Xcode 5.1.0's clang (503.0.35) fails due to https://llvm.org/bugs/show_bug.cgi?id=25673
+# Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
+# clang older than 3.5 fail due to https://llvm.org/bugs/show_bug.cgi?id=25753
+compiler.blacklist *gcc* {clang < 602} macports-clang-3.3 macports-clang-3.4
+
+# Remove this when loosening the blacklist above or when a newer base is released
+compiler.fallback-append macports-clang-3.7 macports-clang-3.6 macports-clang-3.5
+
+if {${subport} eq "clang-${llvm_version}"} {
+    # Don't self-host.  We may have issues if we have a slightly newer llvm version that
+    # is not binary compatible with the older clang version we're trying to use.
+
+    compiler.blacklist-append macports-clang-${llvm_version}
+}
+
+# blacklist current and future versions if they're not available in order to
+# help break potential dependency cycles.
+foreach ver {devel} {
+    if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
+        compiler.blacklist-append macports-clang-${ver}
+    }
+}
+
+platform darwin {
+    # Note that we are forcing this choice.  This means that anything linking
+    # against llvm-3.5 needs to also be using libc++.  This is possibly
+    # problematic, but luckily there is just a limited set of such dependents.
+
+    configure.cxx_stdlib libc++
+    depends_lib-append port:libcxx
+    supported_archs i386 x86_64
+
+    pre-fetch {
+        if {![file exists /usr/lib/libc++.dylib]} {
+            ui_error "$name requires a C++11 runtime, which your configuration does not allow"
+            error "unsupported configuration"
+        }
+    }
+}
+
+variant universal {
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} eq "gcc-4.0" ||
+            ${configure.compiler} eq "gcc-4.2" ||
+            ${configure.compiler} eq "llvm-gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-delete -DLLVM_ENABLE_ASSERTIONS=OFF
+    configure.args-append -DLLVM_ENABLE_ASSERTIONS=ON
+}
+
+platform darwin {
+    if {[string match "*ppc*" [get_canonical_archs]]} {
+        # http://trac.macports.org/ticket/33987
+        configure.optflags    -Os
+    }
+
+    if {${subport} eq "clang-${llvm_version}" && [vercmp $xcodeversion 5.0] < 0} {
+        # https://llvm.org/bugs/show_bug.cgi?id=13671
+        patchfiles-append leopard-no-asan.patch
+        configure.args-append -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+    }
+
+    if {${subport} eq "clang-${llvm_version}" && ${os.major} <= 9} {
+        patchfiles-append leopard-no-blocks.patch
+    }
+
+    if {${os.major} < 11} {
+        # Proxy for eliminating the dependency on native TLS
+        # http://trac.macports.org/ticket/46887
+        configure.args-append -DLLVM_ENABLE_BACKTRACES=OFF
+
+        # https://llvm.org/bugs/show_bug.cgi?id=25680
+        configure.cxxflags-append -U__STRICT_ANSI__
+    }
+
+    # https://llvm.org/bugs/show_bug.cgi?id=25674
+    configure.cxxflags-append -std=c++11
+}
+
+post-extract {
+    # Get HTTP proxy arguments if required, assuming we can use the same proxy for all repositories
+    set proxy_args [portfetch::svn_proxy_args http://llvm.org/svn/llvm-project/cfe/trunk]
+    if {${subport} eq "llvm-${llvm_version}"} {
+        if {[variant_isset polly]} {
+            if {${worksrcdir} eq "trunk"} {
+                system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/polly/trunk polly"
+            } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
+                system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
+            } else {
+                file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
+            }
+        }
+    } elseif {${subport} eq "clang-${llvm_version}"} {
+        if {${worksrcdir} eq "trunk"} {
+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/trunk clang"
+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt"
+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/trunk libcxx"
+            system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra"
+        } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/branches/release_${llvm_version_no_dot} compiler-rt"
+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/branches/release_${llvm_version_no_dot} libcxx"
+            system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} http://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_${llvm_version_no_dot} extra"
+        } else {
+            file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
+            file rename ${workpath}/compiler-rt-${version}.src ${worksrcpath}/projects/compiler-rt
+            file rename ${workpath}/libcxx-${version}.src ${worksrcpath}/projects/libcxx
+            file rename ${workpath}/clang-tools-extra-${version}.src ${worksrcpath}/tools/clang/tools/extra
+        }
+    }
+}
+
+if {${subport} eq "clang-${llvm_version}"} {
+    destroot {
+        system "cd ${destroot.dir}/tools/clang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+        system "cd ${destroot.dir}/projects/compiler-rt && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+        system "cd ${destroot.dir}/projects/libcxx && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+
+        delete ${destroot}${sub_prefix}/bin/clang
+        file rename ${destroot}${sub_prefix}/bin/clang-${clang_executable_version} ${destroot}${sub_prefix}/bin/clang
+    }
+}
+
+post-destroot {
+    foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
+        set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
+        set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
+
+        xinstall -m 755 "${filespath}/llvm-bin" "${bin_filename}"
+        reinplace "s:EXEC_PATH:${exec_path}:" "${bin_filename}"
+    }
+
+    if {${subport} eq "llvm-${llvm_version}"} {
+        # r156389 (a5d2435409858728970202226d0bbbee508fe408) temporarilary removed llvm man pages
+        #foreach man [glob ${destroot}${sub_prefix}/share/man/man1/*.1] {
+        #    set basename [string map "${destroot}${sub_prefix}/share/man/man1/ {}" ${man}]
+        #    file rename ${man} ${destroot}${prefix}/share/man/man1/[string map ".1 -${suffix}.1" ${basename}]
+        #}
+
+        # https://llvm.org/bugs/show_bug.cgi?id=19465
+        if {[variant_isset polly]} {
+            ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
+        }
+    } elseif {${subport} eq "clang-${llvm_version}"} {
+        system "ditto ${worksrcpath}/projects/libcxx/include ${destroot}${sub_prefix}/lib/c++/v1"
+
+        # http://trac.macports.org/ticket/33207
+        ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
+    }
+}
+
+if {${subport} eq "llvm-${llvm_version}"} {
+    variant polly description {Provide the polly polyhedral optimizer} {}
+
+    # Unless upstream reverts to their old OCaml detection mechanism,
+    # this variant will be broken until #46161 is resolved.
+    variant ocaml description {Enable generation of OCaml binding} {
+        depends_lib-append   port:ocaml
+
+        configure.args-delete -DLLVM_BINDINGS_LIST=none
+        configure.args-append -DLLVM_BINDINGS_LIST=ocaml
+
+        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} {
+        configure.args-delete \
+            -DCLANG_ENABLE_STATIC_ANALYZER=OFF
+        configure.args-append \
+            -DCLANG_ENABLE_STATIC_ANALYZER=ON
+
+        depends_run-append port:perl5
+
+        post-patch {
+            reinplace "s|/usr/bin/env perl|${prefix}/bin/perl5|g" \
+                ${worksrcpath}/tools/clang/tools/scan-build/libexec/ccc-analyzer \
+                ${worksrcpath}/tools/clang/tools/scan-build/libexec/c++-analyzer \
+                ${worksrcpath}/tools/clang/tools/scan-build/bin/scan-build
+            reinplace "s|/usr/bin/env python|${prefix}/bin/python2.7|g" \
+                ${worksrcpath}/tools/clang/tools/scan-build/bin/set-xcode-analyzer \
+                ${worksrcpath}/tools/clang/tools/scan-view/bin/scan-view
+        }
+    }
+
+    post-patch {
+        reinplace "s|@@PREFIX@@|${prefix}|" \
+            ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp
+
+        reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \
+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format-bbedit.applescript \
+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format-diff.py            \
+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format-sublime.py         \
+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format.el                 \
+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format.py
+    }
+
+    post-destroot {
+        file mkdir ${destroot}${sub_prefix}/libexec
+        file copy ${worksrcpath}/tools/clang/tools/clang-format ${destroot}${sub_prefix}/libexec/clang-format
+
+        file delete -force ${destroot}${sub_prefix}/libexec/clang-format/.svn
+        file delete -force ${destroot}${sub_prefix}/libexec/clang-format/Makefile
+        file delete -force ${destroot}${sub_prefix}/libexec/clang-format/Release+Debug+Asserts
+        file delete -force ${destroot}${sub_prefix}/libexec/clang-format/CMakeLists.txt
+        file delete -force ${destroot}${sub_prefix}/libexec/clang-format/ClangFormat.cpp
+    }
+}
+
+livecheck.type          none


Property changes on: trunk/dports/lang/llvm-devel/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,55 @@
+From 7c7ac9a92497d52494a841bd1bcf6df07b0f4d13 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 09:03:43 -0800
+Subject: [PATCH 1/4] Set the Mach-O CPU Subtype to ppc7400 when targeting
+ Leopard
+
+http://llvm.org/bugs/show_bug.cgi?id=18463
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+index b6dd595..11a7953 100644
+--- llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
++++ macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+@@ -201,16 +201,23 @@ public:
+ // FIXME: This should be in a separate file.
+ namespace {
+   class DarwinPPCAsmBackend : public PPCAsmBackend {
++    Triple TheTriple;
+   public:
+-    DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, false) { }
++    DarwinPPCAsmBackend(const Target &T, const Triple &TT) : PPCAsmBackend(T, false), TheTriple(TT) { }
+ 
+     MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
+       bool is64 = getPointerSize() == 8;
++      MachO::CPUSubTypePowerPC CS = MachO::CPU_SUBTYPE_POWERPC_ALL;
++
++      if (TheTriple.isOSDarwin() && !TheTriple.isMacOSXVersionLT(10,5)) {
++          CS = MachO::CPU_SUBTYPE_POWERPC_7400;
++      }
++
+       return createPPCMachObjectWriter(
+           OS,
+           /*Is64Bit=*/is64,
+           (is64 ? MachO::CPU_TYPE_POWERPC64 : MachO::CPU_TYPE_POWERPC),
+-          MachO::CPU_SUBTYPE_POWERPC_ALL);
++          CS);
+     }
+   };
+ 
+@@ -232,7 +239,7 @@ MCAsmBackend *llvm::createPPCAsmBackend(const Target &T,
+                                         const MCRegisterInfo &MRI,
+                                         const Triple &TT, StringRef CPU) {
+   if (TT.isOSDarwin())
+-    return new DarwinPPCAsmBackend(T);
++    return new DarwinPPCAsmBackend(T, TT);
+ 
+   uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS());
+   bool IsLittleEndian = TT.getArch() == Triple::ppc64le;
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,36 @@
+From 8600795c2b9d37dc8eb8aa18dc38e7abe8767a36 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sun, 18 Jan 2015 11:18:13 -0800
+Subject: [PATCH 2/4] Define EXC_MASK_CRASH and MACH_EXCEPTION_CODES if they're
+ not defined in the SDK
+
+The 10.4 SDK does not define these macros
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Support/Unix/Signals.inc | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git llvm_master/lib/Support/Unix/Signals.inc macports_master/lib/Support/Unix/Signals.inc
+index 061cdb3..4d687b3 100644
+--- llvm_master/lib/Support/Unix/Signals.inc
++++ macports_master/lib/Support/Unix/Signals.inc
+@@ -387,6 +387,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal(bool DisableCrashReporting) {
+   AddSignalHandler(PrintStackTraceSignalHandler, nullptr);
+ 
+ #if defined(__APPLE__) && defined(ENABLE_CRASH_OVERRIDES)
++
++/* These aren't defined in the 10.4 SDK, so provide them here */
++#ifndef EXC_MASK_CRASH
++#define EXC_MASK_CRASH 0x400
++#endif
++#ifndef MACH_EXCEPTION_CODES
++#define MACH_EXCEPTION_CODES 0x80000000
++#endif
++
+   // Environment variable to disable any kind of crash dialog.
+   if (DisableCrashReporting || getenv("LLVM_DISABLE_CRASH_REPORT")) {
+     mach_port_t self = mach_task_self();
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,29 @@
+From f37d1e0f822b626119ca4b8873bf54418734e75a Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:41:30 -0800
+Subject: [PATCH 3/4] MacPorts Only: Don't embed the deployment target in the
+ asm when using -fno-integrated-as
+
+http://llvm.org/bugs/show_bug.cgi?id=21636
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git llvm_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+index 4d945bd..5cbf88c 100644
+--- llvm_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
++++ macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+@@ -193,7 +193,7 @@ bool AsmPrinter::doInitialization(Module &M) {
+   // anyway.
+   Triple TT(getTargetTriple());
+   // If there is a version specified, Major will be non-zero.
+-  if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0) {
++  if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0 && MAI->useIntegratedAssembler()) {
+     unsigned Major, Minor, Update;
+     MCVersionMinType VersionType;
+     if (TT.isWatchOS()) {
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,84 @@
+From ab5dbc40e2dc4220e0ba1e88a106266e9ba10f8b Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:50:24 -0800
+Subject: [PATCH 1001/1005] MacPorts Only: Prepare clang-format for replacement
+ with absolute path
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ tools/clang-format/clang-format-bbedit.applescript | 2 +-
+ tools/clang-format/clang-format-diff.py            | 2 +-
+ tools/clang-format/clang-format-sublime.py         | 2 +-
+ tools/clang-format/clang-format.el                 | 3 +--
+ tools/clang-format/clang-format.py                 | 2 +-
+ 5 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript macports_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
+index fa88fe9..eb09448 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
++++ macports_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
+@@ -15,7 +15,7 @@ tell application "BBEdit"
+ end tell
+ 
+ set filePath to urlToPOSIXPath(fileURL)
+-set newContents to do shell script "/path/to/clang-format -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
++set newContents to do shell script "@CLANG_FORMAT_PATH@ -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
+ 
+ tell application "BBEdit"
+ 	-- "set contents of text document 1 to newContents" scrolls to the bottom while
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-diff.py macports_master/tools/clang/tools/clang-format/clang-format-diff.py
+index 5e728f5..b23c3c8 100755
+--- llvm_master/tools/clang/tools/clang-format/clang-format-diff.py
++++ macports_master/tools/clang/tools/clang-format/clang-format-diff.py
+@@ -55,7 +55,7 @@ def main():
+   parser.add_argument('-style',
+                       help='formatting style to apply (LLVM, Google, Chromium, '
+                       'Mozilla, WebKit)')
+-  parser.add_argument('-binary', default='clang-format',
++  parser.add_argument('-binary', default='@CLANG_FORMAT_PATH@',
+                       help='location of binary to use for clang-format')
+   args = parser.parse_args()
+ 
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-sublime.py macports_master/tools/clang/tools/clang-format/clang-format-sublime.py
+index 16ff56e..4b68104 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format-sublime.py
++++ macports_master/tools/clang/tools/clang-format/clang-format-sublime.py
+@@ -18,7 +18,7 @@ import sublime_plugin
+ import subprocess
+ 
+ # Change this to the full path if clang-format is not on the path.
+-binary = 'clang-format'
++binary = '@CLANG_FORMAT_PATH@'
+ 
+ # Change this to format according to other formatting styles. See the output of
+ # 'clang-format --help' for a list of supported styles. The default looks for
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format.el macports_master/tools/clang/tools/clang-format/clang-format.el
+index ca46144..1c49835 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format.el
++++ macports_master/tools/clang/tools/clang-format/clang-format.el
+@@ -36,8 +36,7 @@
+   :group 'tools)
+ 
+ (defcustom clang-format-executable
+-  (or (executable-find "clang-format")
+-      "clang-format")
++  "@CLANG_FORMAT_PATH@"
+   "Location of the clang-format executable.
+ 
+ A string containing the name or the full path of the executable."
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format.py macports_master/tools/clang/tools/clang-format/clang-format.py
+index 5cb41fc..e8a5904 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format.py
++++ macports_master/tools/clang/tools/clang-format/clang-format.py
+@@ -34,7 +34,7 @@ import vim
+ 
+ # set g:clang_format_path to the path to clang-format if it is not on the path
+ # Change this to the full path if clang-format is not on the path.
+-binary = 'clang-format'
++binary = '@CLANG_FORMAT_PATH@'
+ if vim.eval('exists("g:clang_format_path")') == "1":
+   binary = vim.eval('g:clang_format_path')
+ 
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,29 @@
+From f251a1bd711d637013a19dddb23bc0e7ab6ef685 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:55:27 -0800
+Subject: [PATCH 1002/1005] MacPorts Only: Fix name of scan-view executable
+ inside scan-build
+
+http://trac.macports.org/ticket/35006
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ tools/scan-build/bin/scan-build | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git llvm_master/tools/clang/tools/scan-build/bin/scan-build macports_master/tools/clang/tools/scan-build/bin/scan-build
+index 6a14484..319305f 100755
+--- llvm_master/tools/clang/tools/scan-build/bin/scan-build
++++ macports_master/tools/clang/tools/scan-build/bin/scan-build
+@@ -1817,6 +1817,8 @@ if (defined $Options{OutputFormat}) {
+       Diag "Analysis run complete.\n";
+       Diag "Viewing analysis results in '$Options{OutputDir}' using scan-view.\n";
+       my $ScanView = Cwd::realpath("$RealBin/scan-view");
++      if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/bin/scan-view"); }
++      if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../scan-view/scan-view"); }
+       if (! -x $ScanView) { $ScanView = "scan-view"; }
+       if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); }
+       exec $ScanView, "$Options{OutputDir}";
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,26 @@
+From 2bf8502dda4a3ec979b15644513b31c0547959b7 Mon Sep 17 00:00:00 2001
+From: Iain Sandoe <iain at codesourcery.com>
+Date: Sun, 27 Jul 2014 20:35:16 +0100
+Subject: [PATCH 1003/1005] Default to ppc7400 for OSX 10.5+
+
+---
+ lib/Driver/Tools.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git llvm_master/tools/clang/lib/Driver/Tools.cpp macports_master/tools/clang/lib/Driver/Tools.cpp
+index 2819ab3..e7d5a0c 100644
+--- llvm_master/tools/clang/lib/Driver/Tools.cpp
++++ macports_master/tools/clang/lib/Driver/Tools.cpp
+@@ -1751,6 +1751,9 @@ static std::string getCPUName(const ArgList &Args, const llvm::Triple &T,
+         TargetCPUName = "ppc64";
+       else if (T.getArch() == llvm::Triple::ppc64le)
+         TargetCPUName = "ppc64le";
++      else if (T.isOSDarwin() && !T.isMacOSXVersionLT(10,5))
++        // For 10.5+ Altivec is assumed available.
++        TargetCPUName = "7400";
+       else
+         TargetCPUName = "ppc";
+     }
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,29 @@
+From b81b30b857fbd33e4788688e4a157b37b0538947 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 19:08:57 -0800
+Subject: [PATCH 1004/1005] Only call setpriority(PRIO_DARWIN_THREAD, 0,
+ PRIO_DARWIN_BG) if it is available
+
+Tiger and earlier versions of darwin do not support this.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ tools/libclang/CIndex.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git llvm_master/tools/clang/tools/libclang/CIndex.cpp macports_master/tools/clang/tools/libclang/CIndex.cpp
+index b2a9ab8..98b50ce 100644
+--- llvm_master/tools/clang/tools/libclang/CIndex.cpp
++++ macports_master/tools/clang/tools/libclang/CIndex.cpp
+@@ -7744,7 +7744,7 @@ void clang::setThreadBackgroundPriority() {
+   if (getenv("LIBCLANG_BGPRIO_DISABLE"))
+     return;
+ 
+-#ifdef USE_DARWIN_THREADS
++#if defined(USE_DARWIN_THREADS) && defined(PRIO_DARWIN_THREAD) && defined(PRIO_DARWIN_BG)
+   setpriority(PRIO_DARWIN_THREAD, 0, PRIO_DARWIN_BG);
+ #endif
+ }
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,31 @@
+From e0bb397409adb1a6146dd5c1e044e0614070920e Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Tue, 20 Jan 2015 00:09:16 -0800
+Subject: [PATCH 1005/1005] Default to fragile ObjC runtime when targeting
+ darwin/ppc
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Driver/ToolChains.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git llvm_master/tools/clang/lib/Driver/ToolChains.h macports_master/tools/clang/lib/Driver/ToolChains.h
+index a5f5473..4f53d95 100644
+--- llvm_master/tools/clang/lib/Driver/ToolChains.h
++++ macports_master/tools/clang/lib/Driver/ToolChains.h
+@@ -324,8 +324,10 @@ public:
+   bool IsEncodeExtendedBlockSignatureDefault() const override { return true; }
+ 
+   bool IsObjCNonFragileABIDefault() const override {
+-    // Non-fragile ABI is default for everything but i386.
+-    return getTriple().getArch() != llvm::Triple::x86;
++    // Non-fragile ABI is default for legacy architectures
++    return getTriple().getArch() != llvm::Triple::x86 &&
++           getTriple().getArch() != llvm::Triple::ppc &&
++           getTriple().getArch() != llvm::Triple::ppc64;
+   }
+ 
+   bool UseObjCMixedDispatch() const override { return true; }
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,45 @@
+From 56702152d81a7d993e3f25c64a93588196f09549 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Mon, 30 Nov 2015 00:52:14 -0500
+Subject: [PATCH 2001/2001] MacPorts Only: Don't check for the macosx.internal
+ SDK
+
+https://llvm.org/bugs/show_bug.cgi?id=25677
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ cmake/Modules/CompilerRTDarwinUtils.cmake | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 28d3986..92a51cf 100644
+--- llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -5,14 +5,6 @@ include(CMakeParseArguments)
+ # the current Xcode.
+ function(find_darwin_sdk_dir var sdk_name)
+   # Let's first try the internal SDK, otherwise use the public SDK.
+-  execute_process(
+-    COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path
+-    RESULT_VARIABLE result_process
+-    OUTPUT_VARIABLE var_internal
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-    ERROR_FILE /dev/null
+-  )
+-  if((NOT result_process EQUAL 0) OR "" STREQUAL "${var_internal}")
+     execute_process(
+       COMMAND xcodebuild -version -sdk ${sdk_name} Path
+       RESULT_VARIABLE result_process
+@@ -20,9 +12,6 @@ function(find_darwin_sdk_dir var sdk_name)
+       OUTPUT_STRIP_TRAILING_WHITESPACE
+       ERROR_FILE /dev/null
+     )
+-  else()
+-    set(${var}_INTERNAL ${var_internal} PARENT_SCOPE)
+-  endif()
+   if(result_process EQUAL 0)
+     set(${var} ${var_internal} PARENT_SCOPE)
+   endif()
+-- 
+2.9.3
+

Added: trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,35 @@
+From 338a475972c93c0a819d8fb15050bcce638d3146 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Fri, 16 Jan 2015 21:10:35 -0800
+Subject: [PATCH 3001/3005] buildit build fix for Leopard
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/buildit | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git llvm_master/projects/libcxx/lib/buildit macports_master/projects/libcxx/lib/buildit
+index 7e3bc2e..2740dee 100755
+--- llvm_master/projects/libcxx/lib/buildit
++++ macports_master/projects/libcxx/lib/buildit
+@@ -50,7 +50,7 @@ case $TRIPLE in
+       RC_CFLAGS="-arch i386 -arch x86_64"
+     fi
+     SOEXT=dylib
+-    if [ "$MACOSX_DEPLOYMENT_TARGET" = "10.6" ]
++    if [ "$MACOSX_DEPLOYMENT_TARGET" = "10.5" ] || [ "$MACOSX_DEPLOYMENT_TARGET" = "10.6" ]
+     then
+         EXTRA_FLAGS="-nostdinc++ -std=c++11 -U__STRICT_ANSI__"
+         LDSHARED_FLAGS="-o libc++.1.dylib \
+@@ -59,7 +59,7 @@ case $TRIPLE in
+             -install_name /usr/lib/libc++.1.dylib \
+             -Wl,-reexport_library,/usr/lib/libc++abi.dylib \
+             -Wl,-unexported_symbols_list,libc++unexp.exp  \
+-            /usr/lib/libSystem.B.dylib"
++            /usr/lib/libSystem.B.dylib /usr/lib/libgcc_s.1.dylib"
+     else
+         if [ -n "$SDKROOT" ]
+         then
+-- 
+2.6.1
+

Added: trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,28 @@
+From b132f1d99a4d68032981ac5eac247957640a11b2 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Fri, 16 Jan 2015 21:11:37 -0800
+Subject: [PATCH 3002/3005] buildit: Set compatibility version to
+ RC_ProjectSourceVersion
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/buildit | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git llvm_master/projects/libcxx/lib/buildit macports_master/projects/libcxx/lib/buildit
+index 2740dee..c74683f 100755
+--- llvm_master/projects/libcxx/lib/buildit
++++ macports_master/projects/libcxx/lib/buildit
+@@ -54,7 +54,8 @@ case $TRIPLE in
+     then
+         EXTRA_FLAGS="-nostdinc++ -std=c++11 -U__STRICT_ANSI__"
+         LDSHARED_FLAGS="-o libc++.1.dylib \
+-            -dynamiclib -nodefaultlibs -current_version 1 \
++            -dynamiclib -nodefaultlibs \
++            -current_version ${RC_ProjectSourceVersion} \
+             -compatibility_version 1 \
+             -install_name /usr/lib/libc++.1.dylib \
+             -Wl,-reexport_library,/usr/lib/libc++abi.dylib \
+-- 
+2.6.1
+

Added: trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,45 @@
+From 763f41fd807928cec405fa391fb062cfd2cc5251 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Fri, 16 Jan 2015 21:34:36 -0800
+Subject: [PATCH 3003/3005] Fix <local> and <iterator> when building with Lion
+ and newer Availability.h
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ include/iterator | 4 ++--
+ include/locale   | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git llvm_master/projects/libcxx/include/iterator macports_master/projects/libcxx/include/iterator
+index c06ef8f..168efa6 100644
+--- llvm_master/projects/libcxx/include/iterator
++++ macports_master/projects/libcxx/include/iterator
+@@ -920,8 +920,8 @@ public:
+     _LIBCPP_INLINE_VISIBILITY bool failed() const _NOEXCEPT {return __sbuf_ == 0;}
+ 
+ #if !defined(__APPLE__) || \
+-    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
+-    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
++    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && defined(__MAC_10_8) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
++    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
+ 
+     template <class _Ch, class _Tr>
+     friend
+diff --git llvm_master/projects/libcxx/include/locale macports_master/projects/libcxx/include/locale
+index 74898be..b82a3c7 100644
+--- llvm_master/projects/libcxx/include/locale
++++ macports_master/projects/libcxx/include/locale
+@@ -1474,8 +1474,8 @@ __pad_and_output(_OutputIterator __s,
+ }
+ 
+ #if !defined(__APPLE__) || \
+-    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
+-    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
++    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && defined(__MAC_10_8) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
++    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
+ 
+ template <class _CharT, class _Traits>
+ _LIBCPP_HIDDEN
+-- 
+2.6.1
+

Added: trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,41 @@
+From 133c794191c25455ffccacc703570c8e7b6b4379 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:26:20 -0800
+Subject: [PATCH 3004/3005] Fix missing long long math prototypes when using
+ the Snow Leopard SDK
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ include/cmath | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git llvm_master/projects/libcxx/include/cmath macports_master/projects/libcxx/include/cmath
+index ebbde18..f6d0d31 100644
+--- llvm_master/projects/libcxx/include/cmath
++++ macports_master/projects/libcxx/include/cmath
+@@ -300,6 +300,22 @@ long double    truncl(long double x);
+ #include <__config>
+ #include <math.h>
+ 
++#ifdef __APPLE__
++#include <Availability.h>
++#if __MAC_OS_X_VERSION_MAX_ALLOWED < 1070
++/* These prototypes are incorrectly omitted from <math.h> on Snow Leopard despite being available */
++extern "C" {
++    extern long long int llrintl(long double);
++    extern long long int llrint(double);
++    extern long long int llrintf(float);
++
++    extern long long int llroundl(long double);
++    extern long long int llround(double);
++    extern long long int llroundf(float);
++}
++#endif
++#endif // __APPLE__
++
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+ #pragma GCC system_header
+ #endif
+-- 
+2.6.1
+

Added: trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,316 @@
+From bfb3ae7b99d4efea34677d6931329efbb423415d Mon Sep 17 00:00:00 2001
+From: David Fang <fang at csl.cornell.edu>
+Date: Wed, 15 Jan 2014 21:27:34 -0800
+Subject: [PATCH 3005/3005] implement atomic<> using mutex/lock_guard for 64b
+ ops on 32b PPC not pretty, not fast, but passes atomic tests
+
+---
+ include/__atomic_locked | 240 ++++++++++++++++++++++++++++++++++++++++++++++++
+ include/atomic          |  46 ++++++++++
+ 2 files changed, 286 insertions(+)
+ create mode 100644 include/__atomic_locked
+
+diff --git llvm_master/projects/libcxx/include/__atomic_locked macports_master/projects/libcxx/include/__atomic_locked
+new file mode 100644
+index 0000000..f10dd74
+--- /dev/null
++++ macports_master/projects/libcxx/include/__atomic_locked
+@@ -0,0 +1,240 @@
++// -*- C++ -*-
++//===--------------------------- __atomic_locked --------------------------===//
++//
++//                     The LLVM Compiler Infrastructure
++//
++// This file is distributed under the University of Illinois Open Source
++// License. See LICENSE.TXT for details.
++//
++//===----------------------------------------------------------------------===//
++
++#ifndef _LIBCPP_ATOMIC_LOCKED
++#define _LIBCPP_ATOMIC_LOCKED
++
++#include <__mutex_base>	// for mutex and lock_guard
++
++/**
++	This provides slow-but-usable lock-based atomic access to
++	structures for which atomic lock-free functions are missing.
++	This is motivated by the desire for 64b atomic operations
++	on 32b PowerPC architectures.  
++**/
++
++#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
++#pragma GCC system_header
++#endif
++
++_LIBCPP_BEGIN_NAMESPACE_STD
++
++template <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value>
++struct __atomic_mutex_locked  // false
++{
++    mutable _Atomic(_Tp) __a_;
++    mutable mutex __lock_;
++    typedef lock_guard<mutex>	lock_type;
++
++    _Tp& na(void) const { return reinterpret_cast<_Tp&>(__a_); }
++    volatile _Tp& na(void) const volatile { return reinterpret_cast<volatile _Tp&>(__a_); }
++
++    _LIBCPP_INLINE_VISIBILITY
++    bool is_lock_free() const volatile _NOEXCEPT
++        {return false;}
++    _LIBCPP_INLINE_VISIBILITY
++    bool is_lock_free() const _NOEXCEPT
++        {return false;}
++    _LIBCPP_INLINE_VISIBILITY
++    void store(_Tp __d, memory_order = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_)); na() = __d; }
++    _LIBCPP_INLINE_VISIBILITY
++    void store(_Tp __d, memory_order = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_); na() = __d; }
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp load(memory_order = memory_order_seq_cst) const volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_)); return na(); }
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp load(memory_order = memory_order_seq_cst) const _NOEXCEPT
++        { const lock_type g(__lock_); return na(); }
++    _LIBCPP_INLINE_VISIBILITY
++    operator _Tp() const volatile _NOEXCEPT {return load();}
++    _LIBCPP_INLINE_VISIBILITY
++    operator _Tp() const _NOEXCEPT          {return load();}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp exchange(_Tp __d, memory_order = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	// or use std::swap
++          const _Tp ret = na(); na() = __d; return ret; }
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp exchange(_Tp __d, memory_order = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_);
++	// or use std::swap
++          const _Tp ret = na(); na() = __d; return ret; }
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
++                               memory_order __s, memory_order __f) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	  if (na() == __e) { na() = __d; return true; }
++	  else { __e = na(); return false; }
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
++                               memory_order __s, memory_order __f) _NOEXCEPT
++        { const lock_type g(__lock_);
++	  if (na() == __e) { na() = __d; return true; }
++	  else { __e = na(); return false; }
++	}
++
++    // for now, _weak inditinguishable from _strong
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
++                                 memory_order __s, memory_order __f) volatile _NOEXCEPT
++        {return compare_exchange_weak(__e, __d, __s, __f);}
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
++                                 memory_order __s, memory_order __f) _NOEXCEPT
++        {return compare_exchange_weak(__e, __d, __s, __f);}
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
++                              memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        {return compare_exchange_weak(__e, __d, __m, __m);}
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
++                               memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        {return compare_exchange_weak(__e, __d, __m, __m);}
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
++                              memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        {return compare_exchange_strong(__e, __d, __m, __m);}
++    _LIBCPP_INLINE_VISIBILITY
++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
++                                 memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        {return compare_exchange_strong(__e, __d, __m, __m);}
++
++    _LIBCPP_INLINE_VISIBILITY
++#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
++    __atomic_mutex_locked() _NOEXCEPT = default;
++#else
++    __atomic_mutex_locked() _NOEXCEPT : __a_() {}
++#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
++
++    _LIBCPP_INLINE_VISIBILITY
++    _LIBCPP_CONSTEXPR __atomic_mutex_locked(_Tp __d) _NOEXCEPT : __a_(__d) {}
++#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS
++    __atomic_mutex_locked(const __atomic_mutex_locked&) = delete;
++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) = delete;
++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) volatile = delete;
++#else  // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
++private:
++    __atomic_mutex_locked(const __atomic_mutex_locked&);
++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&);
++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) volatile;
++#endif  // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
++};	// end struct __atomic_mutex_locked
++
++// atomic<Integral>
++
++template <class _Tp>
++struct __atomic_mutex_locked<_Tp, true>
++    : public __atomic_mutex_locked<_Tp, false>
++{
++    typedef __atomic_mutex_locked<_Tp, false> __base;
++    typedef	typename __base::lock_type	lock_type;
++    using __base::__lock_;
++    using __base::na;
++
++    _LIBCPP_INLINE_VISIBILITY
++    __atomic_mutex_locked() _NOEXCEPT _LIBCPP_DEFAULT
++    _LIBCPP_INLINE_VISIBILITY
++    _LIBCPP_CONSTEXPR __atomic_mutex_locked(_Tp __d) _NOEXCEPT : __base(__d) {}
++
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	  const _Tp ret = na(); na() += __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_);
++	  const _Tp ret = na(); na() += __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	  const _Tp ret = na(); na() -= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_);
++	  const _Tp ret = na(); na() -= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	  const _Tp ret = na(); na() &= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_);
++	  const _Tp ret = na(); na() &= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	  const _Tp ret = na(); na() |= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_);
++	  const _Tp ret = na(); na() |= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++        { const lock_type g(const_cast<mutex&>(__lock_));
++	  const _Tp ret = na(); na() ^= __op; return ret;
++	}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++        { const lock_type g(__lock_);
++	  const _Tp ret = na(); na() ^= __op; return ret;
++	}
++
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator++(int) volatile _NOEXCEPT      {return fetch_add(_Tp(1));}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator++(int) _NOEXCEPT               {return fetch_add(_Tp(1));}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator--(int) volatile _NOEXCEPT      {return fetch_sub(_Tp(1));}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator--(int) _NOEXCEPT               {return fetch_sub(_Tp(1));}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator++() volatile _NOEXCEPT         {return fetch_add(_Tp(1)) + _Tp(1);}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator++() _NOEXCEPT                  {return fetch_add(_Tp(1)) + _Tp(1);}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator--() volatile _NOEXCEPT         {return fetch_sub(_Tp(1)) - _Tp(1);}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator--() _NOEXCEPT                  {return fetch_sub(_Tp(1)) - _Tp(1);}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator+=(_Tp __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator+=(_Tp __op) _NOEXCEPT          {return fetch_add(__op) + __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator-=(_Tp __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator-=(_Tp __op) _NOEXCEPT          {return fetch_sub(__op) - __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator&=(_Tp __op) volatile _NOEXCEPT {return fetch_and(__op) & __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator&=(_Tp __op) _NOEXCEPT          {return fetch_and(__op) & __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator|=(_Tp __op) volatile _NOEXCEPT {return fetch_or(__op) | __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator|=(_Tp __op) _NOEXCEPT          {return fetch_or(__op) | __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator^=(_Tp __op) volatile _NOEXCEPT {return fetch_xor(__op) ^ __op;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator^=(_Tp __op) _NOEXCEPT          {return fetch_xor(__op) ^ __op;}
++};
++
++_LIBCPP_END_NAMESPACE_STD
++
++#endif  // _LIBCPP_ATOMIC_LOCKED
+diff --git llvm_master/projects/libcxx/include/atomic macports_master/projects/libcxx/include/atomic
+index 13965fb..fb0266a 100644
+--- llvm_master/projects/libcxx/include/atomic
++++ macports_master/projects/libcxx/include/atomic
+@@ -1791,4 +1791,50 @@ typedef atomic<uintmax_t> atomic_uintmax_t;
+ 
+ _LIBCPP_END_NAMESPACE_STD
+ 
++#if	defined(__ppc__) && !defined(__ppc64__)
++// specialize fallback implementation where 64b atomics are missing
++#include <__atomic_locked>
++
++_LIBCPP_BEGIN_NAMESPACE_STD
++
++template <>
++struct atomic<long long> : public __atomic_mutex_locked<long long>
++{
++    typedef long long		_Tp;
++    typedef __atomic_mutex_locked<_Tp> __base;
++    _LIBCPP_INLINE_VISIBILITY
++    atomic() _NOEXCEPT _LIBCPP_DEFAULT
++    _LIBCPP_INLINE_VISIBILITY
++    _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
++
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator=(_Tp __d) volatile _NOEXCEPT
++        {__base::store(__d); return __d;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator=(_Tp __d) _NOEXCEPT
++        {__base::store(__d); return __d;}
++};
++
++template <>
++struct atomic<unsigned long long> :
++	public __atomic_mutex_locked<unsigned long long>
++{
++    typedef unsigned long long		_Tp;
++    typedef __atomic_mutex_locked<_Tp> __base;
++    _LIBCPP_INLINE_VISIBILITY
++    atomic() _NOEXCEPT _LIBCPP_DEFAULT
++    _LIBCPP_INLINE_VISIBILITY
++    _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
++
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator=(_Tp __d) volatile _NOEXCEPT
++        {__base::store(__d); return __d;}
++    _LIBCPP_INLINE_VISIBILITY
++    _Tp operator=(_Tp __d) _NOEXCEPT
++        {__base::store(__d); return __d;}
++};
++
++_LIBCPP_END_NAMESPACE_STD
++#endif	// defined(__ppc__) && !defined(__ppc64__)
++
+ #endif  // _LIBCPP_ATOMIC
+-- 
+2.6.1
+

Added: trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,12 @@
+--- a/projects/compiler-rt/cmake/config-ix.cmake	2015-11-29 22:17:04.000000000 -0800
++++ b/projects/compiler-rt/cmake/config-ix.cmake	2015-11-29 22:19:16.000000000 -0800
+@@ -313,9 +313,6 @@ if(APPLE)
+     else()
+       set(SANITIZER_MIN_OSX_VERSION 10.9)
+     endif()
+-    if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7")
+-      message(FATAL_ERROR "Too old OS X version: ${SANITIZER_MIN_OSX_VERSION}")
+-    endif()
+   endif()
+ 
+   # We're setting the flag manually for each target OS

Added: trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,26 @@
+From 2500edffc9f1f44983927351eb60d4fe1cee4bcd Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Wed, 7 Jan 2015 03:42:15 -0800
+Subject: [PATCH] Leopard: Default to -fno-blocks
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Driver/ToolChains.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
+index 876bb01..27aa2ee 100644
+--- a/tools/clang/lib/Driver/ToolChains.h
++++ b/tools/clang/lib/Driver/ToolChains.h
+@@ -257,7 +257,7 @@ public:
+   bool IsBlocksDefault() const override {
+     // Always allow blocks on Apple; users interested in versioning are
+     // expected to use /usr/include/Block.h.
+-    return true;
++    return false;
+   }
+   bool IsIntegratedAssemblerDefault() const override {
+     // Default integrated assembler to on for Apple's MachO targets.
+-- 
+2.2.1
+

Added: trunk/dports/lang/llvm-devel/files/llvm-bin
===================================================================
--- trunk/dports/lang/llvm-devel/files/llvm-bin	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/llvm-bin	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec EXEC_PATH "${@}"


Property changes on: trunk/dports/lang/llvm-devel/files/llvm-bin
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/dports/lang/llvm-devel/files/mp-clang-devel
===================================================================
--- trunk/dports/lang/llvm-devel/files/mp-clang-devel	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/mp-clang-devel	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,34 @@
+bin/c-index-test-mp-devel
+bin/clang++-mp-devel
+bin/clang-mp-devel
+bin/clang-format-mp-devel
+-
+bin/scan-build-mp-devel
+bin/scan-view-mp-devel
+bin/clang-apply-replacements-mp-devel
+bin/clang-check-mp-devel
+bin/clang-cl-mp-devel
+-
+bin/clang-query-mp-devel
+bin/clang-rename-mp-devel
+bin/clang-tidy-mp-devel
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+

Added: trunk/dports/lang/llvm-devel/files/mp-llvm-devel
===================================================================
--- trunk/dports/lang/llvm-devel/files/mp-llvm-devel	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/mp-llvm-devel	2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,60 @@
+bin/bugpoint-mp-devel
+bin/llc-mp-devel
+bin/lli-mp-devel
+bin/llvm-ar-mp-devel
+bin/llvm-as-mp-devel
+bin/llvm-bcanalyzer-mp-devel
+bin/llvm-config-mp-devel
+bin/llvm-cov-mp-devel
+bin/llvm-diff-mp-devel
+bin/llvm-dis-mp-devel
+bin/llvm-dwarfdump-mp-devel
+bin/llvm-extract-mp-devel
+-
+bin/llvm-link-mp-devel
+bin/llvm-mc-mp-devel
+bin/llvm-mcmarkup-mp-devel
+bin/llvm-nm-mp-devel
+bin/llvm-objdump-mp-devel
+-
+bin/llvm-ranlib-mp-devel
+bin/llvm-rtdyld-mp-devel
+bin/llvm-size-mp-devel
+-
+bin/llvm-stress-mp-devel
+bin/llvm-symbolizer-mp-devel
+bin/llvm-tblgen-mp-devel
+-
+-
+bin/opt-mp-devel
+bin/llvm-tblgen-mp-devel
+bin/llvm-readobj-mp-devel
+bin/llvm-profdata-mp-devel
+bin/llvm-dsymutil-mp-devel
+bin/llvm-cxxdump-mp-devel
+bin/llvm-pdbdump-mp-devel
+bin/llvm-c-test-mp-devel
+bin/llvm-dwp-mp-devel
+bin/llvm-lib-mp-devel
+bin/llvm-lto-mp-devel
+bin/llvm-split-mp-devel
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-

Added: trunk/dports/lang/llvm-devel/files/openmp-locations.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/openmp-locations.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-devel/files/openmp-locations.patch	2016-08-25 22:42:32 UTC (rev 151991)
@@ -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
+@@ -2534,12 +2534,18 @@
+ 
+   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:
+@@ -4285,6 +4291,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
+@@ -8527,9 +8535,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
+@@ -8537,6 +8549,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/20160825/5f1b9056/attachment-0001.html>


More information about the macports-changes mailing list