[144736] trunk/dports/lang

jeremyhu at macports.org jeremyhu at macports.org
Sat Jan 16 13:29:04 PST 2016


Revision: 144736
          https://trac.macports.org/changeset/144736
Author:   jeremyhu at macports.org
Date:     2016-01-16 13:29:04 -0800 (Sat, 16 Jan 2016)
Log Message:
-----------
llvm-3.9: New port

Added Paths:
-----------
    trunk/dports/lang/llvm-3.9/
    trunk/dports/lang/llvm-3.9/Portfile
    trunk/dports/lang/llvm-3.9/files/
    trunk/dports/lang/llvm-3.9/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
    trunk/dports/lang/llvm-3.9/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
    trunk/dports/lang/llvm-3.9/files/0003-MacPorts-Only-Update-install-targets-for-clang-subpo.patch
    trunk/dports/lang/llvm-3.9/files/0004-MacPorts-Only-Use-full-path-for-the-dylib-id-instead.patch
    trunk/dports/lang/llvm-3.9/files/0005-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
    trunk/dports/lang/llvm-3.9/files/0006-MacPorts-Only-Skip-checking-for-python-in-configure.patch
    trunk/dports/lang/llvm-3.9/files/0007-Remove-override-of-raise-abort-and-__assert_rtn.patch
    trunk/dports/lang/llvm-3.9/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
    trunk/dports/lang/llvm-3.9/files/1002-MacPorts-Only-Fall-back-on-xcodebuild-sdk-when-xcrun.patch
    trunk/dports/lang/llvm-3.9/files/1003-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
    trunk/dports/lang/llvm-3.9/files/1004-MacPorts-Only-Relocate-clang-resources-using-llvm-ve.patch
    trunk/dports/lang/llvm-3.9/files/1005-Default-to-ppc7400-for-OSX-10.5.patch
    trunk/dports/lang/llvm-3.9/files/1006-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
    trunk/dports/lang/llvm-3.9/files/1007-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
    trunk/dports/lang/llvm-3.9/files/2001-MacPorts-Only-Comment-out-SL-cctools-workaround.patch
    trunk/dports/lang/llvm-3.9/files/2002-Update-CheckArches-to-fallback-on-Intel-ppc-if-ld-v-.patch
    trunk/dports/lang/llvm-3.9/files/2003-Fall-back-on-xcodebuild-sdk-when-xcrun-sdk-is-not-su.patch
    trunk/dports/lang/llvm-3.9/files/2004-On-darwin-build-ppc-slices-of-the-compiler-runtime-i.patch
    trunk/dports/lang/llvm-3.9/files/2005-MacPorts-Only-Don-t-build-x86_64h-slice-of-compiler-.patch
    trunk/dports/lang/llvm-3.9/files/2006-MacPorts-Only-Fix-regression-introduced-when-fixing-.patch
    trunk/dports/lang/llvm-3.9/files/2007-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
    trunk/dports/lang/llvm-3.9/files/3001-buildit-build-fix-for-Leopard.patch
    trunk/dports/lang/llvm-3.9/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
    trunk/dports/lang/llvm-3.9/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
    trunk/dports/lang/llvm-3.9/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
    trunk/dports/lang/llvm-3.9/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
    trunk/dports/lang/llvm-3.9/files/compiler_rt-toolchain.patch
    trunk/dports/lang/llvm-3.9/files/leopard-no-asan.patch
    trunk/dports/lang/llvm-3.9/files/leopard-no-blocks.patch
    trunk/dports/lang/llvm-3.9/files/llvm-bin
    trunk/dports/lang/llvm-3.9/files/llvm-skip-unittests.patch
    trunk/dports/lang/llvm-3.9/files/mp-clang-3.9
    trunk/dports/lang/llvm-3.9/files/mp-llvm-3.9
    trunk/dports/lang/llvm-3.9/files/openmp-locations.patch

Added: trunk/dports/lang/llvm-3.9/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.9/Portfile	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/Portfile	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,426 @@
+# $Id$
+
+# TODO:
+#  * Update llvm_select and clang_select (#49844)
+#  * 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        3.9
+set llvm_version_no_dot 39
+name                    llvm-${llvm_version}
+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: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            257997
+
+set compiler_rt_rev     ${svn.revision}
+set libcxx_rev          ${svn.revision}
+set clang-modernize_rev ${svn.revision}
+version                 ${llvm_version}-r${svn.revision}
+revision                1
+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-Update-install-targets-for-clang-subpo.patch \
+        0004-MacPorts-Only-Use-full-path-for-the-dylib-id-instead.patch \
+        0005-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch \
+        0006-MacPorts-Only-Skip-checking-for-python-in-configure.patch \
+        0007-Remove-override-of-raise-abort-and-__assert_rtn.patch \
+        llvm-skip-unittests.patch
+
+if {${subport} eq "clang-${llvm_version}"} {
+    patchfiles-append \
+        1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
+        1002-MacPorts-Only-Fall-back-on-xcodebuild-sdk-when-xcrun.patch \
+        1003-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch \
+        1004-MacPorts-Only-Relocate-clang-resources-using-llvm-ve.patch \
+        1005-Default-to-ppc7400-for-OSX-10.5.patch \
+        1006-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch \
+        1007-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch \
+        2001-MacPorts-Only-Comment-out-SL-cctools-workaround.patch \
+        2002-Update-CheckArches-to-fallback-on-Intel-ppc-if-ld-v-.patch \
+        2003-Fall-back-on-xcodebuild-sdk-when-xcrun-sdk-is-not-su.patch \
+        2004-On-darwin-build-ppc-slices-of-the-compiler-runtime-i.patch \
+        2005-MacPorts-Only-Don-t-build-x86_64h-slice-of-compiler-.patch \
+        2006-MacPorts-Only-Fix-regression-introduced-when-fixing-.patch \
+        2007-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 \
+        compiler_rt-toolchain.patch
+
+    # I'm not sure if we need to delete this.  It seems to build fine with it
+    # present, but we used to explicitly only use this patch for the llvm subport.
+    patchfiles-delete \
+        0005-MacPorts-Only-Skip-checking-for-python-in-configure.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
+
+configure.args-append \
+    -DLLVM_BUILD_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_INSTALL_LIBRARY=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 {3.8} {
+    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_HAS_SANITIZER_COMMON=NO
+    }
+
+    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-${llvm_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
+        }
+    }
+
+    variant openmp description {Use MacPorts' provided libomp with -fopenmp} {
+        configure.args-append   -DCLANG_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 \
+            ${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-3.9/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/lang/llvm-3.9/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,55 @@
+From 6bba00c71e59ac9cd2db1e630fe4a94b7451a220 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/7] 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_release_38/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp macports_release_38/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+index b6dd595..11a7953 100644
+--- llvm_release_38/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
++++ macports_release_38/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-3.9/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,36 @@
+From 1c7867cfc6dd0ebf1450001d634a7e7e0a313e6a 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/7] 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_release_38/lib/Support/Unix/Signals.inc macports_release_38/lib/Support/Unix/Signals.inc
+index 061cdb3..4d687b3 100644
+--- llvm_release_38/lib/Support/Unix/Signals.inc
++++ macports_release_38/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-3.9/files/0003-MacPorts-Only-Update-install-targets-for-clang-subpo.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0003-MacPorts-Only-Update-install-targets-for-clang-subpo.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0003-MacPorts-Only-Update-install-targets-for-clang-subpo.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,31 @@
+From 6719d80f133381ed543e73ef853ab326e0445657 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:33:09 -0800
+Subject: [PATCH 3/7] MacPorts Only: Update install targets for clang subport
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ Makefile | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git llvm_release_38/Makefile macports_release_38/Makefile
+index 2b9468a..19fbfdc 100644
+--- llvm_release_38/Makefile
++++ macports_release_38/Makefile
+@@ -70,9 +70,11 @@ ifeq ($(MAKECMDGOALS),install-clang)
+   DIRS := tools/clang/tools/driver tools/clang/lib/Headers \
+           tools/clang/tools/libclang \
+           tools/clang/tools/c-index-test \
+-          tools/clang/include/clang-c \
+           tools/clang/runtime tools/clang/docs \
+-          tools/lto
++          tools/clang/include tools/clang/lib \
++          tools/clang/tools/clang-format \
++          tools/clang/tools/extra/clang-modernize \
++          tools/clang/tools/extra/clang-apply-replacements
+   OPTIONAL_DIRS :=
+   NO_INSTALL = 1
+ endif
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-3.9/files/0004-MacPorts-Only-Use-full-path-for-the-dylib-id-instead.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0004-MacPorts-Only-Use-full-path-for-the-dylib-id-instead.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0004-MacPorts-Only-Use-full-path-for-the-dylib-id-instead.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,32 @@
+From 23339e9b32d7456ec6a964f9cda01dac78f1128d Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:34:41 -0800
+Subject: [PATCH 4/7] MacPorts Only: Use full path for the dylib id instead of
+ @rpath
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ Makefile.rules | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git llvm_release_38/Makefile.rules macports_release_38/Makefile.rules
+index a67aef7..def94c0 100644
+--- llvm_release_38/Makefile.rules
++++ macports_release_38/Makefile.rules
+@@ -600,7 +600,12 @@ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ ifneq ($(HOST_OS),Darwin)
+   LD.Flags += $(RPATH) -Wl,'$$ORIGIN'
+ else
+-  LD.Flags += -Wl,-install_name  -Wl,"@rpath/lib$(LIBRARYNAME)$(SHLIBEXT)"
++  LD.Flags += -Wl,-install_name
++  ifdef LOADABLE_MODULE
++    LD.Flags += -Wl,"$(PROJ_libdir)/$(LIBRARYNAME)$(SHLIBEXT)"
++  else
++    LD.Flags += -Wl,"$(PROJ_libdir)/$(SharedPrefix)$(LIBRARYNAME)$(SHLIBEXT)"
++  endif
+ endif
+ endif
+ endif
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-3.9/files/0005-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0005-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0005-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,29 @@
+From 25522bcea0e4f092f32ed4ab05d34d37618623a8 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 5/7] 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_release_38/lib/CodeGen/AsmPrinter/AsmPrinter.cpp macports_release_38/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+index 5f67d3d..8824bd3 100644
+--- llvm_release_38/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
++++ macports_release_38/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-3.9/files/0006-MacPorts-Only-Skip-checking-for-python-in-configure.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0006-MacPorts-Only-Skip-checking-for-python-in-configure.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0006-MacPorts-Only-Skip-checking-for-python-in-configure.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,111 @@
+From bda46b8c958c6ad05fdfdb8baed181ac3d4a138f Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:43:00 -0800
+Subject: [PATCH 6/7] MacPorts Only: Skip checking for python in configure
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ configure | 87 ---------------------------------------------------------------
+ 1 file changed, 87 deletions(-)
+
+diff --git llvm_release_38/configure macports_release_38/configure
+index c94fb13..0d01ba1 100755
+--- llvm_release_38/configure
++++ macports_release_38/configure
+@@ -8483,93 +8483,6 @@ CXXFLAGS="$llvm_cv_old_cxxflags"
+ echo "${ECHO_T}$NO_VARIADIC_MACROS $MISSING_FIELD_INITIALIZERS $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED $NO_COMMENT" >&6; }
+ 
+ 
+-# Check whether --with-python was given.
+-if test "${with_python+set}" = set; then
+-  withval=$with_python; PYTHON="$withval"
+-fi
+-
+-
+-if test -n "$PYTHON" && test -x "$PYTHON" ; then
+-  { echo "$as_me:$LINENO: checking for python" >&5
+-echo $ECHO_N "checking for python... $ECHO_C" >&6; }
+-  { echo "$as_me:$LINENO: result: user defined: $with_python" >&5
+-echo "${ECHO_T}user defined: $with_python" >&6; }
+-else
+-  if test -n "$PYTHON" ; then
+-    { echo "$as_me:$LINENO: WARNING: specified python ($PYTHON) is not usable, searching path" >&5
+-echo "$as_me: WARNING: specified python ($PYTHON) is not usable, searching path" >&2;}
+-  fi
+-
+-  # Extract the first word of "python python2 python27", so it can be a program name with args.
+-set dummy python python2 python27; ac_word=$2
+-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+-if test "${ac_cv_path_PYTHON+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $PYTHON in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+-    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-IFS=$as_save_IFS
+-
+-  test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="{ echo "$as_me:$LINENO: result: not found" >&5
+-echo "${ECHO_T}not found" >&6; }
+-                { { echo "$as_me:$LINENO: error: could not find python 2.7 or higher" >&5
+-echo "$as_me: error: could not find python 2.7 or higher" >&2;}
+-   { (exit 1); exit 1; }; }"
+-  ;;
+-esac
+-fi
+-PYTHON=$ac_cv_path_PYTHON
+-if test -n "$PYTHON"; then
+-  { echo "$as_me:$LINENO: result: $PYTHON" >&5
+-echo "${ECHO_T}$PYTHON" >&6; }
+-else
+-  { echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6; }
+-fi
+-
+-
+-fi
+-
+-{ echo "$as_me:$LINENO: checking for python >= 2.7" >&5
+-echo $ECHO_N "checking for python >= 2.7... $ECHO_C" >&6; }
+-ac_python_version=`$PYTHON -V 2>&1 | cut -d' ' -f2`
+-ac_python_version_major=`echo $ac_python_version | cut -d'.' -f1`
+-ac_python_version_minor=`echo $ac_python_version | cut -d'.' -f2`
+-ac_python_version_patch=`echo $ac_python_version | cut -d'.' -f3`
+-if test "$ac_python_version_major" -gt "2" || \
+-   (test "$ac_python_version_major" -eq "2" && \
+-    test "$ac_python_version_minor" -ge "7") ; then
+-  { echo "$as_me:$LINENO: result: $PYTHON ($ac_python_version)" >&5
+-echo "${ECHO_T}$PYTHON ($ac_python_version)" >&6; }
+-else
+-  { echo "$as_me:$LINENO: result: not found" >&5
+-echo "${ECHO_T}not found" >&6; }
+-  { { echo "$as_me:$LINENO: error: found python $ac_python_version ($PYTHON); required >= 2.7
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: found python $ac_python_version ($PYTHON); required >= 2.7
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-
+ { echo "$as_me:$LINENO: checking for sin in -lm" >&5
+ echo $ECHO_N "checking for sin in -lm... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_m_sin+set}" = set; then
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-3.9/files/0007-Remove-override-of-raise-abort-and-__assert_rtn.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/0007-Remove-override-of-raise-abort-and-__assert_rtn.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/0007-Remove-override-of-raise-abort-and-__assert_rtn.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,62 @@
+From 51958b26c17d9d51ca5f7bb1ee52af34ef5f444b Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 16 Jan 2016 10:19:07 -0800
+Subject: [PATCH 7/7] Remove override of raise(), abort(), and __assert_rtn()
+
+Lion (10.7) and newer versions of OS X implement abort() using pthread_kill().
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Support/Unix/Signals.inc | 39 ---------------------------------------
+ 1 file changed, 39 deletions(-)
+
+diff --git llvm_release_38/lib/Support/Unix/Signals.inc macports_release_38/lib/Support/Unix/Signals.inc
+index 4d687b3..f2797a0 100644
+--- llvm_release_38/lib/Support/Unix/Signals.inc
++++ macports_release_38/lib/Support/Unix/Signals.inc
+@@ -411,42 +411,3 @@ void llvm::sys::PrintStackTraceOnErrorSignal(bool DisableCrashReporting) {
+   }
+ #endif
+ }
+-
+-
+-/***/
+-
+-// On Darwin, raise sends a signal to the main thread instead of the current
+-// thread. This has the unfortunate effect that assert() and abort() will end up
+-// bypassing our crash recovery attempts. We work around this for anything in
+-// the same linkage unit by just defining our own versions of the assert handler
+-// and abort.
+-
+-#if defined(__APPLE__) && defined(ENABLE_CRASH_OVERRIDES)
+-
+-#include <signal.h>
+-#include <pthread.h>
+-
+-int raise(int sig) {
+-  return pthread_kill(pthread_self(), sig);
+-}
+-
+-void __assert_rtn(const char *func,
+-                  const char *file,
+-                  int line,
+-                  const char *expr) {
+-  if (func)
+-    fprintf(stderr, "Assertion failed: (%s), function %s, file %s, line %d.\n",
+-            expr, func, file, line);
+-  else
+-    fprintf(stderr, "Assertion failed: (%s), file %s, line %d.\n",
+-            expr, file, line);
+-  abort();
+-}
+-
+-void abort() {
+-  raise(SIGABRT);
+-  usleep(1000);
+-  __builtin_trap();
+-}
+-
+-#endif
+-- 
+2.7.0
+

Added: trunk/dports/lang/llvm-3.9/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,84 @@
+From 7dbc94035eaddc6140e9d868bca254288e101078 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/1007] 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 9e02bb0..b62bef3 100755
+--- llvm_master/tools/clang/tools/clang-format/clang-format-diff.py
++++ macports_master/tools/clang/tools/clang-format/clang-format-diff.py
+@@ -32,7 +32,7 @@ import sys
+ 
+ 
+ # Change this to the full path if clang-format is not on the path.
+-binary = 'clang-format'
++binary = '@CLANG_FORMAT_PATH@'
+ 
+ 
+ def main():
+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.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/1002-MacPorts-Only-Fall-back-on-xcodebuild-sdk-when-xcrun.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1002-MacPorts-Only-Fall-back-on-xcodebuild-sdk-when-xcrun.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1002-MacPorts-Only-Fall-back-on-xcodebuild-sdk-when-xcrun.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,39 @@
+From 6327a2a1206a17c82391beb82a528e685b2d7cac Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:51:10 -0800
+Subject: [PATCH 1002/1007] MacPorts Only: Fall back on xcodebuild -sdk when
+ xcrun --sdk is not supported
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ runtime/compiler-rt/Makefile | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git llvm_master/tools/clang/runtime/compiler-rt/Makefile macports_master/tools/clang/runtime/compiler-rt/Makefile
+index 55642a6..b6106d1 100644
+--- llvm_master/tools/clang/runtime/compiler-rt/Makefile
++++ macports_master/tools/clang/runtime/compiler-rt/Makefile
+@@ -81,8 +81,18 @@ RuntimeLibrary.darwin.Configs := \
+ 	profile_osx.a \
+ 	ubsan_osx_dynamic.dylib
+ 
+-IOS_SDK := $(shell xcrun --show-sdk-path -sdk iphoneos 2> /dev/null)
+-IOSSIM_SDK := $(shell xcrun --show-sdk-path -sdk iphonesimulator 2> /dev/null)
++XCRunSdkPath = \
++  $(shell \
++    result=`xcrun --sdk $(1) --show-sdk-path 2> /dev/null`; \
++    if [ "$$?" != "0" ]; then \
++      result=`xcodebuild -sdk $(1) -version 2> /dev/null \
++              | sed -n 's/^Path: \(..*\)$$/\1/p'`; \
++    fi; \
++    if [ "$$?" != "0" ]; then result=""; fi; \
++    echo $$result)
++
++IOS_SDK := $(call XCRunSdkPath,iphoneos)
++IOSSIM_SDK := $(call XCRunSdkPath,iphonesimulator)
+ 
+ ifneq ($(IOS_SDK)$(IOSSIM_SDK),)
+ RuntimeLibrary.darwin.Configs += ios.a profile_ios.a
+-- 
+2.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/1003-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1003-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1003-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,29 @@
+From 2a763d1dca2bf4967aef146bf75f3fea72820b0d 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 1003/1007] 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.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/1004-MacPorts-Only-Relocate-clang-resources-using-llvm-ve.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1004-MacPorts-Only-Relocate-clang-resources-using-llvm-ve.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1004-MacPorts-Only-Relocate-clang-resources-using-llvm-ve.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,74 @@
+From 0584af98c60ffbf7f9495d5e917647407b3bcd5d Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:58:25 -0800
+Subject: [PATCH 1004/1007] MacPorts Only: Relocate clang resources using llvm
+ version
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Headers/Makefile         |  3 ++-
+ runtime/compiler-rt/Makefile | 15 ++++++++++++++-
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git llvm_master/tools/clang/lib/Headers/Makefile macports_master/tools/clang/lib/Headers/Makefile
+index 903acac..7c37992 100644
+--- llvm_master/tools/clang/lib/Headers/Makefile
++++ macports_master/tools/clang/lib/Headers/Makefile
+@@ -16,6 +16,7 @@ include $(CLANG_LEVEL)/Makefile
+ 
+ CLANG_VERSION := $(word 3,$(shell grep "CLANG_VERSION " \
+ 	$(PROJ_OBJ_DIR)/$(CLANG_LEVEL)/include/clang/Basic/Version.inc))
++LLVM_VERSION := $(LLVM_VERSION_MAJOR).$(LLVM_VERSION_MINOR)
+ 
+ HeaderDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib/clang/$(CLANG_VERSION)/include
+ 
+@@ -40,7 +41,7 @@ $(HeaderDir)/module.modulemap: $(PROJ_SRC_DIR)/module.modulemap $(HeaderDir)/.di
+ # Hook into the standard Makefile rules.
+ all-local:: $(OBJHEADERS) $(HeaderDir)/module.modulemap
+ 
+-PROJ_headers := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION)/include
++PROJ_headers := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(LLVM_VERSION)/include
+ 
+ INSTHEADERS := $(addprefix $(PROJ_headers)/, $(HEADERS))
+ INSTHEADERS += $(PROJ_headers)/arm_neon.h
+diff --git llvm_master/tools/clang/runtime/compiler-rt/Makefile macports_master/tools/clang/runtime/compiler-rt/Makefile
+index b6106d1..2ce50d9 100644
+--- llvm_master/tools/clang/runtime/compiler-rt/Makefile
++++ macports_master/tools/clang/runtime/compiler-rt/Makefile
+@@ -18,9 +18,10 @@ include $(CLANG_LEVEL)/Makefile
+ 
+ CLANG_VERSION := $(word 3,$(shell grep "CLANG_VERSION " \
+ 	$(PROJ_OBJ_DIR)/$(CLANG_LEVEL)/include/clang/Basic/Version.inc))
++LLVM_VERSION := $(LLVM_VERSION_MAJOR).$(LLVM_VERSION_MINOR)
+ 
+ ResourceDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib/clang/$(CLANG_VERSION)
+-PROJ_resources := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION)
++PROJ_resources := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(LLVM_VERSION)
+ 
+ ResourceLibDir := $(ResourceDir)/lib
+ ResourceIncludeDir := $(ResourceDir)/include
+@@ -259,9 +260,21 @@ $(PROJ_resources_include)/sanitizer: $(ResourceIncludeDir)/sanitizer $(PROJ_reso
+ RuntimeHeaderInstall: $(PROJ_resources_include)/sanitizer
+ .PHONY: RuntimeHeaderInstall
+ 
++# Make sure $(PROJ_resources) exists before creating the symlink.
++$(PROJ_resources:$(LLVM_VERSION)=$(CLANG_VERSION)):
++	$(Echo) Creating compiler runtime compatibility symlink
++	$(Verb) $(MKDIR) $(dir $@)
++	$(Verb) ln -s $(LLVM_VERSION) $@
++
++MacPortsClangResSymlinkInstall: $(PROJ_resources:$(LLVM_VERSION)=$(CLANG_VERSION))
++.PHONY: MacPortsClangResSymlinkInstall
++
+ # Hook into the standard Makefile rules.
+ all-local:: $(RuntimeDirs:%=RuntimeLibrary.%) RuntimeHeader
+ install-local:: $(RuntimeDirs:%=RuntimeLibraryInstall.%) RuntimeHeaderInstall
++ifneq ($(LLVM_VERSION),$(CLANG_VERSION))
++install-local:: MacPortsClangResSymlinkInstall
++endif
+ clean-local:: CleanRuntimeLibraries
+ 
+ endif
+-- 
+2.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/1005-Default-to-ppc7400-for-OSX-10.5.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1005-Default-to-ppc7400-for-OSX-10.5.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1005-Default-to-ppc7400-for-OSX-10.5.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,26 @@
+From f787fe18be52154ebf95db36df01192f2f779733 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 1005/1007] 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 3bd2ffb..76cc5a0 100644
+--- llvm_master/tools/clang/lib/Driver/Tools.cpp
++++ macports_master/tools/clang/lib/Driver/Tools.cpp
+@@ -1700,6 +1700,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.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/1006-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1006-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1006-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,29 @@
+From dd396124cc450c06fb7a34df4184375a7785ef98 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 1006/1007] 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 589e39e..c10ce43 100644
+--- llvm_master/tools/clang/tools/libclang/CIndex.cpp
++++ macports_master/tools/clang/tools/libclang/CIndex.cpp
+@@ -7321,7 +7321,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.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/1007-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/1007-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/1007-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,31 @@
+From 6ebfe70568d76cf4bb4c42cca2d22d66c04a310b 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 1007/1007] 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 fc656af..f9ac275 100644
+--- llvm_master/tools/clang/lib/Driver/ToolChains.h
++++ macports_master/tools/clang/lib/Driver/ToolChains.h
+@@ -321,8 +321,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.6.2
+

Added: trunk/dports/lang/llvm-3.9/files/2001-MacPorts-Only-Comment-out-SL-cctools-workaround.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2001-MacPorts-Only-Comment-out-SL-cctools-workaround.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2001-MacPorts-Only-Comment-out-SL-cctools-workaround.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,34 @@
+From 2d2c241cda3099ec3900ee2924201d3d19eea69e Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Mon, 15 Apr 2013 22:38:18 -0700
+Subject: [PATCH 2001/2007] MacPorts Only: Comment out SL cctools workaround
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+index f85ced5..62b6f92 100644
+--- llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk
++++ macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -125,11 +125,11 @@ UniversalArchs.ubsan_iossim_dynamic := $(call CheckArches,i386 x86_64,ubsan_ioss
+ # object files. If we are on that platform, strip out all ARM archs. We still
+ # build the libraries themselves so that Clang can find them where it expects
+ # them, even though they might not have an expected slice.
+-ifneq ($(shell test -x /usr/bin/sw_vers && sw_vers -productVersion | grep 10.6),)
+-UniversalArchs.ios := $(filter-out armv7, $(UniversalArchs.ios))
+-UniversalArchs.cc_kext_ios := $(filter-out armv7, $(UniversalArchs.cc_kext_ios))
+-UniversalArchs.profile_ios := $(filter-out armv7, $(UniversalArchs.profile_ios))
+-endif
++#ifneq ($(shell test -x /usr/bin/sw_vers && sw_vers -productVersion | grep 10.6),)
++#UniversalArchs.ios := $(filter-out armv7, $(UniversalArchs.ios))
++#UniversalArchs.cc_kext_ios := $(filter-out armv7, $(UniversalArchs.cc_kext_ios))
++#UniversalArchs.profile_ios := $(filter-out armv7, $(UniversalArchs.profile_ios))
++#endif
+ 
+ # If RC_SUPPORTED_ARCHS is defined, treat it as a list of the architectures we
+ # are intended to support and limit what we try to build to that.
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/2002-Update-CheckArches-to-fallback-on-Intel-ppc-if-ld-v-.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2002-Update-CheckArches-to-fallback-on-Intel-ppc-if-ld-v-.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2002-Update-CheckArches-to-fallback-on-Intel-ppc-if-ld-v-.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,32 @@
+From 1f0a6b8bdd5b4e4d00eb039f4ebd9dc0a703c091 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 10 Jan 2015 03:34:51 -0800
+Subject: [PATCH 2002/2007] Update CheckArches to fallback on Intel/ppc if ld
+ -v doesn't report supported architectures
+
+Older versions of ld64 (eg: Xcode 3.x) do not report this.
+
+http://www.llvm.org/bugs/show_bug.cgi?id=22182
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+index 62b6f92..e8b8ced 100644
+--- llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk
++++ macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -17,8 +17,7 @@ CheckArches = \
+     result=""; \
+     if [ "X$(3)" != X ]; then \
+       for arch in $(1); do \
+-        if $(LD) -v 2>&1 | grep "configured to support" \
+-             | tr ' ' '\n' | grep "^$$arch$$" >/dev/null 2>/dev/null; then \
++        if ( $(LD) -v 2>&1 | grep "configured to support" | tr ' ' '\n' | grep "^$$arch$$" >/dev/null 2>/dev/null ) || (! ( $(LD) -v 2>&1 | grep -q "configured to support" ) && test "$$arch" = "i386" -o "$$arch" = "x86_64" -o "$$arch" = "ppc" -o "$$arch" = "ppc64" ); then \
+           if $(CC) -arch $$arch \
+             -integrated-as \
+             $(ProjSrcRoot)/make/platform/clang_darwin_test_input.c \
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/2003-Fall-back-on-xcodebuild-sdk-when-xcrun-sdk-is-not-su.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2003-Fall-back-on-xcodebuild-sdk-when-xcrun-sdk-is-not-su.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2003-Fall-back-on-xcodebuild-sdk-when-xcrun-sdk-is-not-su.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,29 @@
+From 4d677715aded5099cadcb7c647729d05a7126930 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:45:27 -0800
+Subject: [PATCH 2003/2007] Fall back on xcodebuild -sdk when xcrun --sdk is
+ not supported
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+index e8b8ced..4f25a55 100644
+--- llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk
++++ macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -49,6 +49,10 @@ XCRunSdkPath = \
+     result=`xcrun --sdk $(1).internal --show-sdk-path 2> /dev/null`; \
+     if [ "$$?" != "0" ]; then \
+       result=`xcrun --sdk $(1) --show-sdk-path 2> /dev/null`; \
++      if [ "$$?" != "0" ]; then \
++        result=`xcodebuild -sdk $(1) -version 2> /dev/null \
++                | sed -n 's/^Path: \(..*\)$$/\1/p'`; \
++      fi; \
+       if [ "$$?" != "0" ]; then result=""; fi; \
+     fi; \
+     echo $$result)
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/2004-On-darwin-build-ppc-slices-of-the-compiler-runtime-i.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2004-On-darwin-build-ppc-slices-of-the-compiler-runtime-i.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2004-On-darwin-build-ppc-slices-of-the-compiler-runtime-i.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,55 @@
+From efbd8b49c0815fa8a83f8d4cef51e8d0de3cbfad Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 19:55:19 -0800
+Subject: [PATCH 2004/2007] On darwin, build ppc slices of the compiler runtime
+ if requested and supported by the SDK and toolchain
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+index 4f25a55..3f683e9 100644
+--- llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk
++++ macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -80,10 +80,10 @@ Configs += eprintf
+ UniversalArchs.eprintf := $(call CheckArches,i386,eprintf,$(OSX_SDK))
+ 
+ # Configuration for targeting 10.4. We need a few functions missing from
+-# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really
+-# support targeting PowerPC.
++# libgcc_s.10.4.dylib. We don't build ppc64 slices since clang doesn't really
++# support it..
+ Configs += 10.4
+-UniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4,$(OSX_SDK))
++UniversalArchs.10.4 := $(call CheckArches,ppc i386 x86_64,10.4,$(OSX_SDK))
+ 
+ # Configuration for targeting iOS for a couple of functions that didn't
+ # make it into libSystem.
+@@ -94,11 +94,11 @@ UniversalArchs.ios += $(call CheckArches,armv7 arm64,ios,$(IOS_SDK))
+ # Configuration for targeting OSX. These functions may not be in libSystem
+ # so we should provide our own.
+ Configs += osx
+-UniversalArchs.osx := $(call CheckArches,i386 x86_64 x86_64h,osx,$(OSX_SDK))
++UniversalArchs.osx := $(call CheckArches,ppc i386 x86_64 x86_64h,osx,$(OSX_SDK))
+ 
+ # Configuration for use with kernel/kexts.
+ Configs += cc_kext
+-UniversalArchs.cc_kext := $(call CheckArches,i386 x86_64 x86_64h,cc_kext,$(OSX_SDK))
++UniversalArchs.cc_kext := $(call CheckArches,ppc i386 x86_64 x86_64h,cc_kext,$(OSX_SDK))
+ 
+ # Configuration for use with iOS kernel/kexts
+ Configs += cc_kext_ios
+@@ -106,7 +106,7 @@ UniversalArchs.cc_kext_ios += $(call CheckArches,armv7,cc_kext_ios,$(IOS_SDK))
+ 
+ # Configurations which define the profiling support functions.
+ Configs += profile_osx
+-UniversalArchs.profile_osx := $(call CheckArches,i386 x86_64 x86_64h,profile_osx,$(OSX_SDK))
++UniversalArchs.profile_osx := $(call CheckArches,ppc i386 x86_64 x86_64h,profile_osx,$(OSX_SDK))
+ Configs += profile_ios
+ UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64,profile_ios,$(IOSSIM_SDK))
+ UniversalArchs.profile_ios += $(call CheckArches,armv7 arm64,profile_ios,$(IOS_SDK))
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/2005-MacPorts-Only-Don-t-build-x86_64h-slice-of-compiler-.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2005-MacPorts-Only-Don-t-build-x86_64h-slice-of-compiler-.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2005-MacPorts-Only-Don-t-build-x86_64h-slice-of-compiler-.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,56 @@
+From 1c58350ef60e7b54d8b0ef6ea58791d6e8390b90 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Wed, 14 Jan 2015 19:55:19 -0800
+Subject: [PATCH 2005/2007] MacPorts Only: Don't build x86_64h slice of
+ compiler-rt
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+index 3f683e9..62116a9 100644
+--- llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk
++++ macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -94,11 +94,11 @@ UniversalArchs.ios += $(call CheckArches,armv7 arm64,ios,$(IOS_SDK))
+ # Configuration for targeting OSX. These functions may not be in libSystem
+ # so we should provide our own.
+ Configs += osx
+-UniversalArchs.osx := $(call CheckArches,ppc i386 x86_64 x86_64h,osx,$(OSX_SDK))
++UniversalArchs.osx := $(call CheckArches,ppc i386 x86_64,osx,$(OSX_SDK))
+ 
+ # Configuration for use with kernel/kexts.
+ Configs += cc_kext
+-UniversalArchs.cc_kext := $(call CheckArches,ppc i386 x86_64 x86_64h,cc_kext,$(OSX_SDK))
++UniversalArchs.cc_kext := $(call CheckArches,ppc i386 x86_64,cc_kext,$(OSX_SDK))
+ 
+ # Configuration for use with iOS kernel/kexts
+ Configs += cc_kext_ios
+@@ -106,20 +106,20 @@ UniversalArchs.cc_kext_ios += $(call CheckArches,armv7,cc_kext_ios,$(IOS_SDK))
+ 
+ # Configurations which define the profiling support functions.
+ Configs += profile_osx
+-UniversalArchs.profile_osx := $(call CheckArches,ppc i386 x86_64 x86_64h,profile_osx,$(OSX_SDK))
++UniversalArchs.profile_osx := $(call CheckArches,ppc i386 x86_64,profile_osx,$(OSX_SDK))
+ Configs += profile_ios
+ UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64,profile_ios,$(IOSSIM_SDK))
+ UniversalArchs.profile_ios += $(call CheckArches,armv7 arm64,profile_ios,$(IOS_SDK))
+ 
+ # Configurations which define the ASAN support functions.
+ Configs += asan_osx_dynamic
+-UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,asan_osx_dynamic,$(OSX_SDK))
++UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64,asan_osx_dynamic,$(OSX_SDK))
+ 
+ Configs += asan_iossim_dynamic
+ UniversalArchs.asan_iossim_dynamic := $(call CheckArches,i386 x86_64,asan_iossim_dynamic,$(IOSSIM_SDK))
+ 
+ Configs += ubsan_osx_dynamic
+-UniversalArchs.ubsan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,ubsan_osx_dynamic,$(OSX_SDK))
++UniversalArchs.ubsan_osx_dynamic := $(call CheckArches,i386 x86_64,ubsan_osx_dynamic,$(OSX_SDK))
+ 
+ Configs += ubsan_iossim_dynamic
+ UniversalArchs.ubsan_iossim_dynamic := $(call CheckArches,i386 x86_64,ubsan_iossim_dynamic,$(IOSSIM_SDK))
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/2006-MacPorts-Only-Fix-regression-introduced-when-fixing-.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2006-MacPorts-Only-Fix-regression-introduced-when-fixing-.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2006-MacPorts-Only-Fix-regression-introduced-when-fixing-.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,29 @@
+From 7664b6e22365f91d330bf10f3255ad4190410000 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sun, 11 Oct 2015 09:02:26 -0700
+Subject: [PATCH 2006/2007] MacPorts Only: Fix regression introduced when
+ fixing PR24776
+
+Partially reverts commit efecb2c285bd444b6def43ac62e5f0278df387eb
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+index 62116a9..6cc3e53 100644
+--- llvm_master/projects/compiler-rt/make/platform/clang_darwin.mk
++++ macports_master/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -18,7 +18,7 @@ CheckArches = \
+     if [ "X$(3)" != X ]; then \
+       for arch in $(1); do \
+         if ( $(LD) -v 2>&1 | grep "configured to support" | tr ' ' '\n' | grep "^$$arch$$" >/dev/null 2>/dev/null ) || (! ( $(LD) -v 2>&1 | grep -q "configured to support" ) && test "$$arch" = "i386" -o "$$arch" = "x86_64" -o "$$arch" = "ppc" -o "$$arch" = "ppc64" ); then \
+-          if $(CC) -arch $$arch \
++          if $(CC) -arch $$arch -c \
+             -integrated-as \
+             $(ProjSrcRoot)/make/platform/clang_darwin_test_input.c \
+             -isysroot $(3) \
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/2007-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/2007-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/2007-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,42 @@
+From 4cf3736c2a21e608d12b0fc153533be359029d7b 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 2007/2007] 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 | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 4947ae4..611756a 100644
+--- llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -2,21 +2,12 @@
+ # set the default Xcode to use. This function finds the SDKs that are present in
+ # 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
+-    OUTPUT_VARIABLE var_internal
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-    ERROR_FILE /dev/null
+-  )
+-  if("" STREQUAL "${var_internal}")
+     execute_process(
+       COMMAND xcodebuild -version -sdk ${sdk_name} Path
+       OUTPUT_VARIABLE var_internal
+       OUTPUT_STRIP_TRAILING_WHITESPACE
+       ERROR_FILE /dev/null
+     )
+-  endif()
+   set(${var} ${var_internal} PARENT_SCOPE)
+ endfunction()
+ 
+-- 
+2.6.3
+

Added: trunk/dports/lang/llvm-3.9/files/3001-buildit-build-fix-for-Leopard.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/3001-buildit-build-fix-for-Leopard.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/3001-buildit-build-fix-for-Leopard.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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-3.9/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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-3.9/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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-3.9/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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-3.9/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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-3.9/files/compiler_rt-toolchain.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/compiler_rt-toolchain.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/compiler_rt-toolchain.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,42 @@
+Index: llvm-3.6svn/projects/compiler-rt/make/platform/clang_darwin.mk
+===================================================================
+--- llvm-3.6svn.orig/projects/compiler-rt/make/platform/clang_darwin.mk
++++ llvm-3.6svn/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -53,11 +53,11 @@ XCRunSdkPath = \
+ 
+ CC       := $(call XCRun,clang)
+ LD       := $(shell $(CC) -print-prog-name=ld)
+-AR       := $(call XCRun,ar)
+-RANLIB   := $(call XCRun,ranlib)
+-STRIP    := $(call XCRun,strip)
+-LIPO     := $(call XCRun,lipo)
+-DSYMUTIL := $(call XCRun,dsymutil)
++AR       := @@PREFIX@@/bin/ar
++RANLIB   := @@PREFIX@@/bin/ranlib
++STRIP    := @@PREFIX@@/bin/strip
++LIPO     := @@PREFIX@@/bin/lipo
++DSYMUTIL := @@PREFIX@@/bin/dsymutil
+ 
+ OSX_SDK := $(call XCRunSdkPath,macosx)
+ IOS_SDK := $(call XCRunSdkPath,iphoneos)
+Index: llvm-3.6svn/projects/compiler-rt/make/platform/clang_macho_embedded.mk
+===================================================================
+--- llvm-3.6svn.orig/projects/compiler-rt/make/platform/clang_macho_embedded.mk
++++ llvm-3.6svn/projects/compiler-rt/make/platform/clang_macho_embedded.mk
+@@ -33,11 +33,11 @@ XCRun = \
+ ###
+ 
+ CC       := $(call XCRun,clang)
+-AR       := $(call XCRun,ar)
+-RANLIB   := $(call XCRun,ranlib)
+-STRIP    := $(call XCRun,strip)
+-LIPO     := $(call XCRun,lipo)
+-DSYMUTIL := $(call XCRun,dsymutil)
++AR       := @@PREFIX@@/bin/ar
++RANLIB   := @@PREFIX@@/bin/ranlib
++STRIP    := @@PREFIX@@/bin/strip
++LIPO     := @@PREFIX@@/bin/lipo
++DSYMUTIL := @@PREFIX@@/bin/dsymutil
+ 
+ Configs :=
+ UniversalArchs :=

Added: trunk/dports/lang/llvm-3.9/files/leopard-no-asan.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/leopard-no-asan.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/leopard-no-asan.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,60 @@
+--- a/projects/compiler-rt/make/platform/clang_darwin.mk.orig	2015-04-17 18:46:34.000000000 -0700
++++ b/projects/compiler-rt/make/platform/clang_darwin.mk	2015-04-17 18:48:25.000000000 -0700
+@@ -119,16 +119,16 @@ UniversalArchs.profile_ios := $(call Che
+ UniversalArchs.profile_ios += $(call CheckArches,armv7 arm64,profile_ios,$(IOS_SDK))
+ 
+ # Configurations which define the ASAN support functions.
+-Configs += asan_osx_dynamic
++#Configs += asan_osx_dynamic
+ UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64,asan_osx_dynamic,$(OSX_SDK))
+ 
+-Configs += asan_iossim_dynamic
++#Configs += asan_iossim_dynamic
+ UniversalArchs.asan_iossim_dynamic := $(call CheckArches,i386 x86_64,asan_iossim_dynamic,$(IOSSIM_SDK))
+ 
+-Configs += ubsan_osx_dynamic
++#Configs += ubsan_osx_dynamic
+ UniversalArchs.ubsan_osx_dynamic := $(call CheckArches,i386 x86_64,ubsan_osx_dynamic,$(OSX_SDK))
+ 
+-Configs += ubsan_iossim_dynamic
++#Configs += ubsan_iossim_dynamic
+ UniversalArchs.ubsan_iossim_dynamic := $(call CheckArches,i386 x86_64,ubsan_iossim_dynamic,$(IOSSIM_SDK))
+ 
+ # Darwin 10.6 has a bug in cctools that makes it unable to use ranlib on our ARM
+--- a/tools/clang/runtime/compiler-rt/Makefile.orig	2015-04-17 18:46:32.000000000 -0700
++++ b/tools/clang/runtime/compiler-rt/Makefile	2015-04-17 18:48:42.000000000 -0700
+@@ -78,9 +78,7 @@ ifeq ($(OS),Darwin)
+ RuntimeDirs += darwin macho_embedded
+ RuntimeLibrary.darwin.Configs := \
+ 	eprintf.a 10.4.a osx.a cc_kext.a \
+-	asan_osx_dynamic.dylib \
+-	profile_osx.a \
+-	ubsan_osx_dynamic.dylib
++	profile_osx.a
+ 
+ XCRunSdkPath = \
+   $(shell \
+@@ -103,11 +101,6 @@ ifneq ($(IOS_SDK),)
+ RuntimeLibrary.darwin.Configs += cc_kext_ios5.a
+ endif
+ 
+-ifneq ($(IOSSIM_SDK),)
+-RuntimeLibrary.darwin.Configs += asan_iossim_dynamic.dylib \
+-                                 ubsan_iossim_dynamic.dylib
+-endif
+-
+ RuntimeLibrary.macho_embedded.Configs := \
+ 	hard_static.a hard_pic.a
+ ifneq (,$(findstring ARM,$(TARGETS_TO_BUILD)))
+--- 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-3.9/files/leopard-no-blocks.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/leopard-no-blocks.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/leopard-no-blocks.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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-3.9/files/llvm-bin
===================================================================
--- trunk/dports/lang/llvm-3.9/files/llvm-bin	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/llvm-bin	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec EXEC_PATH "${@}"


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

Added: trunk/dports/lang/llvm-3.9/files/llvm-skip-unittests.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/llvm-skip-unittests.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/llvm-skip-unittests.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,13 @@
+diff --git a/unittests/Makefile.unittest b/unittests/Makefile.unittest
+index bd32aed..993b69a 100644
+--- a/unittests/Makefile.unittest
++++ b/unittests/Makefile.unittest
+@@ -54,7 +54,7 @@ $(LLVMUnitTestExe): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
+ 	$(Echo) ======= Finished Linking $(BuildMode) Unit test $(TESTNAME) \
+           $(StripWarnMsg)
+ 
+-all:: $(LLVMUnitTestExe)
++all::
+ 
+ unitcheck:: $(LLVMUnitTestExe)
+ 	$(Run.Shared) $(LLVMUnitTestExe)

Added: trunk/dports/lang/llvm-3.9/files/mp-clang-3.9
===================================================================
--- trunk/dports/lang/llvm-3.9/files/mp-clang-3.9	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/mp-clang-3.9	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,7 @@
+-
+bin/clang++-mp-3.9
+bin/clang-mp-3.9
+bin/clang-format-mp-3.9
+bin/clang-modernize-mp-3.9
+bin/scan-build-mp-3.9
+bin/scan-view-mp-3.9

Added: trunk/dports/lang/llvm-3.9/files/mp-llvm-3.9
===================================================================
--- trunk/dports/lang/llvm-3.9/files/mp-llvm-3.9	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/mp-llvm-3.9	2016-01-16 21:29:04 UTC (rev 144736)
@@ -0,0 +1,30 @@
+bin/bugpoint-mp-3.9
+bin/llc-mp-3.9
+bin/lli-mp-3.9
+bin/llvm-ar-mp-3.9
+bin/llvm-as-mp-3.9
+bin/llvm-bcanalyzer-mp-3.9
+bin/llvm-config-mp-3.9
+bin/llvm-cov-mp-3.9
+bin/llvm-diff-mp-3.9
+bin/llvm-dis-mp-3.9
+bin/llvm-dwarfdump-mp-3.9
+bin/llvm-extract-mp-3.9
+-
+bin/llvm-link-mp-3.9
+bin/llvm-mc-mp-3.9
+bin/llvm-mcmarkup-mp-3.9
+bin/llvm-nm-mp-3.9
+bin/llvm-objdump-mp-3.9
+-
+bin/llvm-ranlib-mp-3.9
+bin/llvm-rtdyld-mp-3.9
+bin/llvm-size-mp-3.9
+-
+bin/llvm-stress-mp-3.9
+bin/llvm-symbolizer-mp-3.9
+bin/llvm-tblgen-mp-3.9
+-
+bin/macho-dump-mp-3.9
+bin/opt-mp-3.9
+bin/llvm-tblgen-mp-3.9

Added: trunk/dports/lang/llvm-3.9/files/openmp-locations.patch
===================================================================
--- trunk/dports/lang/llvm-3.9/files/openmp-locations.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.9/files/openmp-locations.patch	2016-01-16 21:29:04 UTC (rev 144736)
@@ -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/20160116/20ef71df/attachment-0001.html>


More information about the macports-changes mailing list