[151991] trunk/dports/lang
jeremyhu at macports.org
jeremyhu at macports.org
Thu Aug 25 15:42:32 PDT 2016
Revision: 151991
https://trac.macports.org/changeset/151991
Author: jeremyhu at macports.org
Date: 2016-08-25 15:42:32 -0700 (Thu, 25 Aug 2016)
Log Message:
-----------
llvm-devel: New port tracking llvm trunk
Modified Paths:
--------------
trunk/dports/lang/llvm-3.3/Portfile
trunk/dports/lang/llvm-3.4/Portfile
trunk/dports/lang/llvm-3.5/Portfile
trunk/dports/lang/llvm-3.6/Portfile
trunk/dports/lang/llvm-3.7/Portfile
trunk/dports/lang/llvm-3.8/Portfile
trunk/dports/lang/llvm-3.9/Portfile
Added Paths:
-----------
trunk/dports/lang/llvm-devel/
trunk/dports/lang/llvm-devel/Portfile
trunk/dports/lang/llvm-devel/files/
trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch
trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch
trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch
trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch
trunk/dports/lang/llvm-devel/files/llvm-bin
trunk/dports/lang/llvm-devel/files/mp-clang-devel
trunk/dports/lang/llvm-devel/files/mp-llvm-devel
trunk/dports/lang/llvm-devel/files/openmp-locations.patch
Modified: trunk/dports/lang/llvm-3.3/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.3/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.3/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -176,7 +176,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.3 3.4 3.5 3.6 3.7 3.8} {
+foreach ver {3.3 3.4 3.5 3.6 3.7 3.8 3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Modified: trunk/dports/lang/llvm-3.4/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.4/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.4/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -222,7 +222,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.4 3.5 3.6 3.7 3.8} {
+foreach ver {3.4 3.5 3.6 3.7 3.8 3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Modified: trunk/dports/lang/llvm-3.5/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.5/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.5/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -208,7 +208,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.5 3.6 3.7 3.8} {
+foreach ver {3.5 3.6 3.7 3.8 3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Modified: trunk/dports/lang/llvm-3.6/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.6/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.6/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -197,7 +197,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.6 3.7 3.8} {
+foreach ver {3.6 3.7 3.8 3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Modified: trunk/dports/lang/llvm-3.7/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.7/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.7/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -200,7 +200,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.7 3.8} {
+foreach ver {3.7 3.8 3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Modified: trunk/dports/lang/llvm-3.8/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.8/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.8/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -232,7 +232,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.8} {
+foreach ver {3.8 3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Modified: trunk/dports/lang/llvm-3.9/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.9/Portfile 2016-08-25 22:07:10 UTC (rev 151990)
+++ trunk/dports/lang/llvm-3.9/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -210,7 +210,7 @@
# blacklist current and future versions if they're not available in order to
# help break potential dependency cycles.
-foreach ver {3.8} {
+foreach ver {3.9 devel} {
if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
compiler.blacklist-append macports-clang-${ver}
}
Added: trunk/dports/lang/llvm-devel/Portfile
===================================================================
--- trunk/dports/lang/llvm-devel/Portfile (rev 0)
+++ trunk/dports/lang/llvm-devel/Portfile 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,413 @@
+# $Id$
+
+# TODO:
+# * Update clang subport to build against installed llvm
+
+PortSystem 1.0
+PortGroup select 1.0
+PortGroup compiler_blacklist_versions 1.0
+PortGroup active_variants 1.1
+PortGroup cmake 1.0
+
+set llvm_version devel
+set llvm_version_no_dot devel
+set clang_executable_version 4.0
+name llvm-${llvm_version}
+revision 0
+subport clang-${llvm_version} {}
+set suffix mp-${llvm_version}
+set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
+dist_subdir llvm
+categories lang
+platforms darwin
+license NCSA
+maintainers jeremyhu larryv
+
+if {${subport} eq "llvm-${llvm_version}"} {
+ homepage http://llvm.org/
+ description llvm is a next generation compiler infrastructure
+ long_description The LLVM Core libraries provide a modern source- and \
+ target-independent optimizer, along with code \
+ generation support for many popular CPUs (as well as \
+ some less common ones!) These libraries are built \
+ around a well specified code representation known as \
+ the LLVM intermediate representation ("LLVM IR").
+
+ depends_lib port:libedit port:libffi port:ncurses port:zlib
+ depends_run bin:perl:perl5 port:llvm_select
+
+ # 3.2.6's install_name_tool doesn't support load commands we might see with newer clang+ld64
+ # 4.3 is just a guess here and should be updated if there are additional reports with other Xcode versions
+ if {[vercmp $xcodeversion 4.3] < 0 && [string match "*macports*" ${configure.compiler}]} {
+ depends_build-append port:cctools
+ }
+} elseif {${subport} eq "clang-${llvm_version}"} {
+ homepage http://clang.llvm.org/
+ description C, C++, Objective C and Objective C++ compiler
+ long_description Clang is an "LLVM native" C/C++/Objective-C compiler, \
+ which aims to deliver amazingly fast compiles (e.g. \
+ about 3x faster than GCC when compiling Objective-C \
+ code in a debug configuration), extremely useful error \
+ and warning messages and to provide a platform for \
+ building great source level tools. The included Clang \
+ Static Analyzer is a tool that automatically finds bugs in \
+ your code, and is a great example of the sort of tool \
+ that can be built using the Clang frontend as a \
+ library to parse C/C++ code.
+
+ depends_lib port:libxml2 port:libomp port:llvm-${llvm_version} port:python27
+ depends_run port:clang_select port:ld64
+ depends_extract bin:svn:subversion
+ depends_build-append port:cctools
+ depends_skip_archcheck-append cctools ld64 subversion
+
+ # Clang doesn't actually use any of these, but the LLVM makefile
+ # system overlinks its binaries. Remove (or convert to build deps?)
+ # after #46040 is resolved.
+ depends_lib-append port:libedit port:libffi port:ncurses port:zlib
+
+ default_variants +analyzer
+}
+
+fetch.type svn
+svn.revision 279763
+
+set compiler_rt_rev ${svn.revision}
+set libcxx_rev ${svn.revision}
+set clang-modernize_rev ${svn.revision}
+version ${llvm_version}-r${svn.revision}
+worksrcdir trunk
+svn.url https://llvm.org/svn/llvm-project/llvm/trunk
+#worksrcdir release_${llvm_version_no_dot}
+#svn.url https://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot}
+default_variants-append +assertions
+default_variants-append +debug
+
+#version ${llvm_version}.0
+#epoch 1
+#master_sites http://llvm.org/releases/${version}
+#use_xz yes
+#extract.suffix .tar.xz
+#distfiles llvm-${version}.src${extract.suffix}
+#worksrcdir llvm-${version}.src
+
+if {${distfiles} ne ""} {
+ if {${subport} eq "llvm-${llvm_version}"} {
+ if {[variant_isset polly]} {
+ distfiles-append polly-${version}.src${extract.suffix}
+ }
+ } elseif {${subport} eq "clang-${llvm_version}"} {
+ distfiles-append cfe-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix} clang-tools-extra-${version}.src${extract.suffix}
+ }
+}
+
+patch.pre_args -p1
+patchfiles \
+ 0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch \
+ 0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch \
+ 0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
+
+if {${subport} eq "clang-${llvm_version}"} {
+ patchfiles-append \
+ 1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
+ 1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch \
+ 1003-Default-to-ppc7400-for-OSX-10.5.patch \
+ 1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch \
+ 1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch \
+ 2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch \
+ 3001-buildit-build-fix-for-Leopard.patch \
+ 3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch \
+ 3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch \
+ 3004-Fix-missing-long-long-math-prototypes-when-using-the.patch \
+ 3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
+ openmp-locations.patch
+
+ # https://llvm.org/bugs/show_bug.cgi?id=25681
+ if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
+ # Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
+ # Cannot set cxxflags due to https://llvm.org/bugs/show_bug.cgi?id=25904
+ #configure.cxxflags-append -DSVN_REVISION='"${svn.revision}"'
+
+ post-patch {
+ reinplace "1 i \\
+ #define SVN_REVISION \"${svn.revision}\"
+ " ${worksrcpath}/tools/clang/lib/Basic/Version.cpp
+ }
+ }
+}
+
+configure.post_args ../${worksrcdir}
+default configure.dir {${workpath}/build}
+default build.dir {${workpath}/build}
+
+# https://llvm.org/bugs/show_bug.cgi?id=25664
+configure.ldflags-append -Wl,-rpath, at loader_path
+
+# https://trac.macports.org/ticket/51542
+configure.ldflags-append -Wl,-rpath, at loader_path/
+
+configure.args-append \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DCMAKE_INSTALL_PREFIX="${sub_prefix}" \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_ENABLE_FFI=ON \
+ -DLLVM_BINDINGS_LIST=none \
+ -DFFI_INCLUDE_DIR=${prefix}/include \
+ -DFFI_LIBRARY_DIR=${prefix}/lib
+
+if {${subport} eq "llvm-${llvm_version}"} {
+ select.group llvm
+ select.file ${filespath}/mp-${subport}
+} elseif {${subport} eq "clang-${llvm_version}"} {
+ select.group clang
+ select.file ${filespath}/mp-${subport}
+
+ configure.args-append \
+ -DCLANG_INCLUDE_TESTS=OFF \
+ -DCLANG_ENABLE_STATIC_ANALYZER=OFF \
+ -DLLVM_BUILD_RUNTIME=ON \
+ -DLIBCXX_ENABLE_SHARED=OFF \
+ -DLIBCXX_INSTALL_LIBRARY=OFF
+
+ # TODO: libc++ shouldn't be built at all.
+ # https://llvm.org/bugs/show_bug.cgi?id=25666
+
+ if {${os.major} <= 12} {
+ # We unfortunately don't have an option to just turn off tsan
+ # https://llvm.org/bugs/show_bug.cgi?id=27715
+ configure.args-append \
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ }
+}
+
+# llvm-3.5 and later requires a C++11 runtime
+# XCode 4.3's clang (318.x) fails per https://trac.macports.org/ticket/44161
+# XCode 4.5's clang (421.11.66) fails due to http://llvm.org/bugs/show_bug.cgi?id=20184
+# Xcode 4.6.3's clang (425.0.28) fails due to http://trac.macports.org/ticket/46897
+# Xcode 5.1.0's clang (503.0.35) fails due to https://llvm.org/bugs/show_bug.cgi?id=25673
+# Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
+# clang older than 3.5 fail due to https://llvm.org/bugs/show_bug.cgi?id=25753
+compiler.blacklist *gcc* {clang < 602} macports-clang-3.3 macports-clang-3.4
+
+# Remove this when loosening the blacklist above or when a newer base is released
+compiler.fallback-append macports-clang-3.7 macports-clang-3.6 macports-clang-3.5
+
+if {${subport} eq "clang-${llvm_version}"} {
+ # Don't self-host. We may have issues if we have a slightly newer llvm version that
+ # is not binary compatible with the older clang version we're trying to use.
+
+ compiler.blacklist-append macports-clang-${llvm_version}
+}
+
+# blacklist current and future versions if they're not available in order to
+# help break potential dependency cycles.
+foreach ver {devel} {
+ if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
+ compiler.blacklist-append macports-clang-${ver}
+ }
+}
+
+platform darwin {
+ # Note that we are forcing this choice. This means that anything linking
+ # against llvm-3.5 needs to also be using libc++. This is possibly
+ # problematic, but luckily there is just a limited set of such dependents.
+
+ configure.cxx_stdlib libc++
+ depends_lib-append port:libcxx
+ supported_archs i386 x86_64
+
+ pre-fetch {
+ if {![file exists /usr/lib/libc++.dylib]} {
+ ui_error "$name requires a C++11 runtime, which your configuration does not allow"
+ error "unsupported configuration"
+ }
+ }
+}
+
+variant universal {
+ post-extract {
+ # workaround a bug in Apple's shipped gcc driver-driver, patched in
+ # ours with driverdriver-num_infiles.patch
+ if {${configure.compiler} eq "gcc-4.0" ||
+ ${configure.compiler} eq "gcc-4.2" ||
+ ${configure.compiler} eq "llvm-gcc-4.2"} {
+ system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+ }
+ }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+ configure.args-delete -DLLVM_ENABLE_ASSERTIONS=OFF
+ configure.args-append -DLLVM_ENABLE_ASSERTIONS=ON
+}
+
+platform darwin {
+ if {[string match "*ppc*" [get_canonical_archs]]} {
+ # http://trac.macports.org/ticket/33987
+ configure.optflags -Os
+ }
+
+ if {${subport} eq "clang-${llvm_version}" && [vercmp $xcodeversion 5.0] < 0} {
+ # https://llvm.org/bugs/show_bug.cgi?id=13671
+ patchfiles-append leopard-no-asan.patch
+ configure.args-append -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ }
+
+ if {${subport} eq "clang-${llvm_version}" && ${os.major} <= 9} {
+ patchfiles-append leopard-no-blocks.patch
+ }
+
+ if {${os.major} < 11} {
+ # Proxy for eliminating the dependency on native TLS
+ # http://trac.macports.org/ticket/46887
+ configure.args-append -DLLVM_ENABLE_BACKTRACES=OFF
+
+ # https://llvm.org/bugs/show_bug.cgi?id=25680
+ configure.cxxflags-append -U__STRICT_ANSI__
+ }
+
+ # https://llvm.org/bugs/show_bug.cgi?id=25674
+ configure.cxxflags-append -std=c++11
+}
+
+post-extract {
+ # Get HTTP proxy arguments if required, assuming we can use the same proxy for all repositories
+ set proxy_args [portfetch::svn_proxy_args http://llvm.org/svn/llvm-project/cfe/trunk]
+ if {${subport} eq "llvm-${llvm_version}"} {
+ if {[variant_isset polly]} {
+ if {${worksrcdir} eq "trunk"} {
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/polly/trunk polly"
+ } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
+ } else {
+ file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
+ }
+ }
+ } elseif {${subport} eq "clang-${llvm_version}"} {
+ if {${worksrcdir} eq "trunk"} {
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/trunk clang"
+ system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt"
+ system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/trunk libcxx"
+ system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra"
+ } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
+ system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/branches/release_${llvm_version_no_dot} compiler-rt"
+ system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/branches/release_${llvm_version_no_dot} libcxx"
+ system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} http://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_${llvm_version_no_dot} extra"
+ } else {
+ file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
+ file rename ${workpath}/compiler-rt-${version}.src ${worksrcpath}/projects/compiler-rt
+ file rename ${workpath}/libcxx-${version}.src ${worksrcpath}/projects/libcxx
+ file rename ${workpath}/clang-tools-extra-${version}.src ${worksrcpath}/tools/clang/tools/extra
+ }
+ }
+}
+
+if {${subport} eq "clang-${llvm_version}"} {
+ destroot {
+ system "cd ${destroot.dir}/tools/clang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+ system "cd ${destroot.dir}/projects/compiler-rt && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+ system "cd ${destroot.dir}/projects/libcxx && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+
+ delete ${destroot}${sub_prefix}/bin/clang
+ file rename ${destroot}${sub_prefix}/bin/clang-${clang_executable_version} ${destroot}${sub_prefix}/bin/clang
+ }
+}
+
+post-destroot {
+ foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
+ set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
+ set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
+
+ xinstall -m 755 "${filespath}/llvm-bin" "${bin_filename}"
+ reinplace "s:EXEC_PATH:${exec_path}:" "${bin_filename}"
+ }
+
+ if {${subport} eq "llvm-${llvm_version}"} {
+ # r156389 (a5d2435409858728970202226d0bbbee508fe408) temporarilary removed llvm man pages
+ #foreach man [glob ${destroot}${sub_prefix}/share/man/man1/*.1] {
+ # set basename [string map "${destroot}${sub_prefix}/share/man/man1/ {}" ${man}]
+ # file rename ${man} ${destroot}${prefix}/share/man/man1/[string map ".1 -${suffix}.1" ${basename}]
+ #}
+
+ # https://llvm.org/bugs/show_bug.cgi?id=19465
+ if {[variant_isset polly]} {
+ ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
+ }
+ } elseif {${subport} eq "clang-${llvm_version}"} {
+ system "ditto ${worksrcpath}/projects/libcxx/include ${destroot}${sub_prefix}/lib/c++/v1"
+
+ # http://trac.macports.org/ticket/33207
+ ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
+ }
+}
+
+if {${subport} eq "llvm-${llvm_version}"} {
+ variant polly description {Provide the polly polyhedral optimizer} {}
+
+ # Unless upstream reverts to their old OCaml detection mechanism,
+ # this variant will be broken until #46161 is resolved.
+ variant ocaml description {Enable generation of OCaml binding} {
+ depends_lib-append port:ocaml
+
+ configure.args-delete -DLLVM_BINDINGS_LIST=none
+ configure.args-append -DLLVM_BINDINGS_LIST=ocaml
+
+ destroot.args-append OVERRIDE_libdir=${sub_prefix}/lib
+ }
+} elseif {${subport} eq "clang-${llvm_version}"} {
+ if {[variant_isset assertions]} {
+ # Need to match llvm +-assertions
+ require_active_variants port:llvm-${llvm_version} assertions
+ } else {
+ # Need to match llvm +-assertions
+ require_active_variants port:llvm-${llvm_version} {} assertions
+ }
+
+ variant analyzer description {Install clang static analyzer} {
+ configure.args-delete \
+ -DCLANG_ENABLE_STATIC_ANALYZER=OFF
+ configure.args-append \
+ -DCLANG_ENABLE_STATIC_ANALYZER=ON
+
+ depends_run-append port:perl5
+
+ post-patch {
+ reinplace "s|/usr/bin/env perl|${prefix}/bin/perl5|g" \
+ ${worksrcpath}/tools/clang/tools/scan-build/libexec/ccc-analyzer \
+ ${worksrcpath}/tools/clang/tools/scan-build/libexec/c++-analyzer \
+ ${worksrcpath}/tools/clang/tools/scan-build/bin/scan-build
+ reinplace "s|/usr/bin/env python|${prefix}/bin/python2.7|g" \
+ ${worksrcpath}/tools/clang/tools/scan-build/bin/set-xcode-analyzer \
+ ${worksrcpath}/tools/clang/tools/scan-view/bin/scan-view
+ }
+ }
+
+ post-patch {
+ reinplace "s|@@PREFIX@@|${prefix}|" \
+ ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp
+
+ reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-bbedit.applescript \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-diff.py \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-sublime.py \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format.el \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format.py
+ }
+
+ post-destroot {
+ file mkdir ${destroot}${sub_prefix}/libexec
+ file copy ${worksrcpath}/tools/clang/tools/clang-format ${destroot}${sub_prefix}/libexec/clang-format
+
+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/.svn
+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/Makefile
+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/Release+Debug+Asserts
+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/CMakeLists.txt
+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/ClangFormat.cpp
+ }
+}
+
+livecheck.type none
Property changes on: trunk/dports/lang/llvm-devel/Portfile
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,55 @@
+From 7c7ac9a92497d52494a841bd1bcf6df07b0f4d13 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 09:03:43 -0800
+Subject: [PATCH 1/4] Set the Mach-O CPU Subtype to ppc7400 when targeting
+ Leopard
+
+http://llvm.org/bugs/show_bug.cgi?id=18463
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+index b6dd595..11a7953 100644
+--- llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
++++ macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+@@ -201,16 +201,23 @@ public:
+ // FIXME: This should be in a separate file.
+ namespace {
+ class DarwinPPCAsmBackend : public PPCAsmBackend {
++ Triple TheTriple;
+ public:
+- DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, false) { }
++ DarwinPPCAsmBackend(const Target &T, const Triple &TT) : PPCAsmBackend(T, false), TheTriple(TT) { }
+
+ MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
+ bool is64 = getPointerSize() == 8;
++ MachO::CPUSubTypePowerPC CS = MachO::CPU_SUBTYPE_POWERPC_ALL;
++
++ if (TheTriple.isOSDarwin() && !TheTriple.isMacOSXVersionLT(10,5)) {
++ CS = MachO::CPU_SUBTYPE_POWERPC_7400;
++ }
++
+ return createPPCMachObjectWriter(
+ OS,
+ /*Is64Bit=*/is64,
+ (is64 ? MachO::CPU_TYPE_POWERPC64 : MachO::CPU_TYPE_POWERPC),
+- MachO::CPU_SUBTYPE_POWERPC_ALL);
++ CS);
+ }
+ };
+
+@@ -232,7 +239,7 @@ MCAsmBackend *llvm::createPPCAsmBackend(const Target &T,
+ const MCRegisterInfo &MRI,
+ const Triple &TT, StringRef CPU) {
+ if (TT.isOSDarwin())
+- return new DarwinPPCAsmBackend(T);
++ return new DarwinPPCAsmBackend(T, TT);
+
+ uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS());
+ bool IsLittleEndian = TT.getArch() == Triple::ppc64le;
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,36 @@
+From 8600795c2b9d37dc8eb8aa18dc38e7abe8767a36 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sun, 18 Jan 2015 11:18:13 -0800
+Subject: [PATCH 2/4] Define EXC_MASK_CRASH and MACH_EXCEPTION_CODES if they're
+ not defined in the SDK
+
+The 10.4 SDK does not define these macros
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Support/Unix/Signals.inc | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git llvm_master/lib/Support/Unix/Signals.inc macports_master/lib/Support/Unix/Signals.inc
+index 061cdb3..4d687b3 100644
+--- llvm_master/lib/Support/Unix/Signals.inc
++++ macports_master/lib/Support/Unix/Signals.inc
+@@ -387,6 +387,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal(bool DisableCrashReporting) {
+ AddSignalHandler(PrintStackTraceSignalHandler, nullptr);
+
+ #if defined(__APPLE__) && defined(ENABLE_CRASH_OVERRIDES)
++
++/* These aren't defined in the 10.4 SDK, so provide them here */
++#ifndef EXC_MASK_CRASH
++#define EXC_MASK_CRASH 0x400
++#endif
++#ifndef MACH_EXCEPTION_CODES
++#define MACH_EXCEPTION_CODES 0x80000000
++#endif
++
+ // Environment variable to disable any kind of crash dialog.
+ if (DisableCrashReporting || getenv("LLVM_DISABLE_CRASH_REPORT")) {
+ mach_port_t self = mach_task_self();
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,29 @@
+From f37d1e0f822b626119ca4b8873bf54418734e75a Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:41:30 -0800
+Subject: [PATCH 3/4] MacPorts Only: Don't embed the deployment target in the
+ asm when using -fno-integrated-as
+
+http://llvm.org/bugs/show_bug.cgi?id=21636
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git llvm_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+index 4d945bd..5cbf88c 100644
+--- llvm_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
++++ macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+@@ -193,7 +193,7 @@ bool AsmPrinter::doInitialization(Module &M) {
+ // anyway.
+ Triple TT(getTargetTriple());
+ // If there is a version specified, Major will be non-zero.
+- if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0) {
++ if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0 && MAI->useIntegratedAssembler()) {
+ unsigned Major, Minor, Update;
+ MCVersionMinType VersionType;
+ if (TT.isWatchOS()) {
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,84 @@
+From ab5dbc40e2dc4220e0ba1e88a106266e9ba10f8b Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:50:24 -0800
+Subject: [PATCH 1001/1005] MacPorts Only: Prepare clang-format for replacement
+ with absolute path
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ tools/clang-format/clang-format-bbedit.applescript | 2 +-
+ tools/clang-format/clang-format-diff.py | 2 +-
+ tools/clang-format/clang-format-sublime.py | 2 +-
+ tools/clang-format/clang-format.el | 3 +--
+ tools/clang-format/clang-format.py | 2 +-
+ 5 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript macports_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
+index fa88fe9..eb09448 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
++++ macports_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
+@@ -15,7 +15,7 @@ tell application "BBEdit"
+ end tell
+
+ set filePath to urlToPOSIXPath(fileURL)
+-set newContents to do shell script "/path/to/clang-format -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
++set newContents to do shell script "@CLANG_FORMAT_PATH@ -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
+
+ tell application "BBEdit"
+ -- "set contents of text document 1 to newContents" scrolls to the bottom while
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-diff.py macports_master/tools/clang/tools/clang-format/clang-format-diff.py
+index 5e728f5..b23c3c8 100755
+--- llvm_master/tools/clang/tools/clang-format/clang-format-diff.py
++++ macports_master/tools/clang/tools/clang-format/clang-format-diff.py
+@@ -55,7 +55,7 @@ def main():
+ parser.add_argument('-style',
+ help='formatting style to apply (LLVM, Google, Chromium, '
+ 'Mozilla, WebKit)')
+- parser.add_argument('-binary', default='clang-format',
++ parser.add_argument('-binary', default='@CLANG_FORMAT_PATH@',
+ help='location of binary to use for clang-format')
+ args = parser.parse_args()
+
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-sublime.py macports_master/tools/clang/tools/clang-format/clang-format-sublime.py
+index 16ff56e..4b68104 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format-sublime.py
++++ macports_master/tools/clang/tools/clang-format/clang-format-sublime.py
+@@ -18,7 +18,7 @@ import sublime_plugin
+ import subprocess
+
+ # Change this to the full path if clang-format is not on the path.
+-binary = 'clang-format'
++binary = '@CLANG_FORMAT_PATH@'
+
+ # Change this to format according to other formatting styles. See the output of
+ # 'clang-format --help' for a list of supported styles. The default looks for
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format.el macports_master/tools/clang/tools/clang-format/clang-format.el
+index ca46144..1c49835 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format.el
++++ macports_master/tools/clang/tools/clang-format/clang-format.el
+@@ -36,8 +36,7 @@
+ :group 'tools)
+
+ (defcustom clang-format-executable
+- (or (executable-find "clang-format")
+- "clang-format")
++ "@CLANG_FORMAT_PATH@"
+ "Location of the clang-format executable.
+
+ A string containing the name or the full path of the executable."
+diff --git llvm_master/tools/clang/tools/clang-format/clang-format.py macports_master/tools/clang/tools/clang-format/clang-format.py
+index 5cb41fc..e8a5904 100644
+--- llvm_master/tools/clang/tools/clang-format/clang-format.py
++++ macports_master/tools/clang/tools/clang-format/clang-format.py
+@@ -34,7 +34,7 @@ import vim
+
+ # set g:clang_format_path to the path to clang-format if it is not on the path
+ # Change this to the full path if clang-format is not on the path.
+-binary = 'clang-format'
++binary = '@CLANG_FORMAT_PATH@'
+ if vim.eval('exists("g:clang_format_path")') == "1":
+ binary = vim.eval('g:clang_format_path')
+
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,29 @@
+From f251a1bd711d637013a19dddb23bc0e7ab6ef685 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 17:55:27 -0800
+Subject: [PATCH 1002/1005] MacPorts Only: Fix name of scan-view executable
+ inside scan-build
+
+http://trac.macports.org/ticket/35006
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ tools/scan-build/bin/scan-build | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git llvm_master/tools/clang/tools/scan-build/bin/scan-build macports_master/tools/clang/tools/scan-build/bin/scan-build
+index 6a14484..319305f 100755
+--- llvm_master/tools/clang/tools/scan-build/bin/scan-build
++++ macports_master/tools/clang/tools/scan-build/bin/scan-build
+@@ -1817,6 +1817,8 @@ if (defined $Options{OutputFormat}) {
+ Diag "Analysis run complete.\n";
+ Diag "Viewing analysis results in '$Options{OutputDir}' using scan-view.\n";
+ my $ScanView = Cwd::realpath("$RealBin/scan-view");
++ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/bin/scan-view"); }
++ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../scan-view/scan-view"); }
+ if (! -x $ScanView) { $ScanView = "scan-view"; }
+ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); }
+ exec $ScanView, "$Options{OutputDir}";
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1003-Default-to-ppc7400-for-OSX-10.5.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,26 @@
+From 2bf8502dda4a3ec979b15644513b31c0547959b7 Mon Sep 17 00:00:00 2001
+From: Iain Sandoe <iain at codesourcery.com>
+Date: Sun, 27 Jul 2014 20:35:16 +0100
+Subject: [PATCH 1003/1005] Default to ppc7400 for OSX 10.5+
+
+---
+ lib/Driver/Tools.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git llvm_master/tools/clang/lib/Driver/Tools.cpp macports_master/tools/clang/lib/Driver/Tools.cpp
+index 2819ab3..e7d5a0c 100644
+--- llvm_master/tools/clang/lib/Driver/Tools.cpp
++++ macports_master/tools/clang/lib/Driver/Tools.cpp
+@@ -1751,6 +1751,9 @@ static std::string getCPUName(const ArgList &Args, const llvm::Triple &T,
+ TargetCPUName = "ppc64";
+ else if (T.getArch() == llvm::Triple::ppc64le)
+ TargetCPUName = "ppc64le";
++ else if (T.isOSDarwin() && !T.isMacOSXVersionLT(10,5))
++ // For 10.5+ Altivec is assumed available.
++ TargetCPUName = "7400";
+ else
+ TargetCPUName = "ppc";
+ }
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,29 @@
+From b81b30b857fbd33e4788688e4a157b37b0538947 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 19:08:57 -0800
+Subject: [PATCH 1004/1005] Only call setpriority(PRIO_DARWIN_THREAD, 0,
+ PRIO_DARWIN_BG) if it is available
+
+Tiger and earlier versions of darwin do not support this.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ tools/libclang/CIndex.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git llvm_master/tools/clang/tools/libclang/CIndex.cpp macports_master/tools/clang/tools/libclang/CIndex.cpp
+index b2a9ab8..98b50ce 100644
+--- llvm_master/tools/clang/tools/libclang/CIndex.cpp
++++ macports_master/tools/clang/tools/libclang/CIndex.cpp
+@@ -7744,7 +7744,7 @@ void clang::setThreadBackgroundPriority() {
+ if (getenv("LIBCLANG_BGPRIO_DISABLE"))
+ return;
+
+-#ifdef USE_DARWIN_THREADS
++#if defined(USE_DARWIN_THREADS) && defined(PRIO_DARWIN_THREAD) && defined(PRIO_DARWIN_BG)
+ setpriority(PRIO_DARWIN_THREAD, 0, PRIO_DARWIN_BG);
+ #endif
+ }
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,31 @@
+From e0bb397409adb1a6146dd5c1e044e0614070920e Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Tue, 20 Jan 2015 00:09:16 -0800
+Subject: [PATCH 1005/1005] Default to fragile ObjC runtime when targeting
+ darwin/ppc
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Driver/ToolChains.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git llvm_master/tools/clang/lib/Driver/ToolChains.h macports_master/tools/clang/lib/Driver/ToolChains.h
+index a5f5473..4f53d95 100644
+--- llvm_master/tools/clang/lib/Driver/ToolChains.h
++++ macports_master/tools/clang/lib/Driver/ToolChains.h
+@@ -324,8 +324,10 @@ public:
+ bool IsEncodeExtendedBlockSignatureDefault() const override { return true; }
+
+ bool IsObjCNonFragileABIDefault() const override {
+- // Non-fragile ABI is default for everything but i386.
+- return getTriple().getArch() != llvm::Triple::x86;
++ // Non-fragile ABI is default for legacy architectures
++ return getTriple().getArch() != llvm::Triple::x86 &&
++ getTriple().getArch() != llvm::Triple::ppc &&
++ getTriple().getArch() != llvm::Triple::ppc64;
+ }
+
+ bool UseObjCMixedDispatch() const override { return true; }
+--
+2.7.0
+
Added: trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,45 @@
+From 56702152d81a7d993e3f25c64a93588196f09549 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Mon, 30 Nov 2015 00:52:14 -0500
+Subject: [PATCH 2001/2001] MacPorts Only: Don't check for the macosx.internal
+ SDK
+
+https://llvm.org/bugs/show_bug.cgi?id=25677
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ cmake/Modules/CompilerRTDarwinUtils.cmake | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 28d3986..92a51cf 100644
+--- llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -5,14 +5,6 @@ include(CMakeParseArguments)
+ # the current Xcode.
+ function(find_darwin_sdk_dir var sdk_name)
+ # Let's first try the internal SDK, otherwise use the public SDK.
+- execute_process(
+- COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path
+- RESULT_VARIABLE result_process
+- OUTPUT_VARIABLE var_internal
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- ERROR_FILE /dev/null
+- )
+- if((NOT result_process EQUAL 0) OR "" STREQUAL "${var_internal}")
+ execute_process(
+ COMMAND xcodebuild -version -sdk ${sdk_name} Path
+ RESULT_VARIABLE result_process
+@@ -20,9 +12,6 @@ function(find_darwin_sdk_dir var sdk_name)
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_FILE /dev/null
+ )
+- else()
+- set(${var}_INTERNAL ${var_internal} PARENT_SCOPE)
+- endif()
+ if(result_process EQUAL 0)
+ set(${var} ${var_internal} PARENT_SCOPE)
+ endif()
+--
+2.9.3
+
Added: trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3001-buildit-build-fix-for-Leopard.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,35 @@
+From 338a475972c93c0a819d8fb15050bcce638d3146 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Fri, 16 Jan 2015 21:10:35 -0800
+Subject: [PATCH 3001/3005] buildit build fix for Leopard
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/buildit | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git llvm_master/projects/libcxx/lib/buildit macports_master/projects/libcxx/lib/buildit
+index 7e3bc2e..2740dee 100755
+--- llvm_master/projects/libcxx/lib/buildit
++++ macports_master/projects/libcxx/lib/buildit
+@@ -50,7 +50,7 @@ case $TRIPLE in
+ RC_CFLAGS="-arch i386 -arch x86_64"
+ fi
+ SOEXT=dylib
+- if [ "$MACOSX_DEPLOYMENT_TARGET" = "10.6" ]
++ if [ "$MACOSX_DEPLOYMENT_TARGET" = "10.5" ] || [ "$MACOSX_DEPLOYMENT_TARGET" = "10.6" ]
+ then
+ EXTRA_FLAGS="-nostdinc++ -std=c++11 -U__STRICT_ANSI__"
+ LDSHARED_FLAGS="-o libc++.1.dylib \
+@@ -59,7 +59,7 @@ case $TRIPLE in
+ -install_name /usr/lib/libc++.1.dylib \
+ -Wl,-reexport_library,/usr/lib/libc++abi.dylib \
+ -Wl,-unexported_symbols_list,libc++unexp.exp \
+- /usr/lib/libSystem.B.dylib"
++ /usr/lib/libSystem.B.dylib /usr/lib/libgcc_s.1.dylib"
+ else
+ if [ -n "$SDKROOT" ]
+ then
+--
+2.6.1
+
Added: trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,28 @@
+From b132f1d99a4d68032981ac5eac247957640a11b2 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Fri, 16 Jan 2015 21:11:37 -0800
+Subject: [PATCH 3002/3005] buildit: Set compatibility version to
+ RC_ProjectSourceVersion
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/buildit | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git llvm_master/projects/libcxx/lib/buildit macports_master/projects/libcxx/lib/buildit
+index 2740dee..c74683f 100755
+--- llvm_master/projects/libcxx/lib/buildit
++++ macports_master/projects/libcxx/lib/buildit
+@@ -54,7 +54,8 @@ case $TRIPLE in
+ then
+ EXTRA_FLAGS="-nostdinc++ -std=c++11 -U__STRICT_ANSI__"
+ LDSHARED_FLAGS="-o libc++.1.dylib \
+- -dynamiclib -nodefaultlibs -current_version 1 \
++ -dynamiclib -nodefaultlibs \
++ -current_version ${RC_ProjectSourceVersion} \
+ -compatibility_version 1 \
+ -install_name /usr/lib/libc++.1.dylib \
+ -Wl,-reexport_library,/usr/lib/libc++abi.dylib \
+--
+2.6.1
+
Added: trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,45 @@
+From 763f41fd807928cec405fa391fb062cfd2cc5251 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Fri, 16 Jan 2015 21:34:36 -0800
+Subject: [PATCH 3003/3005] Fix <local> and <iterator> when building with Lion
+ and newer Availability.h
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ include/iterator | 4 ++--
+ include/locale | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git llvm_master/projects/libcxx/include/iterator macports_master/projects/libcxx/include/iterator
+index c06ef8f..168efa6 100644
+--- llvm_master/projects/libcxx/include/iterator
++++ macports_master/projects/libcxx/include/iterator
+@@ -920,8 +920,8 @@ public:
+ _LIBCPP_INLINE_VISIBILITY bool failed() const _NOEXCEPT {return __sbuf_ == 0;}
+
+ #if !defined(__APPLE__) || \
+- (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
+- (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
++ (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && defined(__MAC_10_8) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
++ (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
+
+ template <class _Ch, class _Tr>
+ friend
+diff --git llvm_master/projects/libcxx/include/locale macports_master/projects/libcxx/include/locale
+index 74898be..b82a3c7 100644
+--- llvm_master/projects/libcxx/include/locale
++++ macports_master/projects/libcxx/include/locale
+@@ -1474,8 +1474,8 @@ __pad_and_output(_OutputIterator __s,
+ }
+
+ #if !defined(__APPLE__) || \
+- (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
+- (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
++ (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && defined(__MAC_10_8) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
++ (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
+
+ template <class _CharT, class _Traits>
+ _LIBCPP_HIDDEN
+--
+2.6.1
+
Added: trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,41 @@
+From 133c794191c25455ffccacc703570c8e7b6b4379 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Sat, 17 Jan 2015 16:26:20 -0800
+Subject: [PATCH 3004/3005] Fix missing long long math prototypes when using
+ the Snow Leopard SDK
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ include/cmath | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git llvm_master/projects/libcxx/include/cmath macports_master/projects/libcxx/include/cmath
+index ebbde18..f6d0d31 100644
+--- llvm_master/projects/libcxx/include/cmath
++++ macports_master/projects/libcxx/include/cmath
+@@ -300,6 +300,22 @@ long double truncl(long double x);
+ #include <__config>
+ #include <math.h>
+
++#ifdef __APPLE__
++#include <Availability.h>
++#if __MAC_OS_X_VERSION_MAX_ALLOWED < 1070
++/* These prototypes are incorrectly omitted from <math.h> on Snow Leopard despite being available */
++extern "C" {
++ extern long long int llrintl(long double);
++ extern long long int llrint(double);
++ extern long long int llrintf(float);
++
++ extern long long int llroundl(long double);
++ extern long long int llround(double);
++ extern long long int llroundf(float);
++}
++#endif
++#endif // __APPLE__
++
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+ #pragma GCC system_header
+ #endif
+--
+2.6.1
+
Added: trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,316 @@
+From bfb3ae7b99d4efea34677d6931329efbb423415d Mon Sep 17 00:00:00 2001
+From: David Fang <fang at csl.cornell.edu>
+Date: Wed, 15 Jan 2014 21:27:34 -0800
+Subject: [PATCH 3005/3005] implement atomic<> using mutex/lock_guard for 64b
+ ops on 32b PPC not pretty, not fast, but passes atomic tests
+
+---
+ include/__atomic_locked | 240 ++++++++++++++++++++++++++++++++++++++++++++++++
+ include/atomic | 46 ++++++++++
+ 2 files changed, 286 insertions(+)
+ create mode 100644 include/__atomic_locked
+
+diff --git llvm_master/projects/libcxx/include/__atomic_locked macports_master/projects/libcxx/include/__atomic_locked
+new file mode 100644
+index 0000000..f10dd74
+--- /dev/null
++++ macports_master/projects/libcxx/include/__atomic_locked
+@@ -0,0 +1,240 @@
++// -*- C++ -*-
++//===--------------------------- __atomic_locked --------------------------===//
++//
++// The LLVM Compiler Infrastructure
++//
++// This file is distributed under the University of Illinois Open Source
++// License. See LICENSE.TXT for details.
++//
++//===----------------------------------------------------------------------===//
++
++#ifndef _LIBCPP_ATOMIC_LOCKED
++#define _LIBCPP_ATOMIC_LOCKED
++
++#include <__mutex_base> // for mutex and lock_guard
++
++/**
++ This provides slow-but-usable lock-based atomic access to
++ structures for which atomic lock-free functions are missing.
++ This is motivated by the desire for 64b atomic operations
++ on 32b PowerPC architectures.
++**/
++
++#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
++#pragma GCC system_header
++#endif
++
++_LIBCPP_BEGIN_NAMESPACE_STD
++
++template <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value>
++struct __atomic_mutex_locked // false
++{
++ mutable _Atomic(_Tp) __a_;
++ mutable mutex __lock_;
++ typedef lock_guard<mutex> lock_type;
++
++ _Tp& na(void) const { return reinterpret_cast<_Tp&>(__a_); }
++ volatile _Tp& na(void) const volatile { return reinterpret_cast<volatile _Tp&>(__a_); }
++
++ _LIBCPP_INLINE_VISIBILITY
++ bool is_lock_free() const volatile _NOEXCEPT
++ {return false;}
++ _LIBCPP_INLINE_VISIBILITY
++ bool is_lock_free() const _NOEXCEPT
++ {return false;}
++ _LIBCPP_INLINE_VISIBILITY
++ void store(_Tp __d, memory_order = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_)); na() = __d; }
++ _LIBCPP_INLINE_VISIBILITY
++ void store(_Tp __d, memory_order = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_); na() = __d; }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp load(memory_order = memory_order_seq_cst) const volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_)); return na(); }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp load(memory_order = memory_order_seq_cst) const _NOEXCEPT
++ { const lock_type g(__lock_); return na(); }
++ _LIBCPP_INLINE_VISIBILITY
++ operator _Tp() const volatile _NOEXCEPT {return load();}
++ _LIBCPP_INLINE_VISIBILITY
++ operator _Tp() const _NOEXCEPT {return load();}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp exchange(_Tp __d, memory_order = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ // or use std::swap
++ const _Tp ret = na(); na() = __d; return ret; }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp exchange(_Tp __d, memory_order = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_);
++ // or use std::swap
++ const _Tp ret = na(); na() = __d; return ret; }
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_weak(_Tp& __e, _Tp __d,
++ memory_order __s, memory_order __f) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ if (na() == __e) { na() = __d; return true; }
++ else { __e = na(); return false; }
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_weak(_Tp& __e, _Tp __d,
++ memory_order __s, memory_order __f) _NOEXCEPT
++ { const lock_type g(__lock_);
++ if (na() == __e) { na() = __d; return true; }
++ else { __e = na(); return false; }
++ }
++
++ // for now, _weak inditinguishable from _strong
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_strong(_Tp& __e, _Tp __d,
++ memory_order __s, memory_order __f) volatile _NOEXCEPT
++ {return compare_exchange_weak(__e, __d, __s, __f);}
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_strong(_Tp& __e, _Tp __d,
++ memory_order __s, memory_order __f) _NOEXCEPT
++ {return compare_exchange_weak(__e, __d, __s, __f);}
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_weak(_Tp& __e, _Tp __d,
++ memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ {return compare_exchange_weak(__e, __d, __m, __m);}
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_weak(_Tp& __e, _Tp __d,
++ memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ {return compare_exchange_weak(__e, __d, __m, __m);}
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_strong(_Tp& __e, _Tp __d,
++ memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ {return compare_exchange_strong(__e, __d, __m, __m);}
++ _LIBCPP_INLINE_VISIBILITY
++ bool compare_exchange_strong(_Tp& __e, _Tp __d,
++ memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ {return compare_exchange_strong(__e, __d, __m, __m);}
++
++ _LIBCPP_INLINE_VISIBILITY
++#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
++ __atomic_mutex_locked() _NOEXCEPT = default;
++#else
++ __atomic_mutex_locked() _NOEXCEPT : __a_() {}
++#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
++
++ _LIBCPP_INLINE_VISIBILITY
++ _LIBCPP_CONSTEXPR __atomic_mutex_locked(_Tp __d) _NOEXCEPT : __a_(__d) {}
++#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS
++ __atomic_mutex_locked(const __atomic_mutex_locked&) = delete;
++ __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) = delete;
++ __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) volatile = delete;
++#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
++private:
++ __atomic_mutex_locked(const __atomic_mutex_locked&);
++ __atomic_mutex_locked& operator=(const __atomic_mutex_locked&);
++ __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) volatile;
++#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
++}; // end struct __atomic_mutex_locked
++
++// atomic<Integral>
++
++template <class _Tp>
++struct __atomic_mutex_locked<_Tp, true>
++ : public __atomic_mutex_locked<_Tp, false>
++{
++ typedef __atomic_mutex_locked<_Tp, false> __base;
++ typedef typename __base::lock_type lock_type;
++ using __base::__lock_;
++ using __base::na;
++
++ _LIBCPP_INLINE_VISIBILITY
++ __atomic_mutex_locked() _NOEXCEPT _LIBCPP_DEFAULT
++ _LIBCPP_INLINE_VISIBILITY
++ _LIBCPP_CONSTEXPR __atomic_mutex_locked(_Tp __d) _NOEXCEPT : __base(__d) {}
++
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ const _Tp ret = na(); na() += __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_);
++ const _Tp ret = na(); na() += __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ const _Tp ret = na(); na() -= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_);
++ const _Tp ret = na(); na() -= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ const _Tp ret = na(); na() &= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_);
++ const _Tp ret = na(); na() &= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ const _Tp ret = na(); na() |= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_);
++ const _Tp ret = na(); na() |= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
++ { const lock_type g(const_cast<mutex&>(__lock_));
++ const _Tp ret = na(); na() ^= __op; return ret;
++ }
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
++ { const lock_type g(__lock_);
++ const _Tp ret = na(); na() ^= __op; return ret;
++ }
++
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator++(int) volatile _NOEXCEPT {return fetch_add(_Tp(1));}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator++(int) _NOEXCEPT {return fetch_add(_Tp(1));}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator--(int) volatile _NOEXCEPT {return fetch_sub(_Tp(1));}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator--(int) _NOEXCEPT {return fetch_sub(_Tp(1));}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator++() volatile _NOEXCEPT {return fetch_add(_Tp(1)) + _Tp(1);}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator++() _NOEXCEPT {return fetch_add(_Tp(1)) + _Tp(1);}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator--() volatile _NOEXCEPT {return fetch_sub(_Tp(1)) - _Tp(1);}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator--() _NOEXCEPT {return fetch_sub(_Tp(1)) - _Tp(1);}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator+=(_Tp __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator+=(_Tp __op) _NOEXCEPT {return fetch_add(__op) + __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator-=(_Tp __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator-=(_Tp __op) _NOEXCEPT {return fetch_sub(__op) - __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator&=(_Tp __op) volatile _NOEXCEPT {return fetch_and(__op) & __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator&=(_Tp __op) _NOEXCEPT {return fetch_and(__op) & __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator|=(_Tp __op) volatile _NOEXCEPT {return fetch_or(__op) | __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator|=(_Tp __op) _NOEXCEPT {return fetch_or(__op) | __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator^=(_Tp __op) volatile _NOEXCEPT {return fetch_xor(__op) ^ __op;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator^=(_Tp __op) _NOEXCEPT {return fetch_xor(__op) ^ __op;}
++};
++
++_LIBCPP_END_NAMESPACE_STD
++
++#endif // _LIBCPP_ATOMIC_LOCKED
+diff --git llvm_master/projects/libcxx/include/atomic macports_master/projects/libcxx/include/atomic
+index 13965fb..fb0266a 100644
+--- llvm_master/projects/libcxx/include/atomic
++++ macports_master/projects/libcxx/include/atomic
+@@ -1791,4 +1791,50 @@ typedef atomic<uintmax_t> atomic_uintmax_t;
+
+ _LIBCPP_END_NAMESPACE_STD
+
++#if defined(__ppc__) && !defined(__ppc64__)
++// specialize fallback implementation where 64b atomics are missing
++#include <__atomic_locked>
++
++_LIBCPP_BEGIN_NAMESPACE_STD
++
++template <>
++struct atomic<long long> : public __atomic_mutex_locked<long long>
++{
++ typedef long long _Tp;
++ typedef __atomic_mutex_locked<_Tp> __base;
++ _LIBCPP_INLINE_VISIBILITY
++ atomic() _NOEXCEPT _LIBCPP_DEFAULT
++ _LIBCPP_INLINE_VISIBILITY
++ _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
++
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator=(_Tp __d) volatile _NOEXCEPT
++ {__base::store(__d); return __d;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator=(_Tp __d) _NOEXCEPT
++ {__base::store(__d); return __d;}
++};
++
++template <>
++struct atomic<unsigned long long> :
++ public __atomic_mutex_locked<unsigned long long>
++{
++ typedef unsigned long long _Tp;
++ typedef __atomic_mutex_locked<_Tp> __base;
++ _LIBCPP_INLINE_VISIBILITY
++ atomic() _NOEXCEPT _LIBCPP_DEFAULT
++ _LIBCPP_INLINE_VISIBILITY
++ _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
++
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator=(_Tp __d) volatile _NOEXCEPT
++ {__base::store(__d); return __d;}
++ _LIBCPP_INLINE_VISIBILITY
++ _Tp operator=(_Tp __d) _NOEXCEPT
++ {__base::store(__d); return __d;}
++};
++
++_LIBCPP_END_NAMESPACE_STD
++#endif // defined(__ppc__) && !defined(__ppc64__)
++
+ #endif // _LIBCPP_ATOMIC
+--
+2.6.1
+
Added: trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/leopard-no-asan.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,12 @@
+--- a/projects/compiler-rt/cmake/config-ix.cmake 2015-11-29 22:17:04.000000000 -0800
++++ b/projects/compiler-rt/cmake/config-ix.cmake 2015-11-29 22:19:16.000000000 -0800
+@@ -313,9 +313,6 @@ if(APPLE)
+ else()
+ set(SANITIZER_MIN_OSX_VERSION 10.9)
+ endif()
+- if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7")
+- message(FATAL_ERROR "Too old OS X version: ${SANITIZER_MIN_OSX_VERSION}")
+- endif()
+ endif()
+
+ # We're setting the flag manually for each target OS
Added: trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/leopard-no-blocks.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,26 @@
+From 2500edffc9f1f44983927351eb60d4fe1cee4bcd Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Wed, 7 Jan 2015 03:42:15 -0800
+Subject: [PATCH] Leopard: Default to -fno-blocks
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Driver/ToolChains.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
+index 876bb01..27aa2ee 100644
+--- a/tools/clang/lib/Driver/ToolChains.h
++++ b/tools/clang/lib/Driver/ToolChains.h
+@@ -257,7 +257,7 @@ public:
+ bool IsBlocksDefault() const override {
+ // Always allow blocks on Apple; users interested in versioning are
+ // expected to use /usr/include/Block.h.
+- return true;
++ return false;
+ }
+ bool IsIntegratedAssemblerDefault() const override {
+ // Default integrated assembler to on for Apple's MachO targets.
+--
+2.2.1
+
Added: trunk/dports/lang/llvm-devel/files/llvm-bin
===================================================================
--- trunk/dports/lang/llvm-devel/files/llvm-bin (rev 0)
+++ trunk/dports/lang/llvm-devel/files/llvm-bin 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec EXEC_PATH "${@}"
Property changes on: trunk/dports/lang/llvm-devel/files/llvm-bin
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/dports/lang/llvm-devel/files/mp-clang-devel
===================================================================
--- trunk/dports/lang/llvm-devel/files/mp-clang-devel (rev 0)
+++ trunk/dports/lang/llvm-devel/files/mp-clang-devel 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,34 @@
+bin/c-index-test-mp-devel
+bin/clang++-mp-devel
+bin/clang-mp-devel
+bin/clang-format-mp-devel
+-
+bin/scan-build-mp-devel
+bin/scan-view-mp-devel
+bin/clang-apply-replacements-mp-devel
+bin/clang-check-mp-devel
+bin/clang-cl-mp-devel
+-
+bin/clang-query-mp-devel
+bin/clang-rename-mp-devel
+bin/clang-tidy-mp-devel
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
Added: trunk/dports/lang/llvm-devel/files/mp-llvm-devel
===================================================================
--- trunk/dports/lang/llvm-devel/files/mp-llvm-devel (rev 0)
+++ trunk/dports/lang/llvm-devel/files/mp-llvm-devel 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,60 @@
+bin/bugpoint-mp-devel
+bin/llc-mp-devel
+bin/lli-mp-devel
+bin/llvm-ar-mp-devel
+bin/llvm-as-mp-devel
+bin/llvm-bcanalyzer-mp-devel
+bin/llvm-config-mp-devel
+bin/llvm-cov-mp-devel
+bin/llvm-diff-mp-devel
+bin/llvm-dis-mp-devel
+bin/llvm-dwarfdump-mp-devel
+bin/llvm-extract-mp-devel
+-
+bin/llvm-link-mp-devel
+bin/llvm-mc-mp-devel
+bin/llvm-mcmarkup-mp-devel
+bin/llvm-nm-mp-devel
+bin/llvm-objdump-mp-devel
+-
+bin/llvm-ranlib-mp-devel
+bin/llvm-rtdyld-mp-devel
+bin/llvm-size-mp-devel
+-
+bin/llvm-stress-mp-devel
+bin/llvm-symbolizer-mp-devel
+bin/llvm-tblgen-mp-devel
+-
+-
+bin/opt-mp-devel
+bin/llvm-tblgen-mp-devel
+bin/llvm-readobj-mp-devel
+bin/llvm-profdata-mp-devel
+bin/llvm-dsymutil-mp-devel
+bin/llvm-cxxdump-mp-devel
+bin/llvm-pdbdump-mp-devel
+bin/llvm-c-test-mp-devel
+bin/llvm-dwp-mp-devel
+bin/llvm-lib-mp-devel
+bin/llvm-lto-mp-devel
+bin/llvm-split-mp-devel
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
Added: trunk/dports/lang/llvm-devel/files/openmp-locations.patch
===================================================================
--- trunk/dports/lang/llvm-devel/files/openmp-locations.patch (rev 0)
+++ trunk/dports/lang/llvm-devel/files/openmp-locations.patch 2016-08-25 22:42:32 UTC (rev 151991)
@@ -0,0 +1,53 @@
+--- orig/tools/clang/lib/Driver/Tools.cpp 2015-09-03 11:39:15.000000000 -0500
++++ fixed/tools/clang/lib/Driver/Tools.cpp 2015-09-03 11:44:09.000000000 -0500
+@@ -2534,12 +2534,18 @@
+
+ switch (getOpenMPRuntime(getToolChain(), Args)) {
+ case OMPRT_OMP:
++ // Automatically find MacPorts' libomp
++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
+ CmdArgs.push_back("-lomp");
+ break;
+ case OMPRT_GOMP:
++ // Automatically find MacPorts' libgomp (libomp)
++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
+ CmdArgs.push_back("-lgomp");
+ break;
+ case OMPRT_IOMP5:
++ // Automatically find MacPorts' libiomp5 (libomp)
++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
+ CmdArgs.push_back("-liomp5");
+ break;
+ case OMPRT_Unknown:
+@@ -4285,6 +4291,8 @@
+ case OMPRT_OMP:
+ case OMPRT_IOMP5:
+ // Clang can generate useful OpenMP code for these two runtime libraries.
++ // Automatically find MacPorts' omp.h
++ CmdArgs.push_back("-I@@PREFIX@@/include/libomp");
+ CmdArgs.push_back("-fopenmp");
+
+ // If no option regarding the use of TLS in OpenMP codegeneration is
+@@ -8527,9 +8535,13 @@
+ // Also link the particular OpenMP runtimes.
+ switch (getOpenMPRuntime(ToolChain, Args)) {
+ case OMPRT_OMP:
++ // Automatically find MacPorts' libomp
++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
+ CmdArgs.push_back("-lomp");
+ break;
+ case OMPRT_GOMP:
++ // Automatically find MacPorts' libgomp (libomp)
++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
+ CmdArgs.push_back("-lgomp");
+
+ // FIXME: Exclude this for platforms with libgomp that don't require
+@@ -8537,6 +8549,8 @@
+ CmdArgs.push_back("-lrt");
+ break;
+ case OMPRT_IOMP5:
++ // Automatically find MacPorts' libiomp5 (libomp)
++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
+ CmdArgs.push_back("-liomp5");
+ break;
+ case OMPRT_Unknown:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160825/5f1b9056/attachment-0001.html>
More information about the macports-changes
mailing list