<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3f3dbaea763ff0705b8d01524ffdd7dded522dc8">https://github.com/macports/macports-ports/commit/3f3dbaea763ff0705b8d01524ffdd7dded522dc8</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 3f3dbaea763 LLVM 19: New Compiler Suite
</span>3f3dbaea763 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 3f3dbaea763ff0705b8d01524ffdd7dded522dc8
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Tue Sep 17 16:56:59 2024 +0100
<span style='display:block; white-space:pre;color:#404040;'> LLVM 19: New Compiler Suite
</span>---
lang/llvm-19/Portfile | 530 +++++++++++++++++++++
...-MacPorts-only-clang-use-MP-omp-locations.patch | 50 ++
...ly-Don-t-embed-the-deployment-target-in-t.patch | 24 +
...ly-Prepare-clang-format-for-replacement-w.patch | 84 ++++
...ly-Fix-name-of-scan-view-executable-insid.patch | 25 +
.../0005-clang-support-macports-libstdcxx.patch | 108 +++++
...MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch | 32 ++
...nly-call-pthread_setname_np-if-we-have-it.patch | 26 +
...nly-call-setpriority-PRIO_DARWIN_THREAD-0.patch | 22 +
...-Unix-Path.inc-define-COPYFILE_CLONE-if-n.patch | 23 +
...er-rt-add-some-defs-missing-in-older-SDKs.patch | 47 ++
...ack-runtime-libraries-used-on-10.4-and-10.patch | 39 ++
...oat.h-to-work-on-Snow-Leopard-and-earlier.patch | 21 +
...0.10-and-less-compiler-rt-find-macosx-sdk.patch | 44 ++
...0.6-and-less-use-emulated-TLS-before-10.7.patch | 56 +++
...25-lldb-add-defines-needed-for-older-SDKs.patch | 55 +++
.../files/0031-Avoid-Use-Of-Clonefile.patch | 13 +
...0041-no-Werror-unguarded-availability-new.patch | 36 ++
lang/llvm-19/files/0100-define-target-os-osx.patch | 13 +
lang/llvm-19/files/0110-Avoid-Pthread-QOS.patch | 32 ++
...71edda3df0a0555b1ab63ec52e92252b4-inverse.patch | 13 +
lang/llvm-19/files/llvm-bin | 7 +
lang/llvm-19/files/llvm-bin-compat | 2 +
lang/llvm-19/files/mp-clang-19 | 34 ++
lang/llvm-19/files/mp-lldb-19 | 6 +
lang/llvm-19/files/mp-llvm-19 | 60 +++
26 files changed, 1402 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/Portfile b/lang/llvm-19/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..73ad02952b0
</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-19/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,530 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup select 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup conflicts_build 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Do not propagate c/c++ standards as set by base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.set_c_standard no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.set_cxx_standard no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# link legacysupport statically for compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.use_static yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Sysconf wrapping causes issues so disable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.disable_function_wrap yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms {darwin >= 11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license NCSA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version 19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang_exe_version ${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version ${llvm_version}.1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name llvm-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport mlir-${llvm_version} { revision [ expr ${revision} + 0 ] }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport clang-${llvm_version} { revision [ expr ${revision} + 0 ] }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport lldb-${llvm_version} { revision [ expr ${revision} + 0 ] }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport flang-${llvm_version} { revision [ expr ${revision} + 0 ] }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 4655dd822f67e94bc5fb4062e3f1110182a434a6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 5042522b49945bc560ff9206f25fb87980a9b89b914193ca00d961511ff0673c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 141244872
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname llvm-project-${version}.src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xz yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dist_subdir llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set suffix mp-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir ${worksrcdir}/llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/macports/macports-ports/commit/a83a493bc21cbe7e14b1f5884379649ec8f31bae#commitcomment-132530885
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts_build-append libunwind libunwind-headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# hand-tweaked, approximately c++ standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist *gcc* {clang < 1001} macports-clang-3.*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# work/build/include/c++/v1/optional:224:5: error: destructor cannot be marked constexpr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# _LIBCPP_CONSTEXPR_AFTER_CXX17 ~__optional_destruct_base()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append {clang < 1204} {macports-clang-[5-9].0} {macports-clang-1[0-3]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.fallback clang macports-clang-14 macports-clang-15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.generator Ninja
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_prefix ${sub_prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.build_type Release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clean up some cmake-PG added values we don't want to use, because we want @rpaths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.pre_args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_INSTALL_NAME_DIR=${cmake.install_prefix}/lib \
</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.pre_args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.pre_args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_SYSTEM_PREFIX_PATH="${prefix}\;/usr" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_SYSTEM_PREFIX_PATH="${cmake.install_prefix}\;${prefix}\;/usr"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_LINK_LLVM_DYLIB=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_RTTI=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_INCLUDE_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_INCLUDE_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_FFI=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DFFI_INCLUDE_DIR=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DFFI_LIBRARY_DIR=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Remove for now. See https://trac.macports.org/ticket/70333
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Probably need to detect when Xcode is available ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -DLLVM_CREATE_XCODE_TOOLCHAIN=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Disable iOS support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# To Be reviewed with later versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://reviews.llvm.org/D133273
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DCOMPILER_RT_ENABLE_IOS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cctools is needed to handle objects from newer clang toolchains
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match macports-clang-* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_skip_archcheck-append cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCMAKE_LIBTOOL=${prefix}/bin/libtool
</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;'>+set py_ver 3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver_nodot [string map {. {}} ${py_ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append port:python${py_ver_nodot} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${py_ver_nodot}-pygments \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${py_ver_nodot}-yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pythonfullpath ${prefix}/bin/python${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DPython3_EXECUTABLE=${pythonfullpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxx_stdlib libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libcxx
</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;'>+patch.dir ${workpath}/${distname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args-replace -p0 -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0001-MacPorts-only-clang-use-MP-omp-locations.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0002-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0003-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0004-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0006-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0007-Threading-Only-call-pthread_setname_np-if-we-have-it.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0008-Threading-Only-call-setpriority-PRIO_DARWIN_THREAD-0.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0009-lib-Support-Unix-Path.inc-define-COPYFILE_CLONE-if-n.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0012-compiler-rt-add-some-defs-missing-in-older-SDKs.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0013-clang-add-back-runtime-libraries-used-on-10.4-and-10.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0014-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0019-10.6-and-less-use-emulated-TLS-before-10.7.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0025-lldb-add-defines-needed-for-older-SDKs.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0016-10.10-and-less-compiler-rt-find-macosx-sdk.patch
</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.platform} eq "darwin" && ${os.major} < 16} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # error: 'TARGET_OS_OSX' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 0100-define-target-os-osx.patch
</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.platform} eq "darwin" && ${os.major} < 16} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Avoid attempts to use 'clonefile'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # llvm/lib/Support/Unix/Path.inc:1476:10: error: use of undeclared identifier 'clonefile'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 0031-Avoid-Use-Of-Clonefile.patch
</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.platform} eq "darwin" && ${os.major} < 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Revert use of pthread/qos.h that is only available on macOS10.10 and newer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/65626#comment:5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Created by reverting the commit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://github.com/llvm/llvm-project/commit/9902a0945d22cd5757b16ebe85fe07059723aa09
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # > git revert 9902a0945d22cd5757b16ebe85fe07059723aa09
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 0110-Avoid-Pthread-QOS.patch
</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.platform} eq "darwin" && ${os.major} < 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # On OSX10.7 and older revert call to add_security_warnings as fails with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # add_security_warnings Function invoked with incorrect arguments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|add_security_warnings\(|\#add_security_warnings\(|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/compiler-rt/lib/builtins/CMakeLists.txt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</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;'>+# https://trac.macports.org/ticket/67686
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# revert commit that breaks rpath linkages in clang runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append b98da4c71edda3df0a0555b1ab63ec52e92252b4-inverse.patch
</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.platform} eq "darwin" && ${os.major} <= 16} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # error: 'utimensat' is only available on macOS 10.13 or newer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 0041-no-Werror-unguarded-availability-new.patch
</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;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|@@PREFIX@@|${prefix}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Clang.cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/clang-format/clang-format-bbedit.applescript \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/clang-format/clang-format-diff.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/clang-format/clang-format-sublime.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/clang-format/clang-format.el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/clang-format/clang-format.py
</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;'>+# libc++ link step fails on OSX10.10 and older to correctly use static legacy support lib.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|LIBCXX_LIBRARIES \"\"|LIBCXX_LIBRARIES \"[legacysupport::get_library_link_flags]\"|" ${patch.dir}/libcxx/CMakeLists.txt
</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;'>+if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description llvm is a next generation compiler infrastructure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description The LLVM Core libraries provide a modern source- and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target-independent optimizer, along with code \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ generation support for many popular CPUs (as well as \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ some less common ones!) These libraries are built \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ around a well specified code representation known as \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the LLVM intermediate representation ("LLVM IR").
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libedit port:libffi port:ncurses path:lib/libxar.dylib:xar port:zlib port:zstd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:llvm_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.file ${filespath}/mp-${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_PROJECTS="polly"
</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 {${subport} eq "mlir-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://mlir.llvm.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description The MLIR project is a novel approach to building reusable \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and extensible compiler infrastructure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description {*}${description} MLIR aims to address software fragmentation, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ improve compilation for heterogeneous hardware, significantly \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reduce the cost of building domain specific compilers, and aid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in connecting existing compilers together.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:llvm-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_PROJECTS="mlir"
</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 { ${subport} eq "clang-${llvm_version}" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://clang.llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description C, C++, Objective C and Objective C++ compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description The Clang project provides a language front-end and tooling infrastructure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for languages in the C language family (C, C++, Objective C/C++, OpenCL, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CUDA, and RenderScript) for the LLVM project.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:clang_select port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.file ${filespath}/mp-${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_PROJECTS="clang\;clang-tools-extra\;compiler-rt\;lld" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_RUNTIMES="libcxx\;libcxxabi\;libunwind" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLIBCXX_ENABLE_SHARED=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLIBCXX_INSTALL_LIBRARY=ON
</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 { ${subport} eq "flang-${llvm_version}" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://flang.llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description LLVM Fortran compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description {*}${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CMakeLists.txt: flang isn't supported on 32 bit CPUs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ supported_archs arm64 x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_PROJECTS="clang\;flang\;compiler-rt\;mlir" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLIBCXX_ENABLE_SHARED=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLIBCXX_INSTALL_LIBRARY=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:clang-${llvm_version} port:mlir-${llvm_version}
</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 { ${subport} eq "clang-${llvm_version}" || ${subport} eq "flang-${llvm_version}" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libxml2 port:libomp port:llvm-${llvm_version} port:ld64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_skip_archcheck-append ld64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CMAKE_LINKER is used to determine the value for HOST_LINK_VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_LINKER=${prefix}/bin/ld \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCLANG_INCLUDE_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCLANG_ENABLE_STATIC_ANALYZER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCLANG_ENABLE_ARCMT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DDARWIN_PREFER_PUBLIC_SDK=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_BUILD_RUNTIME=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the orc submodule is not building at present - can't find c_api.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/65578
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_ORC=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && ${os.major} <= 18} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # on systems that might build i386, we need atomic builtins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/58712
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=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.platform} eq "darwin" && ${os.major} <= 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # compiler-rt does a broad search for an SDK it likes, but this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # search fails on older systems that don't have a MacOSX.sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: apply this always to all systems?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.sdkroot} eq ""} {set configure.sdkroot "/"}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DDARWIN_osx_SYSROOT="${configure.sdkroot}"
</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.platform} eq "darwin" && ${os.major} <= 15} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # sanitizers in compiler_rt fail to build on older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # might be fixable with the use of newer SDK and/or effort if motivated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # all three toggles are needed to force them off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Extended to 10.11 and older, see https://trac.macports.org/ticket/65887
</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;'>+ -DCOMPILER_RT_BUILD_XRAY=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCOMPILER_RT_BUILD_MEMPROF=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.platform} eq "darwin" && ${os.major} <= 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # xpc.h available 10.7 but doesn't support nullable features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCLANGD_BUILD_XPC=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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://lldb.llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description the LLVM debugger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description lldb is the "LLVM native" debugger.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libedit port:libffi port:ncurses path:lib/libxar.dylib:xar port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:llvm-${llvm_version} port:clang-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:swig-python path:bin/doxygen:doxygen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:lldb_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group lldb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.file ${filespath}/mp-${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # error: use of undeclared identifier 'CPU_SUBTYPE_ARM64E
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ platforms {darwin >= 18}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLDB_CODESIGN_IDENTITY=- \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLDB_ENABLE_LUA=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set worksrcpath ${workpath}/${distname}/lldb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes "Please follow the instructions at https://lldb.llvm.org/resources/build.html#code-signing-on-macos and then codesign lldb-server with:\n--------------------\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes-append "${sub_prefix}/scripts/lldb/macos-setup-codesign.sh"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes-append "sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements,flags,team-identifier --sign lldb_codesign ${sub_prefix}/bin/lldb-server"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes-append "sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements --sign lldb_codesign ${sub_prefix}/bin/lldb-server"
</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;'>+variant tests description {Enable building of test code} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_test-append port:py${py_ver_nodot}-psutil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test.run yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLLVM_INCLUDE_TESTS=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test.target check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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:#e0ffe0;'>+ test.target check-all
</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 {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "running the test suite on ${subport} is not supported on this os version at present."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error {unsupported platform}
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${destroot}${sub_prefix}/bin/clang]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # remove the clang symlink and replace it with the actual binary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${destroot}${sub_prefix}/bin/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${destroot}${sub_prefix}/bin/clang-${clang_exe_version} ${destroot}${sub_prefix}/bin/clang
</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 only 'flang-new' created, link to 'flang'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${destroot}${sub_prefix}/bin/flang-new]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![file exists ${destroot}${sub_prefix}/bin/flang]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${sub_prefix}/bin/flang-new ${destroot}${sub_prefix}/bin/flang
</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;'>+ # generate a versioned wrapper script for each file in the bin directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://trac.macports.org/ticket/54985
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && [vercmp ${xcodeversion} 4.6] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 "${filespath}/llvm-bin-compat" "${bin_filename}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 "${filespath}/llvm-bin" "${bin_filename}"
</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;'>+ reinplace "s:EXEC_PATH:${exec_path}:" "${bin_filename}"
</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 {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://llvm.org/bugs/show_bug.cgi?id=19465
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
</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 {[file exists ${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # fix the cmake scripts to point to the versioned files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|/bin/clang-${clang_exe_version}|/bin/clang|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake"
</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 { ${subport} eq "clang-${llvm_version}" || ${subport} eq "flang-${llvm_version}" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # http://trac.macports.org/ticket/33207
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
</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 {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${destroot}${prefix}/bin/debugserver-${suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set lldb_scripts_srcdir ${worksrcpath}/scripts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set lldb_scripts_destdir ${destroot}${sub_prefix}/scripts/lldb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${lldb_scripts_destdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 -W ${lldb_scripts_srcdir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macos-setup-codesign.sh \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${lldb_scripts_destdir}
</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 {${subport} ne "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Need to deactivate current version before traversing destroot to remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 'already installed' files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {set installed [lindex [registry_active ${subport}] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ registry_deactivate_composite ${subport} "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Then search for files in destroot provided by other local (sub)ports deps and remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse destroot_f ${destroot} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![file isdirectory $destroot_f]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set f [string replace $destroot_f 0 [string length $destroot]-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${f}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "${f} already exists -> Removed from destroot"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete ${destroot_f}
</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;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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:#e0ffe0;'>+ # move libc++ libraries out of default location to prevent accidental linkage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set libcxx_dir ${destroot}${sub_prefix}/lib/libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${libcxx_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f [glob -nocomplain ${destroot}${sub_prefix}/lib/libc++*.*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "Moving ${f} to ${libcxx_dir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${f} ${libcxx_dir}
</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;'>+
</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:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant analyzer description {Install clang static analyzer} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # these have to be switched on or off together
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-replace -DCLANG_ENABLE_STATIC_ANALYZER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCLANG_ENABLE_STATIC_ANALYZER=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-replace -DCLANG_ENABLE_ARCMT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCLANG_ENABLE_ARCMT=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:perl5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|/usr/bin/env perl|${prefix}/bin/perl5|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/scan-build/libexec/ccc-analyzer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/scan-build/libexec/c++-analyzer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/tools/scan-build/bin/scan-build
</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;'>+ # Avoid requiring a bootstrap version of perl5 on 10.6.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +analyzer
</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;'>+ variant libstdcxx description {-stdlib=libstdc++_macports searches for MacPorts libstdc++} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 0005-clang-support-macports-libstdcxx.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|@@MACPORTS_GCC_INCLUDE_DIR@@|${prefix}/include/gcc/c++|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Lex/InitHeaderSearch.cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|@@MACPORTS_HOST_NAME@@|${configure.build_arch}-apple-darwin${os.major}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|@@MACPORTS_libstdc++@@|${prefix}/lib/libgcc/libstdc++.6.dylib|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # GCC was built for ${configure.build_arch}-apple-darwin${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if GCC was also built universal, it has an extra include directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if ${configure.build_arch} is 32-bit, there is an extra 64-bit subdirectory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if ${configure.build_arch} is 64-bit, there is an extra 32-bit subdirectory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # MacPorts GCC cannot compile across platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch ${configure.build_arch} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x86_64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace {s|@@MACPORTS_TEST_32_64@@|getTriple().getArch() == llvm::Triple::x86_64 ? "" : "i386"|g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i386 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace {s|@@MACPORTS_TEST_32_64@@|getTriple().getArch() == llvm::Triple::x86_64 ? "x86_64" : ""|g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ppc64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace {s|@@MACPORTS_TEST_32_64@@|getTriple().getArch() == llvm::Triple::ppc64 ? "" : "ppc"|g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ppc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace {s|@@MACPORTS_TEST_32_64@@|getTriple().getArch() == llvm::Triple::ppc64 ? "ppc64" : ""|g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arm64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace {s|@@MACPORTS_TEST_32_64@@|""|g} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${patch.dir}/clang/lib/Driver/ToolChains/Darwin.cpp
</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;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${cxx_stdlib} eq "libstdc++" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +libstdcxx
</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;'>+livecheck.type regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url https://github.com/llvm/llvm-project/tags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex llvmorg-(${llvm_version}.\[\\d.\]+).tar.gz
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch b/lang/llvm-19/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..99509d2e13d
</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-19/files/0001-MacPorts-only-clang-use-MP-omp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e27d02d4c95a48cfa3aa9f7c0f3d6dd4f45e4f22 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 16 May 2021 13:07:20 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 01/24] MacPorts-only: clang use MP omp locations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+look in ${prefix}/lib/libomp for omp libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* this patch requires post-patch reinplace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Driver/ToolChains/Clang.cpp | 2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Driver/ToolChains/CommonArgs.cpp | 6 ++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1976b48e0f6a..981f35e36a0e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Driver/ToolChains/Clang.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Driver/ToolChains/Clang.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5463,6 +5463,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Driver::OMPRT_OMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Driver::OMPRT_IOMP5:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Clang can generate useful OpenMP code for these two runtime libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Automatically find MacPorts' omp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("-I@@PREFIX@@/include/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-fopenmp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // If no option regarding the use of TLS in OpenMP codegeneration is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bcaea71dca94..a88833055be7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -668,12 +668,18 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (RTKind) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Driver::OMPRT_OMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-lomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Driver::OMPRT_GOMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-lgomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Driver::OMPRT_IOMP5:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-liomp5");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case Driver::OMPRT_Unknown:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0002-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch b/lang/llvm-19/files/0002-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ee76c08a13c
</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-19/files/0002-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2297b27ffdc0..35578040d951 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -461,13 +461,15 @@ bool AsmPrinter::doInitialization(Module &M) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // alternative is duplicated code in each of the target asm printers that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // use the directive, where it would need the same conditionalization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const Triple &Target = TM.getTargetTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (Target.isOSBinFormatMachO() && Target.isOSDarwin()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Triple TVT(M.getDarwinTargetVariantTriple());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- OutStreamer->emitVersionForTarget(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (MAI->useIntegratedAssembler()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const Triple &Target = TM.getTargetTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (Target.isOSBinFormatMachO() && Target.isOSDarwin()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Triple TVT(M.getDarwinTargetVariantTriple());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ OutStreamer->emitVersionForTarget(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Target, M.getSDKVersion(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ M.getDarwinTargetVariantTriple().empty() ? nullptr : &TVT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ M.getDarwinTargetVariantSDKVersion());
</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;'>+ // Allow the target to emit any magic that it wants at the start of the file.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0003-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch b/lang/llvm-19/files/0003-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..de110bbd3ff
</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-19/files/0003-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,84 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 898f186abe78b972d294949c260b279f76b32a2b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 17 May 2021 21:14:25 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 03/24] MacPorts Only: Prepare clang-format for replacement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with absolute path
</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;'>+ clang/tools/clang-format/clang-format-bbedit.applescript | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/tools/clang-format/clang-format-diff.py | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/tools/clang-format/clang-format-sublime.py | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/tools/clang-format/clang-format.el | 3 +--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/tools/clang-format/clang-format.py | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5 files changed, 5 insertions(+), 6 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/tools/clang-format/clang-format-bbedit.applescript b/clang/tools/clang-format/clang-format-bbedit.applescript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fa88fe900480..eb09448be561 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/tools/clang-format/clang-format-bbedit.applescript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/tools/clang-format/clang-format-bbedit.applescript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@ tell application "BBEdit"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ end tell
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set filePath to urlToPOSIXPath(fileURL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set newContents to do shell script "/path/to/clang-format -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set newContents to do shell script "@CLANG_FORMAT_PATH@ -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tell application "BBEdit"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -- "set contents of text document 1 to newContents" scrolls to the bottom while
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/tools/clang-format/clang-format-diff.py b/clang/tools/clang-format/clang-format-diff.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6e653a134289..cbcf21474ccd 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/tools/clang-format/clang-format-diff.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/tools/clang-format/clang-format-diff.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,7 +92,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parser.add_argument(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "-binary",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- default="clang-format",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default="@CLANG_FORMAT_PATH@",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ help="location of binary to use for clang-format",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ args = parser.parse_args()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/tools/clang-format/clang-format-sublime.py b/clang/tools/clang-format/clang-format-sublime.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 20c867092ef5..ae823c1d05b6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/tools/clang-format/clang-format-sublime.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/tools/clang-format/clang-format-sublime.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,7 +18,7 @@ import sublime_plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import subprocess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Change this to the full path if clang-format is not on the path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-binary = "clang-format"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++binary = "@CLANG_FORMAT_PATH@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Change this to format according to other formatting styles. See the output of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 'clang-format --help' for a list of supported styles. The default looks for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/tools/clang-format/clang-format.el b/clang/tools/clang-format/clang-format.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 768acb3a5d0d..e702bc6af4db 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/tools/clang-format/clang-format.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/tools/clang-format/clang-format.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,8 +37,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ :group 'tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (defcustom clang-format-executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (or (executable-find "clang-format")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "clang-format")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "@CLANG_FORMAT_PATH@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Location of the clang-format executable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A string containing the name or the full path of the executable."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/tools/clang-format/clang-format.py b/clang/tools/clang-format/clang-format.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 76fedb648147..9cb9825cbe5d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/tools/clang-format/clang-format.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/tools/clang-format/clang-format.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +49,6 @@ import vim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # set g:clang_format_path to the path to clang-format if it is not on the path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Change this to the full path if clang-format is not on the path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-binary = "clang-format"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++binary = "@CLANG_FORMAT_PATH@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if vim.eval('exists("g:clang_format_path")') == "1":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ binary = vim.eval("g:clang_format_path")
</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;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0004-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch b/lang/llvm-19/files/0004-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a6c21b19565
</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-19/files/0004-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 6ff25e20ec478fcb76148c062beef0ca8d88f897 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 17 May 2021 21:15:35 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 04/24] MacPorts Only: Fix name of scan-view executable inside
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scan-build
</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;'>+ clang/tools/scan-build/bin/scan-build | 2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/tools/scan-build/bin/scan-build b/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 645f5507b6fa..2eecc3b9a1dd 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -969,6 +969,8 @@ sub Finalize {
</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;'>+ if (! -x $ScanView) { $ScanView = `which scan-view`; chomp $ScanView; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0005-clang-support-macports-libstdcxx.patch b/lang/llvm-19/files/0005-clang-support-macports-libstdcxx.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..cd5cee0c407
</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-19/files/0005-clang-support-macports-libstdcxx.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,108 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 4e850191efa6659de85a4ff9be7c896cfb0bb1ec Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 17 May 2021 21:28:40 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 05/24] clang: support macports-libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+requires reinplace of search paths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/include/clang/Driver/ToolChain.h | 3 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Driver/ToolChain.cpp | 3 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Driver/ToolChains/Darwin.cpp | 40 ++++++++++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Driver/ToolChains/Hexagon.cpp | 2 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Lex/InitHeaderSearch.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 7 files changed, 63 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create mode 100644 clang/lib/Frontend/CompilerInvocation.cpp.rej
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/include/clang/Driver/ToolChain.h b/clang/include/clang/Driver/ToolChain.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 28c37a44e1eb..78fcaec7bfb0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/include/clang/Driver/ToolChain.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/include/clang/Driver/ToolChain.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,6 +94,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum CXXStdlibType {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CST_Libcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CST_MacPortsLibstdcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CST_Libstdcxx
</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;'>+diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b2ddef141a75..6160843b6885 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Driver/ToolChain.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Driver/ToolChain.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -850,6 +850,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxxStdlibType = ToolChain::CST_Libcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (LibName == "libstdc++")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxxStdlibType = ToolChain::CST_Libstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (LibName == "macports-libstdc++" || LibName == "libstdc++_macports")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cxxStdlibType = ToolChain::CST_MacPortsLibstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (LibName == "platform")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxxStdlibType = GetDefaultCXXStdlibType();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -969,6 +971,7 @@ void ToolChain::AddCXXStdlibLibArgs(const ArgList &Args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ToolChain::CST_Libstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ToolChain::CST_MacPortsLibstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-lstdc++");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eb7bd4aec898..daa8e520e404 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2282,6 +2282,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</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;'>++ case ToolChain::CST_MacPortsLibstdcxx: {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool IsBaseFoundMacPorts = AddGnuCPlusPlusIncludePaths(DriverArgs, CC1Args, llvm::StringRef("@@MACPORTS_GCC_INCLUDE_DIR@@"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "@@MACPORTS_HOST_NAME@@",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ @@MACPORTS_TEST_32_64@@);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!IsBaseFoundMacPorts) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ getDriver().Diag(diag::warn_drv_libstdcxx_not_found);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ToolChain::CST_Libstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ llvm::SmallString<128> UsrIncludeCxx = Sysroot;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ llvm::sys::path::append(UsrIncludeCxx, "usr", "include", "c++");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2349,6 +2360,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CmdArgs.push_back("-lc++");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ToolChain::CST_MacPortsLibstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CmdArgs.push_back("@@MACPORTS_libstdc++@@");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ToolChain::CST_Libstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Unfortunately, -lstdc++ doesn't always exist in the standard search path;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // it was previously found in the gcc lib dir. However, for all the Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fb54f73bcd4c..0260a32096af 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -758,6 +758,8 @@ HexagonToolChain::GetCXXStdlibType(const ArgList &Args) const {
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ StringRef Value = A->getValue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (Value == "macports-libstdc++" || Value == "libstdc++_macports")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return ToolChain::CST_MacPortsLibstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (Value != "libstdc++" && Value != "libc++")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Frontend/InitHeaderSearch.cpp b/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bc31445d6d08..abc3750edec0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Lex/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Lex/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -117,7 +117,7 @@ static bool CanPrefixSysroot(StringRef Path) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(_WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return !Path.empty() && llvm::sys::path::is_separator(Path[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return llvm::sys::path::is_absolute(Path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return llvm::sys::path::is_absolute(Path) && Path.find("@@MACPORTS_GCC_INCLUDE_DIR@@")!=0;
</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;'>+2.21.1 (Apple Git-122.3)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0006-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch b/lang/llvm-19/files/0006-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c932c4a4894
</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-19/files/0006-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 42707294da2789a755eedcd1af1a7fe0bc419925 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 16 May 2021 12:13:00 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 06/24] Define EXC_MASK_CRASH and MACH_EXCEPTION_CODES if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ they're not defined in the SDK
</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;'>+ llvm/lib/Support/Unix/Signals.inc | 9 +++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 9 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/Support/Unix/Signals.inc b/llvm/lib/Support/Unix/Signals.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3d7b5d2fe5aa..7280003dacfb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/Support/Unix/Signals.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/Support/Unix/Signals.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -642,6 +642,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal(StringRef Argv0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AddSignalHandler(PrintStackTraceSignalHandler, nullptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__APPLE__) && ENABLE_CRASH_OVERRIDES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* These aren't defined in the 10.4 SDK, so provide them here */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef EXC_MASK_CRASH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define EXC_MASK_CRASH 0x400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef MACH_EXCEPTION_CODES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MACH_EXCEPTION_CODES 0x80000000
</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;'>+ // Environment variable to disable any kind of crash dialog.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (DisableCrashReporting || getenv("LLVM_DISABLE_CRASH_REPORT")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mach_port_t self = mach_task_self();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0007-Threading-Only-call-pthread_setname_np-if-we-have-it.patch b/lang/llvm-19/files/0007-Threading-Only-call-pthread_setname_np-if-we-have-it.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7fb3372b58e
</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-19/files/0007-Threading-Only-call-pthread_setname_np-if-we-have-it.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From af4b8f8987248e442faaad339261332e05e254b8 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 16 May 2021 12:21:10 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 07/24] Threading: Only call pthread_setname_np() if we have it
</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;'>+ llvm/lib/Support/Unix/Threading.inc | 2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/Support/Unix/Threading.inc b/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 667d023fc134..8162c60b2cdd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -176,8 +176,10 @@ void llvm::set_thread_name(const Twine &Name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ::pthread_setname_np(::pthread_self(), "%s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_cast<char *>(NameStr.data()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if HAVE_PTHREAD_SETNAME_NP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ::pthread_setname_np(NameStr.data());
</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;'>+ void llvm::get_thread_name(SmallVectorImpl<char> &Name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0008-Threading-Only-call-setpriority-PRIO_DARWIN_THREAD-0.patch b/lang/llvm-19/files/0008-Threading-Only-call-setpriority-PRIO_DARWIN_THREAD-0.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c146a76d037
</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-19/files/0008-Threading-Only-call-setpriority-PRIO_DARWIN_THREAD-0.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 718ec394030ca2da3973e0135d073e000b366848 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 16 May 2021 12:22:44 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 08/24] Threading: Only call setpriority(PRIO_DARWIN_THREAD, 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PRIO_DARWIN_BG) if it is available
</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;'>+ llvm/lib/Support/Unix/Threading.inc | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/Support/Unix/Threading.inc b/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99f64b4f553d..ea40db932fc1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -264,7 +264,7 @@ SetThreadPriorityResult llvm::set_thread_priority(ThreadPriority Priority) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &priority)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ? SetThreadPriorityResult::SUCCESS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : SetThreadPriorityResult::FAILURE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__APPLE__) && defined(PRIO_DARWIN_THREAD) && defined(PRIO_DARWIN_BG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // https://developer.apple.com/documentation/apple-silicon/tuning-your-code-s-performance-for-apple-silicon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Background - Applies to work that isn’t visible to the user and may take significant
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0009-lib-Support-Unix-Path.inc-define-COPYFILE_CLONE-if-n.patch b/lang/llvm-19/files/0009-lib-Support-Unix-Path.inc-define-COPYFILE_CLONE-if-n.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..1b56a93567f
</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-19/files/0009-lib-Support-Unix-Path.inc-define-COPYFILE_CLONE-if-n.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 22a94ab53fbde0a2c161d3cd07e35b0eb78160b9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 16 May 2021 12:27:31 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 09/24] lib/Support/Unix/Path.inc: define COPYFILE_CLONE if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ needed
</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;'>+ llvm/lib/Support/Unix/Path.inc | 5 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a18650aadb6e..3fefd4e7ae91 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/Support/Unix/Path.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/Support/Unix/Path.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,6 +37,9 @@
</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 <copyfile.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef COPYFILE_CLONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define COPYFILE_CLONE (1<<24)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach-o/dyld.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/attr.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if __has_include(<sys/clonefile.h>)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0012-compiler-rt-add-some-defs-missing-in-older-SDKs.patch b/lang/llvm-19/files/0012-compiler-rt-add-some-defs-missing-in-older-SDKs.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..316b85770ca
</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-19/files/0012-compiler-rt-add-some-defs-missing-in-older-SDKs.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 469281c821580ff8c89db236b35ef0a7c651633c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 17 May 2021 17:29:16 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 12/24] compiler-rt: add some defs missing in older SDKs
</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;'>+ compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp | 8 ++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp | 5 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 13 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp b/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a5bed658a446..b853462df3d2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/wait.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// add definition missing on older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef POSIX_SPAWN_SETSIGMASK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POSIX_SPAWN_SETSIGMASK 0x0008
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef POSIX_SPAWN_SETSIGDEF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POSIX_SPAWN_SETSIGDEF 0x0004
</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;'>+ // There is no header for this on macOS so declare here
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern "C" char **environ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2b53d7d730d7..6950f8757dd0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,6 +110,11 @@ extern "C" int __munmap(void *, size_t) SANITIZER_WEAK_ATTRIBUTE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define VM_MEMORY_SANITIZER 99
</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;'>++// From <sys/spawn.h> but not in some SDKs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef POSIX_SPAWN_CLOEXEC_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POSIX_SPAWN_CLOEXEC_DEFAULT 0x4000
</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;'>+ // XNU on Darwin provides a mmap flag that optimizes allocation/deallocation of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // giant memory regions (i.e. shadow memory regions).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define kXnuFastMmapFd 0x4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0013-clang-add-back-runtime-libraries-used-on-10.4-and-10.patch b/lang/llvm-19/files/0013-clang-add-back-runtime-libraries-used-on-10.4-and-10.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..822a17455fc
</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-19/files/0013-clang-add-back-runtime-libraries-used-on-10.4-and-10.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,39 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5d31528f4eaeebf1918f573cf3c61810594b8fa9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 17 May 2021 17:44:35 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 13/24] clang: add back runtime libraries used on 10.4 and 10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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;'>+ clang/lib/Driver/ToolChains/Darwin.cpp | 6 ++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 6 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index daa8e520e404..da1d171ce859 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1334,6 +1334,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;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0014-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch b/lang/llvm-19/files/0014-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0028c077951
</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-19/files/0014-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Headers/float.h b/clang/lib/Headers/float.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c6a6cc08462d..d02531c466f4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Headers/float.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Headers/float.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,9 +17,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Also fall back on Darwin and AIX to allow additional definitions and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * implementation-defined values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if (defined(__APPLE__) || defined(__MINGW32__) || defined(_MSC_VER) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- defined(_AIX)) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- __STDC_HOSTED__ && __has_include_next(<float.h>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && __has_include(<Availability.h>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if ((defined(__APPLE__) && __has_include(<Availability.h>) && (!defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || __MAC_OS_X_VERSION_MAX_ALLOWED >= 101300)) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ defined(__MINGW32__) || defined(_MSC_VER) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ defined(_AIX)) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __STDC_HOSTED__ && __has_include_next(<float.h>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * of #include_next<float.h> to keep Metrowerks compilers happy. Avoid this
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0016-10.10-and-less-compiler-rt-find-macosx-sdk.patch b/lang/llvm-19/files/0016-10.10-and-less-compiler-rt-find-macosx-sdk.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9da35c90a8f
</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-19/files/0016-10.10-and-less-compiler-rt-find-macosx-sdk.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e7fe0d485d8b41d35410f3bec3683eba391a1917 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 17 May 2021 21:17:07 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 16/24] 10.10 and less: compiler-rt find macosx sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../cmake/Modules/CompilerRTDarwinUtils.cmake | 14 +++++---------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+), 9 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 456a8dcda59f..e9f6f577d626 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,15 +69,6 @@ function(find_darwin_sdk_version var sdk_name)
</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;'>+@@ -128,6 +119,11 @@ function(darwin_test_archs os valid_archs)
</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;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0019-10.6-and-less-use-emulated-TLS-before-10.7.patch b/lang/llvm-19/files/0019-10.6-and-less-use-emulated-TLS-before-10.7.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..eb919791d2e
</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-19/files/0019-10.6-and-less-use-emulated-TLS-before-10.7.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,56 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 63501ee748110f8bd9c54859992406b7c1089f83 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 16 May 2021 12:30:32 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 19/24] 10.6 and less: use emulated TLS before 10.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+enable TLS on 10.4 and up
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ItaniumCXXABI.cpp: call correct c++ TLS exit function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on 10.7+, we use the system TLS and _tlv_atexit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on < 10.7, we use emulated TLS and __cxa_thread_atexit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/Basic/Targets/OSTargets.h | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/lib/CodeGen/ItaniumCXXABI.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ llvm/include/llvm/ADT/Triple.h | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 3 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67fa1a537fea..2f2ce1ccafde 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,7 +92,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ this->TLSSupported = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (Triple.isMacOSX())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this->TLSSupported = !Triple.isMacOSXVersionLT(10, 4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (Triple.isiOS()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // 64-bit iOS supported it from 8 onwards, 32-bit device from 9 onwards,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // 32-bit simulator from 10 onwards.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 50fb30a95cbb..1df40230e8f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2487,7 +2487,7 @@ static void emitGlobalDtorWithCXAAtExit(CodeGenFunction &CGF,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *Name = "__cxa_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TLS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const llvm::Triple &T = CGF.getTarget().getTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Name = T.isOSDarwin() ? "_tlv_atexit" : "__cxa_thread_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Name = (T.isOSDarwin() && !T.isMacOSXVersionLT(10, 7)) ? "_tlv_atexit" : "__cxa_thread_atexit";
</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;'>+ // We're assuming that the destructor function is something we can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eed315c929ad..649b35f94307 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/include/llvm/TargetParser/Triple.h 2022-12-20 15:29:16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/include/llvm/TargetParser/Triple.h 2022-12-30 13:17:19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1009,7 +1009,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// Note: Android API level 29 (10) introduced ELF TLS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool hasDefaultEmulatedTLS() const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return (isAndroid() && isAndroidVersionLT(29)) || isOSOpenBSD() ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- isWindowsCygwinEnvironment() || isOHOSFamily();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ isWindowsCygwinEnvironment() || isOHOSFamily() || isMacOSXVersionLT(10, 7);
</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;'>+ /// Tests whether the target uses -data-sections as default.
</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-19/files/0025-lldb-add-defines-needed-for-older-SDKs.patch b/lang/llvm-19/files/0025-lldb-add-defines-needed-for-older-SDKs.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e9e1cc234a3
</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-19/files/0025-lldb-add-defines-needed-for-older-SDKs.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,55 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 745ebd5a9db4956328f42cf5a6d793cd28213a56 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 5 Jun 2021 11:57:45 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 25/25] lldb: add defines needed for older SDKs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fixes build of lldb back to at least 10.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lldb/tools/debugserver/source/DNB.h | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../debugserver/source/MacOSX/MachProcess.mm | 16 ++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 20 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/lldb/tools/debugserver/source/DNB.h b/lldb/tools/debugserver/source/DNB.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 069c62dc41d8..edfd55dd8422 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/lldb/tools/debugserver/source/DNB.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/lldb/tools/debugserver/source/DNB.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,6 +34,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CPU_TYPE_ARM64_32 ((cpu_type_t)12 | 0x02000000)
</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;'>++#ifndef CPU_SUBTYPE_ARM64E
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CPU_SUBTYPE_ARM64E ((cpu_subtype_t) 2)
</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;'>+ typedef bool (*DNBShouldCancelCallback)(void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void DNBInitialize();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b962da8d02b..6c27212c6e49 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,6 +47,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "CFBundle.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "CFString.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef PLATFORM_MACOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define PLATFORM_MACOS 1
</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;'>++#ifndef PLATFORM_IOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define PLATFORM_IOS 2
</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;'>++#ifndef PLATFORM_TVOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define PLATFORM_TVOS 3
</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;'>++#ifndef PLATFORM_WATCHOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define PLATFORM_WATCHOS 4
</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;'>+ #ifndef PLATFORM_BRIDGEOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define PLATFORM_BRIDGEOS 5
</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;'>+2.21.1 (Apple Git-122.3)
</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-19/files/0031-Avoid-Use-Of-Clonefile.patch b/lang/llvm-19/files/0031-Avoid-Use-Of-Clonefile.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f2607bb2de4
</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-19/files/0031-Avoid-Use-Of-Clonefile.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 788460d..c52dc72 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/Support/Unix/Path.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/Support/Unix/Path.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1462,7 +1462,7 @@ namespace fs {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::error_code copy_file(const Twine &From, const Twine &To) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::string FromS = From.str();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::string ToS = To.str();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if __has_builtin(__builtin_available)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (__builtin_available(macos 10.12, *)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Optimistically try to use clonefile() and handle errors, rather than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // calling stat() to see if it'll work.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0041-no-Werror-unguarded-availability-new.patch b/lang/llvm-19/files/0041-no-Werror-unguarded-availability-new.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..2baaf5593da
</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-19/files/0041-no-Werror-unguarded-availability-new.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,36 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0aae13e30f2a..aba28e40d9a2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/cmake/config-ix.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/cmake/config-ix.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -266,10 +266,10 @@ set(BACKTRACE_HEADER ${Backtrace_HEADER})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Prevent check_symbol_exists from using API that is not supported for a given
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # deployment target.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-check_c_compiler_flag("-Werror=unguarded-availability-new" "C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unguarded-availability-new")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#check_c_compiler_flag("-Werror=unguarded-availability-new" "C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if(C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=unguarded-availability-new")
</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;'>+ # Determine whether we can register EH tables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ check_symbol_exists(__register_frame "${CMAKE_CURRENT_LIST_DIR}/unwind.h" HAVE_REGISTER_FRAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5ca580fbb59c..ea0e026e5d31 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -668,9 +668,9 @@ if ( LLVM_COMPILER_IS_GCC_COMPATIBLE OR CMAKE_CXX_COMPILER_ID MATCHES "XL" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ append("-Werror=date-time" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif( LLVM_COMPILER_IS_GCC_COMPATIBLE OR CMAKE_CXX_COMPILER_ID MATCHES "XL" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- append("-Werror=unguarded-availability-new" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# append("-Werror=unguarded-availability-new" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
</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;'>+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM data structures like llvm::User and llvm::MDNode rely on
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0100-define-target-os-osx.patch b/lang/llvm-19/files/0100-define-target-os-osx.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..939c6175655
</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-19/files/0100-define-target-os-osx.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp 2021-10-26 12:21:35.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp 2021-10-26 12:25:47.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace llvm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace clang;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef TARGET_OS_OSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TARGET_OS_OSX 1
</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;'>+ #if TARGET_OS_OSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void stopFSEventStream(FSEventStreamRef);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/0110-Avoid-Pthread-QOS.patch b/lang/llvm-19/files/0110-Avoid-Pthread-QOS.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5abac64df86
</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-19/files/0110-Avoid-Pthread-QOS.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/llvm/lib/Support/Unix/Threading.inc b/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99f64b4f553d..5de1cf071ba9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/llvm/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,7 +22,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach/mach_init.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach/mach_port.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <pthread/qos.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -278,17 +277,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // minutes to complete. Examples include downloading a document or importing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // data. This class offers a balance between responsiveness, performance, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // energy efficiency.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const auto qosClass = [&]() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- switch (Priority) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case ThreadPriority::Background:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return QOS_CLASS_BACKGROUND;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case ThreadPriority::Low:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return QOS_CLASS_UTILITY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case ThreadPriority::Default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return QOS_CLASS_DEFAULT;
</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;'>+- return !pthread_set_qos_class_self_np(qosClass, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return !setpriority(PRIO_DARWIN_THREAD, 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Priority == ThreadPriority::Default ? 0 : PRIO_DARWIN_BG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ? SetThreadPriorityResult::SUCCESS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : SetThreadPriorityResult::FAILURE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/b98da4c71edda3df0a0555b1ab63ec52e92252b4-inverse.patch b/lang/llvm-19/files/b98da4c71edda3df0a0555b1ab63ec52e92252b4-inverse.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ea8a5899805
</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-19/files/b98da4c71edda3df0a0555b1ab63ec52e92252b4-inverse.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -392,8 +392,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_link_libraries(${libname} PRIVATE ${builtins_${libname}})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(${type} STREQUAL "SHARED")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(COMMAND llvm_setup_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ llvm_setup_rpath(${libname})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(APPLE OR WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set_property(TARGET ${libname} PROPERTY BUILD_WITH_INSTALL_RPATH ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(WIN32 AND NOT CYGWIN AND NOT MINGW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/llvm-bin b/lang/llvm-19/files/llvm-bin
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..30a82697b74
</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-19/files/llvm-bin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/bin/bash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if [ -x /usr/bin/xcrun ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec /usr/bin/xcrun EXEC_PATH "${@}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec EXEC_PATH "${@}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fi
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/llvm-bin-compat b/lang/llvm-19/files/llvm-bin-compat
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b060c1a098d
</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-19/files/llvm-bin-compat
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+exec EXEC_PATH "${@}"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/mp-clang-19 b/lang/llvm-19/files/mp-clang-19
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..69bbcb35e6c
</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-19/files/mp-clang-19
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/c-index-test-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang++-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-format-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/scan-build-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/scan-view-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-apply-replacements-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-check-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-cl-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-query-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-rename-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-tidy-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/git-clang-format-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/run-clang-tidy-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/sancov-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clangd-mp-19
</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;'>+-
</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;'>+-
</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;'>+-
</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;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/mp-lldb-19 b/lang/llvm-19/files/mp-lldb-19
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..07d34b0bdf7
</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-19/files/mp-lldb-19
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/darwin-debug-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lldb-argdumper-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lldb-instr-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lldb-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lldb-server-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lldb-vscode-mp-19
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-19/files/mp-llvm-19 b/lang/llvm-19/files/mp-llvm-19
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8ecb964bbe5
</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-19/files/mp-llvm-19
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/bugpoint-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llc-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lli-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-ar-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-as-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-bcanalyzer-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-config-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-cov-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-diff-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dis-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dwarfdump-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-extract-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-link-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-mc-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-nm-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-objdump-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-ranlib-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-rtdyld-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-size-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-stress-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-symbolizer-mp-19
</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;'>+bin/opt-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-tblgen-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-readobj-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-profdata-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/dsymutil-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-cxxdump-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-c-test-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dwp-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-lib-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-lto-mp-19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-split-mp-19
</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;'>+-
</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;'>+-
</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;'>+-
</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;'>+-
</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;'>+-
</span></pre><pre style='margin:0'>
</pre>