<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9681f46fb4e93f966422703b3dccaf51814dcb5c">https://github.com/macports/macports-ports/commit/9681f46fb4e93f966422703b3dccaf51814dcb5c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9681f46fb4e93f966422703b3dccaf51814dcb5c
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Thu May 7 14:54:30 2020 -0700
<span style='display:block; white-space:pre;color:#404040;'> llvm/clang/lldb-devel: update to 20200505
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> downloads the monorepo from GitHub now
</span><span style='display:block; white-space:pre;color:#404040;'> moves the various folders into the positions to
</span><span style='display:block; white-space:pre;color:#404040;'> use the existing Portfile logic, which is a bit
</span><span style='display:block; white-space:pre;color:#404040;'> outdated now, but keeps things consistent
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> the clang/llvm/lldb ports should be moved over
</span><span style='display:block; white-space:pre;color:#404040;'> to the currently recommended monorepo build
</span><span style='display:block; white-space:pre;color:#404040;'> in time.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> closes: https://trac.macports.org/ticket/60108
</span><span style='display:block; white-space:pre;color:#404040;'> closes: https://trac.macports.org/ticket/58708
</span><span style='display:block; white-space:pre;color:#404040;'> closes: https://trac.macports.org/ticket/58687
</span><span style='display:block; white-space:pre;color:#404040;'> closes: https://trac.macports.org/ticket/56255
</span>---
lang/llvm-devel/Portfile | 340 +++++++--------------
...ly-Don-t-embed-the-deployment-target-in-t.patch | 4 +-
...ly-Fix-name-of-scan-view-executable-insid.patch | 32 +-
...-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch | 29 +-
...e-Check-that-a-certificate-for-lldb-is-pr.patch | 42 ---
...ompilerrtdarwinutils-find-macosxsdkversion.diff | 30 ++
...t-unix-path-copyfileclone-on-older-systems.diff | 7 +-
...p-use-older-cfname-and-fix-uuid-on-leopard.diff | 23 ++
...atch-libcxx-src-new-posix-memalign-leopard.diff | 53 ++++
...lchains-darwin-add-back-pre-10.6-link-libs.diff | 30 ++
.../files/5003-patch-llvm10-strnlen.diff | 51 ++++
...-patch-no-directory-watcher-on-snowleopard.diff | 11 +
...libcxx-includes-disable-availability-tests.diff | 13 +
lang/llvm-devel/files/9001-macports-libstdcxx.diff | 20 +-
lang/llvm-devel/files/leopard-no-asan.patch | 10 +-
lang/llvm-devel/files/openmp-locations.patch | 14 +-
16 files changed, 364 insertions(+), 345 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/Portfile b/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 819ec3b..d532c96 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,22 +1,38 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# TODO:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# * Update clang and lldb subports to build against installed libLLVM/libclang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> PortSystem 1.0
PortGroup select 1.0
PortGroup compiler_blacklist_versions 1.0
PortGroup active_variants 1.1
PortGroup cmake 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# for devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm-commit 6d6d48add8a8fcfbc311648a1d6b1ccc6e1e8b26
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set date 20200505
</span> set llvm_version devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set llvm_version_no_dot devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clang_executable_version 9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set lldb_executable_version 9.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# for release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# set llvm_version 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version_no_dot 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang_executable_version 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set lldb_executable_version 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup llvm llvm-project ${llvm-commit}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 b148e3ea84e63534ffac75bbe031d8343b65e55d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 f24a6c752717a57c11d8323dbf2cd869a436e64070cf8c8e84deee7d4fb62787 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 118617893
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# for release, use ${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# version ${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version ${date}-[string range ${llvm-commit} 0 7]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> name llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport clang-${llvm_version} { revision 1 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport lldb-${llvm_version} { revision 1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport clang-${llvm_version} { revision 0 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport lldb-${llvm_version} { revision 0 }
</span> set suffix mp-${llvm_version}
set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
dist_subdir llvm
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,16 +71,6 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> depends_run port:clang_select port:ld64
depends_skip_archcheck-append ld64 subversion
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Older Xcode's lipo doesn't support x86_64h slices
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/53159
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Older Xcode's ranlib doesn't understand objects produced by newer clang (malformed object (unknown load command 2))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/57412
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[vercmp $xcodeversion "6.0.0"] < 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:cctools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_run-append port:cctools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_skip_archcheck-append cctools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Avoid requiring a bootstrap version of perl5 on 10.6.
if {${os.major} >= 11} {
default_variants +analyzer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,66 +83,50 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>
depends_lib port:libxml2 port:libomp port:llvm-${llvm_version} port:ncurses
depends_build-append port:swig-python port:doxygen
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Clang doesn't actually use any of these, but the LLVM makefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # system overlinks its binaries. Remove (or convert to build deps?)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # after #46040 is resolved.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:libedit port:libffi port:ncurses port:zlib
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-fetch.type svn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-svn.revision 365158
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_extract-append port:subversion
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set compiler_rt_rev ${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set libcxx_rev ${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clang-modernize_rev ${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version ${llvm_version}-r${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-worksrcdir trunk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-svn.url https://llvm.org/svn/llvm-project/llvm/trunk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#worksrcdir release_${llvm_version_no_dot}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#svn.url https://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# for devel version only
</span> default_variants-append +assertions
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#default_variants-append +debug
</span>
# the backtik pkgconfig setting in the ffi config line requires pkg-config
depends_build-append port:pkgconfig
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#version ${llvm_version}.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#epoch 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#master_sites https://releases.llvm.org/${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#use_xz yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#extract.suffix .tar.xz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#distfiles llvm-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#worksrcdir llvm-${version}.src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir llvm-project/llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.dir ${workpath}/llvm-project/llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${workpath}/llvm-project-${llvm-commit} ${workpath}/llvm-project
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${distfiles} ne ""} {
</span> if {${subport} eq "llvm-${llvm_version}"} {
if {[variant_isset polly]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- distfiles-append polly-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/polly ${worksrcpath}/tools/polly
</span> }
} elseif {${subport} eq "clang-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 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}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/clang ${worksrcpath}/tools/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/compiler-rt ${worksrcpath}/projects/compiler-rt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/libcxx ${worksrcpath}/projects/libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/libcxxabi ${worksrcpath}/projects/libcxxabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/clang-tools-extra ${worksrcpath}/tools/clang/tools/extra
</span> } elseif {${subport} eq "lldb-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- distfiles-append cfe-${version}.src${extract.suffix} lldb-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/clang ${worksrcpath}/tools/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/llvm-project/lldb ${worksrcpath}/tools/lldb
</span> }
}
patch.pre_args -p1
patchfiles \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch \
</span> 0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch \
0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch \
0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
0005-Threading-Only-call-pthread_setname_np-on-SnowLeopar.patch \
0006-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# added by kencu for older systems support
</span> patchfiles-append \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff \
</span> 5000-patch-lib-support-unix-path-copyfileclone-on-older-systems.diff \
5001-patch-machoreader-strnlen.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 5002-patch-objdumper-strnlen.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5002-patch-objdumper-strnlen.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5003-patch-llvm10-strnlen.diff
</span>
if {${subport} eq "clang-${llvm_version}"} {
patchfiles-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -151,22 +141,15 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> 2002-Work-around-no-libdispatch-on-10.6.patch \
3001-Fix-missing-long-long-math-prototypes-when-using-the.patch \
3002-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- openmp-locations.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://llvm.org/bugs/show_bug.cgi?id=25681
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Cannot set cxxflags due to https://llvm.org/bugs/show_bug.cgi?id=25904
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #configure.cxxflags-append -DSVN_REVISION='"${svn.revision}"'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ openmp-locations.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ leopard-no-asan.patch
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace "1 i \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define SVN_REVISION \"${svn.revision}\"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- " ${worksrcpath}/tools/clang/lib/Basic/Version.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5000-patch-compilerrtdarwinutils-find-macosxsdkversion.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5001-patch-libcxx-src-new-posix-memalign-leopard.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${subport} eq "lldb-${llvm_version}"} {
# lldb needs the clang sources present, so we apply the applicable patches.
patchfiles-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -177,21 +160,7 @@ if {${subport} eq "lldb-${llvm_version}"} {
</span> 1005-Fixup-libstdc-header-search-paths-for-older-versions.patch \
1006-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
1007-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 4001-Revert-CMake-Check-that-a-certificate-for-lldb-is-pr.patch \
</span> openmp-locations.patch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://llvm.org/bugs/show_bug.cgi?id=25681
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Cannot set cxxflags due to https://llvm.org/bugs/show_bug.cgi?id=25904
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #configure.cxxflags-append -DSVN_REVISION='"${svn.revision}"'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace "1 i \\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define SVN_REVISION \"${svn.revision}\"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- " ${worksrcpath}/tools/clang/lib/Basic/Version.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span> }
configure.post_args ../${worksrcdir}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -207,9 +176,10 @@ cmake.install_prefix ${sub_prefix}
</span> # https://trac.macports.org/ticket/53299
configure.args-delete \
-DCMAKE_INSTALL_NAME_DIR=${cmake.install_prefix}/lib \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCMAKE_INSTALL_RPATH=${cmake.install_prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCMAKE_SYSTEM_PREFIX_PATH="${prefix}\;/usr"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_INSTALL_RPATH=${cmake.install_prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_SYSTEM_PREFIX_PATH="${prefix}\;/usr" \
</span> -DCMAKE_SYSTEM_PREFIX_PATH="${cmake.install_prefix}\;${prefix}\;/usr"
configure.args-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -241,33 +211,6 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> -DLIBCXX_ENABLE_SHARED=OFF \
-DLIBCXX_INSTALL_LIBRARY=OFF
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # TODO: libc++ shouldn't be built at all.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://llvm.org/bugs/show_bug.cgi?id=25666
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.major} <= 13} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # We unfortunately don't have an option to just turn off tsan
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://llvm.org/bugs/show_bug.cgi?id=27715
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.major} <= 13} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # libfuzzer uses TLS, fails on 10.9 and less
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # possibly fixable, see https://trac.macports.org/ticket/58291
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.major} <= 14} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # XRAY uses TLS, MAP_ANONYMOUS, and clock_gettime, so disable it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # on systems that don't currently support these features
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://trac.macports.org/ticket/57130
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://bugs.llvm.org/show_bug.cgi?id=38959
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://bugs.llvm.org/show_bug.cgi?id=38958
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCOMPILER_RT_BUILD_XRAY=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> } elseif {${subport} eq "lldb-${llvm_version}"} {
#select.group lldb
#select.file ${filespath}/mp-${subport}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -282,39 +225,21 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> -DLIBCXX_INSTALL_LIBRARY=OFF
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# llvm-3.5 and later requires a C++11 runtime
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Xcode 4.3's clang (318.x) fails per https://trac.macports.org/ticket/44161
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Xcode 4.5's clang (421.11.66) fails due to http://llvm.org/bugs/show_bug.cgi?id=20184
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Xcode 4.6.3's clang (425.0.28) fails due to http://trac.macports.org/ticket/46897
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Xcode 4.6.3's clang (425.0.28) fails due to https://llvm.org/bugs/show_bug.cgi?id=30384
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Xcode 5.1's clang (clang-503.0.40) has codegen issues (resulting compiler crashes)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist *gcc* {clang < 602}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# clang older than 3.5 fail due to https://llvm.org/bugs/show_bug.cgi?id=25753
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# new llvms build with clang-3.4 but have codegen issues resulting compiler crashes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append macports-clang-3.3 macports-clang-3.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} < 18} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.fallback-append macports-clang-3.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# not building with macports-clang up to 3.7 or xcode clang up to 800.0.42.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error: no type named 'type' in 'std::__1::enable_if<false, void>'; 'enable_if' cannot be used to disable this declaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ,typename enable_if<is_convertible<const _U1&, _T1>::value &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist *gcc* {clang < 801} macports-clang-3.*
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Xcode 6.4's clang (602.0.53) fails to build lldb with 'thread-local storage is not supported for the current target'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.blacklist-append {clang < 700}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Override the normal compiler fallback list entirely since we have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# such specific requirements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.fallback clang
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# blacklist current and future versions if they're not available in order to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# help break potential dependency cycles.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {devel} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.blacklist-append macports-clang-${ver}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# fall back to clang-9.0 when system clang is too old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clang-9.0 was that last one that built with clang-3.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.fallback-append macports-clang-9.0
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# I'm not sure the exact version of Xcode that has a good enough libtool, but 3.2.6 seems to get past this when 3.1.4 doesn't:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# /Developer/usr/bin/libtool: for architecture x86_64 object: CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o malformed object (unknown load command 1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# /Developer/usr/bin/libtool: for architecture: (null) file: CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o is not an object file (not allowed in a library)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# /Developer/usr/bin/libtool: for architecture i386 object: CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o malformed object (unknown load command 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cctools is needed to handle objects from newer clang toolchains
</span> if {[string match macports-clang-* ${configure.compiler}]} {
depends_build-append port:cctools
depends_skip_archcheck-append cctools
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -352,41 +277,54 @@ platform darwin {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant universal {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # workaround a bug in Apple's shipped gcc driver-driver, patched in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # ours with driverdriver-num_infiles.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${configure.compiler} eq "gcc-4.0" ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${configure.compiler} eq "gcc-4.2" ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${configure.compiler} eq "llvm-gcc-4.2"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> 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 {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string match "*ppc*" [get_canonical_archs]]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://trac.macports.org/ticket/33987
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.optflags -Os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "clang-${llvm_version}" && [vercmp $xcodeversion 5.0] < 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://llvm.org/bugs/show_bug.cgi?id=13671
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append leopard-no-asan.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "clang-${llvm_version}"} {
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "clang-${llvm_version}" && ${os.major} <= 9} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append leopard-no-blocks.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 15} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # XRAY uses TLS, MAP_ANONYMOUS, and clock_gettime, so disable it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # on systems that don't currently support these features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://trac.macports.org/ticket/57130
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://bugs.llvm.org/show_bug.cgi?id=38959
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://bugs.llvm.org/show_bug.cgi?id=38958
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TO DO: all these features can be replaced by legacysupport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_XRAY=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCLANG_ENABLE_CLANGD=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We unfortunately don't have an option to just turn off tsan
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://llvm.org/bugs/show_bug.cgi?id=27715
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # libfuzzer uses TLS, fails on 10.9 and less
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # possibly fixable, see https://trac.macports.org/ticket/58291
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TO DO: TLS is available by using a macports-clang compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the directorywatcher code in clang-9.0+ is 10.7+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # I believe this patch could be applied always, without a system test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 5003-patch-no-directory-watcher-on-snowleopard.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the libcxx installed by MacPorts on darwin 10 and less does not correspond to Apple's builtin libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 5005-MacPorts-only-patch-libcxx-includes-disable-availability-tests.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "clang-${llvm_version}" && ${os.major} <= 14} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append -DCLANG_ENABLE_CLANGD=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 9} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TO DO: the blocks functionality can be replaced by libblocksruntime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # this might be integrated into clang on < 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append leopard-no-blocks.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
if {${os.major} < 11} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -397,14 +335,11 @@ platform darwin {
</span> # https://llvm.org/bugs/show_bug.cgi?id=25680
configure.cxxflags-append -U__STRICT_ANSI__
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://llvm.org/bugs/show_bug.cgi?id=25674
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.cxxflags-append -std=c++11
</span> }
pre-fetch {
if {${subport} eq "lldb-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.platform} eq "darwin" && ${os.major} < 16} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && ${os.major} < 15} {
</span> depends_build
depends_lib
depends_run
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -418,50 +353,6 @@ pre-fetch {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Get HTTP proxy arguments if required, assuming we can use the same proxy for all repositories
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set proxy_args [portfetch::svn_proxy_args https://llvm.org/svn/llvm-project/cfe/trunk]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${worksrcdir} eq "trunk"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/trunk polly"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${worksrcdir} eq "trunk"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/trunk clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} https://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} https://llvm.org/svn/llvm-project/libcxx/trunk libcxx"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} https://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} https://llvm.org/svn/llvm-project/compiler-rt/branches/release_${llvm_version_no_dot} compiler-rt"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} https://llvm.org/svn/llvm-project/libcxx/branches/release_${llvm_version_no_dot} libcxx"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} https://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_${llvm_version_no_dot} extra"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/compiler-rt-${version}.src ${worksrcpath}/projects/compiler-rt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/libcxx-${version}.src ${worksrcpath}/projects/libcxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/clang-tools-extra-${version}.src ${worksrcpath}/tools/clang/tools/extra
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${worksrcdir} eq "trunk"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/trunk clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/lldb/trunk lldb"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/lldb/branches/release_${llvm_version_no_dot} lldb"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/lldb-${version}.src ${worksrcpath}/tools/lldb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if {${subport} eq "clang-${llvm_version}"} {
destroot {
system "cd ${destroot.dir}/tools/clang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -492,11 +383,11 @@ if {${subport} eq "lldb-${llvm_version}"} {
</span> build.dir ${build.dir}/tools/lldb
post-activate {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_msg "Please follow the instructions in ${prefix}/share/doc/lldb-${llvm_version}/code-signing.txt and then codesign lldb-server with:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_msg "Please follow the instructions at https://lldb.llvm.org/resources/build.html#code-signing-on-macos and then codesign lldb-server with:"
</span> if {${os.major} >= 13} {
ui_msg " sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements,flags,team-identifier --sign <identity> ${sub_prefix}/bin/lldb-server"
} else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_msg " sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements --sign <identity> ${sub_prefix}/bin/lldb-server"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_msg " sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements --sign <identity> ${sub_prefix}/bin/lldb-server"
</span> }
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -538,18 +429,11 @@ post-destroot {
</span> }
if {${os.major} < 11} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant emulated_tls description { enable c11/c++11 thread support on older systems using emulated-tls } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant emulated_tls description { enable c11/c++11 thread_local_storage support on older systems using emulated-tls } {
</span> # use emulated-tls to support thread_local on systems prior to 10.7
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # requires linking against macports-libstdc++ or libc++ / libc++abi with cxa_thread_atexit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # the test for default emulated-tls has been moved into the backend
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # this patch is needed for llvm and clang builds
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9000-patch-llvm-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 9000-patch-llvm-7.0-support-emulated-tls.diff
</span> if {${subport} eq "clang-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9000-patch-clang-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 9000-patch-clang-7.0-support-emulated-tls.diff
</span> }
}
default_variants-append +emulated_tls
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -591,6 +475,8 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> ${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
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # pythonfullpath is set above, depending on presence of system python2.7
</span> reinplace "s|/usr/bin/env python|${pythonfullpath}|g" \
${worksrcpath}/tools/clang/tools/scan-build/bin/set-xcode-analyzer \
${worksrcpath}/tools/clang/tools/scan-view/bin/scan-view
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch b/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 0e73b2e..a698bfb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,10 +20,10 @@ index 7adc59d096f..336d1384b8d 100644
</span> // use the directive, where it would need the same conditionalization
// anyway.
- const Triple &Target = TM.getTargetTriple();
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- OutStreamer->EmitVersionForTarget(Target, M.getSDKVersion());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- OutStreamer->emitVersionForTarget(Target, M.getSDKVersion());
</span> + if (MAI->useIntegratedAssembler()) {
+ const Triple &Target = TM.getTargetTriple();
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ OutStreamer->EmitVersionForTarget(Target, M.getSDKVersion());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ OutStreamer->emitVersionForTarget(Target, M.getSDKVersion());
</span> + }
// Allow the target to emit any magic that it wants at the start of the file.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch b/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 8ca3a70..b96c3c3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,24 +6,14 @@ Subject: [PATCH 1002/1007] MacPorts Only: Fix name of scan-view executable
</span>
http://trac.macports.org/ticket/35006
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- tools/scan-build/bin/scan-build | 2 ++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 2 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/tools/clang/tools/scan-build/bin/scan-build macports_master/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 903e19a290..0be6057853 100755
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1933,6 +1933,8 @@ if (defined $Options{OutputFormat}) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Diag "Analysis run complete.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Diag "Viewing analysis results in '$Options{OutputDir}' using scan-view.\n";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- my $ScanView = Cwd::realpath("$RealBin/scan-view");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/bin/scan-view"); }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../scan-view/scan-view"); }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (! -x $ScanView) { $ScanView = "scan-view"; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- exec $ScanView, "$Options{OutputDir}";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.21.0 (Apple Git-120)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm/tools/clang/tools/scan-build/bin/scan-build.orig 2020-05-06 08:57:03.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ llvm/tools/clang/tools/scan-build/bin/scan-build 2020-05-07 12:22:47.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -969,6 +969,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ($Options{ViewResults} and -r "$Options{OutputDir}/index.html") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Diag "Viewing analysis results in '$Options{OutputDir}' using scan-view.\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ my $ScanView = Cwd::realpath("$RealBin/scan-view");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/bin/scan-view"); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../scan-view/scan-view"); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (! -x $ScanView) { $ScanView = "scan-view"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec $ScanView, "$Options{OutputDir}";
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch b/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 80b52f7..2e852d0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,33 +4,10 @@ Date: Wed, 27 Dec 2017 23:21:37 -0800
</span> Subject: [PATCH 2001/2002] xray: Define O_CLOEXEC for older SDKs that don't
have it
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lib/xray/xray_utils.cc | 6 ++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lib/xray/xray_x86_64.cc | 6 ++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2 files changed, 12 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/projects/compiler-rt/lib/xray/xray_utils.cc macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 82674baa5..5caa31723 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -36,6 +36,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <zircon/syscalls.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef O_CLOEXEC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define O_CLOEXEC 0x1000000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- namespace __xray {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if SANITIZER_FUCHSIA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cpp macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cpp
</span> index e63ee1b3b..65b59ec61 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cpp
</span> @@ -26,6 +26,12 @@
#include <tuple>
#include <unistd.h>
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/4001-Revert-CMake-Check-that-a-certificate-for-lldb-is-pr.patch b/lang/llvm-devel/files/4001-Revert-CMake-Check-that-a-certificate-for-lldb-is-pr.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 545bb79..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/4001-Revert-CMake-Check-that-a-certificate-for-lldb-is-pr.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,42 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 18fa1f9e9bfc525b7ffc59088297694a89f36373 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 4 Jul 2019 20:08:00 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 4001/4001] Revert "[CMake] Check that a certificate for lldb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- is present at build time."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://bugs.llvm.org/show_bug.cgi?id=42514
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit cb1c23cd40cea52c0816004dfa4fe1f81ce93deb.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- tools/debugserver/source/CMakeLists.txt | 15 ---------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 15 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/tools/lldb/tools/debugserver/source/CMakeLists.txt macports_master/tools/lldb/tools/debugserver/source/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 863afaaec..d63dc23ef 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/tools/lldb/tools/debugserver/source/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/tools/lldb/tools/debugserver/source/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -142,21 +142,6 @@ else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(STATUS "lldb debugserver will not be available.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# On MacOS, debugserver needs to be codesigned when built. Check if we have
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# a certificate instead of failing in the middle of the build.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if(build_and_sign_debugserver)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- execute_process(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- COMMAND security find-certificate -Z -p -c ${LLDB_CODESIGN_IDENTITY_USED} /Library/Keychains/System.keychain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RESULT_VARIABLE cert_return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- OUTPUT_QUIET
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ERROR_QUIET)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (cert_return)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- message(FATAL_ERROR "Certificate for debugserver not found. Run scripts/macos-setup-codesign.sh or "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "use the system debugserver passing -DLLDB_USE_SYSTEM_DEBUGSERVER=ON to CMake")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(IOS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- find_library(BACKBOARD_LIBRARY BackBoardServices
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.21.0 (Apple Git-120)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5000-patch-compilerrtdarwinutils-find-macosxsdkversion.diff b/lang/llvm-devel/files/5000-patch-compilerrtdarwinutils-find-macosxsdkversion.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..95737ab
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5000-patch-compilerrtdarwinutils-find-macosxsdkversion.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake.orig 2020-04-20 17:14:08.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake 2020-04-20 17:31:44.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,15 +66,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ERROR_FILE /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(NOT result_process EQUAL 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- message(FATAL_ERROR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "Failed to determine SDK version for \"${sdk_name}\" SDK")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Check reported version looks sane.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (NOT "${var_internal}" MATCHES "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- message(FATAL_ERROR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "Reported SDK version \"${var_internal}\" does not look like a version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(${var} ${var_internal} PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endfunction()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,6 +116,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # binaries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ("${os}" STREQUAL "osx")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ find_darwin_sdk_version(macosx_sdk_version "macosx")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # if there is no sdk that responds to "macosx" use the CMAKE passed in deployment target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(NOT macosx_sdk_version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ message(WARNING "Could not determine MacOSX SDK Version, trying CMAKE_OSX_DEPLOYMENT_TARGET")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(macosx_sdk_version CMAKE_OSX_DEPLOYMENT_TARGET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ("${macosx_sdk_version}" VERSION_GREATER 10.15 OR "${macosx_sdk_version}" VERSION_EQUAL 10.15)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(STATUS "Disabling i386 slice for ${valid_archs}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(REMOVE_ITEM archs "i386")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5000-patch-lib-support-unix-path-copyfileclone-on-older-systems.diff b/lang/llvm-devel/files/5000-patch-lib-support-unix-path-copyfileclone-on-older-systems.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 42a7e1b..d352328 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/5000-patch-lib-support-unix-path-copyfileclone-on-older-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5000-patch-lib-support-unix-path-copyfileclone-on-older-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,12 +3,13 @@ index c64c0df..aaa2226 100644
</span> --- trunk/lib/Support/Unix/Path.inc.orig
+++ trunk/lib/Support/Unix/Path.inc
@@ -38,6 +38,9 @@
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ @@ -38,6 +38,9 @@
</span> #include <mach-o/dyld.h>
#include <sys/attr.h>
#include <copyfile.h>
+#ifndef COPYFILE_CLONE
+#define COPYFILE_CLONE (1<<24)
+#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #elif defined(__DragonFly__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/mount.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__FreeBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <osreldate.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if __FreeBSD_version >= 1300057
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff b/lang/llvm-devel/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..122d21e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/dsymutil/SymbolMap.cpp b/tools/dsymutil/SymbolMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cab9374a..5c2377e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/dsymutil/SymbolMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/dsymutil/SymbolMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,8 +18,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <CoreFoundation/CoreFoundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <uuid/uuid.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* declare a missing reference not found in SDK < 10.6 for function called below */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef char * uuid_string_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct __CFError * CFErrorRef;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CFPropertyListCreateWithStream(A,B,C,D,E,F) CFPropertyListCreateFromStream(A,B,C,D,E,F)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace llvm {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace dsymutil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff b/lang/llvm-devel/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..87b5746
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,53 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/projects/libcxx/src/new.cpp b/projects/libcxx/src/new.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cc8383d..ff09580 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/projects/libcxx/src/new.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/projects/libcxx/src/new.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +31,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if defined(__APPLE__) && (MAC_OS_X_VERSION_MIN_REQUIRED < 1060)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int posix_memalign(void** pp, size_t alignment, size_t bytes) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* if alignment is 0 or not a power of 2 return bad value */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (alignment < sizeof( void *) || // excludes 0 == alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0 != (alignment & (alignment - 1))) { // relies on sizeof(void *) being a power of two.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return EINVAL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void* mem = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (alignment <= 16) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* MacOSX always returns memory aligned on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * a 16 byte alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mem = malloc(bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* if the caller wants a larger alignment than 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * we give them a page-aligned allotment. This is not as efficient
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * as an optimized aligned memory implementation, but much
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * simpler, effective, and requires no changes to the rest of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * underlying memory management system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mem = valloc(bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (mem == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return ENOMEM;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *pp = mem;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace std
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff b/lang/llvm-devel/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6ea0b00
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+kencu@macports.org - add back runtime libraries used on 10.4 and 10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+removed in https://github.com/llvm/llvm-project/commit/3434ade2b7ca351b61522f7da4b55070d811b83f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+related, the following code used to add libclang_rt_10.4.a to Tiger, but this library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+is no longer built in the runtime library collections. If building for Tiger, it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+may be required to replace this library at some point.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The line below this, adding "builtins" adds libclang_rt.osx.a, does the second part of this.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+it may be easiest to just add Tiger functions to libclang_rt.osx.a directly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // if (isMacosxVersionLT(10, 5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.10.4.a");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.osx.a");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/clang/lib/Driver/ToolChains/Darwin.cpp b/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bea877ae9..26f1ad714 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1140,6 +1140,12 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ getTriple().getArch() != llvm::Triple::aarch64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-lgcc_s.1");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (isTargetMacOS()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (isMacosxVersionLT(10, 5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("-lgcc_s.10.4");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (isMacosxVersionLT(10, 6))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("-lgcc_s.10.5");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AddLinkRuntimeLib(Args, CmdArgs, "builtins");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5003-patch-llvm10-strnlen.diff b/lang/llvm-devel/files/5003-patch-llvm10-strnlen.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..db634ea
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5003-patch-llvm10-strnlen.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp b/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 380f2e98..dbfe8ce6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,6 +11,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "llvm/Support/Errc.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "llvm/Support/ErrorHandling.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t strnlen(const char *s, size_t maxlen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t l = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while (l < maxlen && *s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ l++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ s++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace llvm {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace objcopy {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace macho {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/llvm-objcopy/MachO/Object.cpp b/tools/llvm-objcopy/MachO/Object.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d3b4fdc2..3f88377b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/llvm-objcopy/MachO/Object.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/llvm-objcopy/MachO/Object.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "Object.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../llvm-objcopy.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t strnlen(const char *s, size_t maxlen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t l = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while (l < maxlen && *s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ l++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ s++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace llvm {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace objcopy {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace macho {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5003-patch-no-directory-watcher-on-snowleopard.diff b/lang/llvm-devel/files/5003-patch-no-directory-watcher-on-snowleopard.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..4c0e20b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5003-patch-no-directory-watcher-on-snowleopard.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm-9.0.0.src/tools/clang/lib/DirectoryWatcher/CMakeLists.txt.orig 2019-09-23 17:31:12.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ llvm-9.0.0.src/tools/clang/lib/DirectoryWatcher/CMakeLists.txt 2019-09-23 17:31:35.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,7 +5,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(DIRECTORY_WATCHER_SOURCES DirectoryScanner.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(DIRECTORY_WATCHER_LINK_LIBS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(APPLE AND (CMAKE_OSX_DEPLOYMENT_TARGET GREATER_EQUAL 10.7))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ check_include_files("CoreServices/CoreServices.h" HAVE_CORESERVICES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(HAVE_CORESERVICES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND DIRECTORY_WATCHER_SOURCES mac/DirectoryWatcher-mac.cpp)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/5005-MacPorts-only-patch-libcxx-includes-disable-availability-tests.diff b/lang/llvm-devel/files/5005-MacPorts-only-patch-libcxx-includes-disable-availability-tests.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6ada840
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/5005-MacPorts-only-patch-libcxx-includes-disable-availability-tests.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm-10.0.0.src/projects/libcxx/include/__config.orig 2020-04-28 09:59:15.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ llvm-10.0.0.src/projects/libcxx/include/__config 2020-04-28 10:00:33.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,6 +10,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef _LIBCPP_CONFIG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define _LIBCPP_CONFIG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// for MacPorts, our installed libcxx does not require Apple system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Availability tests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _LIBCPP_DISABLE_AVAILABILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(_MSC_VER) && !defined(__clang__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9001-macports-libstdcxx.diff b/lang/llvm-devel/files/9001-macports-libstdcxx.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 9d9154e..dbff9c9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/9001-macports-libstdcxx.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/9001-macports-libstdcxx.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,9 +10,9 @@
</span> /// Whether header search information should be output as for -v.
unsigned Verbose : 1;
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- orig/tools/clang/lib/Frontend/CompilerInvocation.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ new/tools/clang/lib/Frontend/CompilerInvocation.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1967,8 +1967,10 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp.orig 2020-05-06 08:57:03.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp 2020-05-07 12:51:38.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2078,8 +2078,10 @@
</span> Opts.UseBuiltinIncludes = !Args.hasArg(OPT_nobuiltininc);
Opts.UseStandardSystemIncludes = !Args.hasArg(OPT_nostdsysteminc);
Opts.UseStandardCXXIncludes = !Args.hasArg(OPT_nostdincxx);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,7 +21,7 @@
</span> Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0);
+ Opts.UseMacPortsLibstdcxx = (strcmp(A->getValue(), "macports-libstdc++") == 0);
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- Opts.ResourceDir = Args.getLastArgValue(OPT_resource_dir);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Opts.ResourceDir = std::string(Args.getLastArgValue(OPT_resource_dir));
</span>
// Canonicalize -fmodules-cache-path before storing it.
--- orig/tools/clang/lib/Frontend/InitHeaderSearch.cpp
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -125,15 +125,15 @@
</span> // Unfortunately, -lstdc++ doesn't always exist in the standard search path;
// it was previously found in the gcc lib dir. However, for all the Darwin
// platforms we care about it was -lstdc++.6, so we search for that
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- orig/tools/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ new/tools/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -551,6 +551,8 @@ HexagonToolChain::GetCXXStdlibType(const ArgList &Args) const {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return ToolChain::CST_Libstdcxx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Driver/ToolChains/Hexagon.cpp.orig 2020-05-06 08:57:03.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Driver/ToolChains/Hexagon.cpp 2020-05-07 12:43:10.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -639,6 +639,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ToolChain::CST_Libstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> StringRef Value = A->getValue();
+ if (Value == "macports-libstdc++")
+ return ToolChain::CST_MacPortsLibstdcxx;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if (Value != "libstdc++")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (Value != "libstdc++" && Value != "libc++")
</span> getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);
--- orig/tools/clang/lib/Driver/ToolChain.cpp
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/leopard-no-asan.patch b/lang/llvm-devel/files/leopard-no-asan.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 0a41a52..1f6fecb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/leopard-no-asan.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/leopard-no-asan.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +1,12 @@
</span> --- 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
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -228,9 +228,6 @@ if(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -361,9 +361,6 @@
</span> else()
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set(SANITIZER_MIN_OSX_VERSION 10.9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(SANITIZER_MIN_OSX_VERSION ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
</span> endif()
- if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7")
- message(FATAL_ERROR "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too old.")
- endif()
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if(SANITIZER_MIN_OSX_VERSION VERSION_GREATER "10.9")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- message(WARNING "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too new, setting to '10.9' instead.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set(SANITIZER_MIN_OSX_VERSION 10.9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(SANITIZER_MIN_OSX_VERSION VERSION_GREATER ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(WARNING "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too new, setting to '${DEFAULT_SANITIZER_MIN_OSX_VERSION}' instead.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(SANITIZER_MIN_OSX_VERSION ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/openmp-locations.patch b/lang/llvm-devel/files/openmp-locations.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 53419a2..cff10f9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/openmp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/openmp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,13 +11,12 @@ index 292cf72b56..d8c6327080 100644
</span> CmdArgs.push_back("-fopenmp");
// If no option regarding the use of TLS in OpenMP codegeneration is
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8a597b5b3a..9441bb8a56 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -444,15 +444,21 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -u a/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp.orig b/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp.orig 2020-04-19 11:47:05.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp 2020-04-19 11:48:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -521,12 +521,18 @@
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- switch (TC.getDriver().getOpenMPRuntime(Args)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (RTKind) {
</span> case Driver::OMPRT_OMP:
+ // Automatically find MacPorts' libomp
+ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,9 +26,6 @@ index 8a597b5b3a..9441bb8a56 100644
</span> + // Automatically find MacPorts' libomp
+ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
CmdArgs.push_back("-lgomp");
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (GompNeedsRT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CmdArgs.push_back("-lrt");
</span> break;
case Driver::OMPRT_IOMP5:
+ // Automatically find MacPorts' libomp
</pre><pre style='margin:0'>
</pre>