<pre style='margin:0'>
Ken (kencu) pushed a commit to branch clang-17-fixes
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/28bff59128497bbc6464b639a2a814ec2c67dfba">https://github.com/macports/macports-ports/commit/28bff59128497bbc6464b639a2a814ec2c67dfba</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 28bff59128497bbc6464b639a2a814ec2c67dfba
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Sun Apr 21 15:32:28 2024 -0700

<span style='display:block; white-space:pre;color:#404040;'>    clang-17: disable verbose_abort in availability
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    when availability tests are disabled (macports-libcxx, darwin 10)
</span><span style='display:block; white-space:pre;color:#404040;'>    a fallback set of defines are used in
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    include/c++/v1/__availability
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    however, the fallback defaults to indicating that libcxx contains
</span><span style='display:block; white-space:pre;color:#404040;'>    a verbose_abort function. This is currently always false for MacPorts
</span><span style='display:block; white-space:pre;color:#404040;'>    uses, and so link errors occur.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    disable this by default, so a fallback pathway is used
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    closes: https://trac.macports.org/ticket/68640
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    this has no effect on the normal functionality of this header,
</span><span style='display:block; white-space:pre;color:#404040;'>    as the __APPLE__ pathway is used otherwise.
</span>---
 lang/llvm-17/Portfile                                       |  5 +++++
 .../files/0120-clang-17-no-verbose-abort-in-library.diff    | 13 +++++++++++++
 2 files changed, 18 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-17/Portfile b/lang/llvm-17/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7359d5dacb6..1b9b6bf2d40 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -203,6 +203,11 @@ if {${os.platform} eq "darwin" && ${os.major} < 12} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# alter the default availability header to indicate no verbose_abort is in libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the altered section is used only when macports-libcxx is being invoked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see: https://trac.macports.org/ticket/68640
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append      0120-clang-17-no-verbose-abort-in-library.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # https://trac.macports.org/ticket/67686
 # revert commit that breaks rpath linkages in clang runtime
 if {${os.platform} eq "darwin"} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-17/files/0120-clang-17-no-verbose-abort-in-library.diff b/lang/llvm-17/files/0120-clang-17-no-verbose-abort-in-library.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3f4f8ae8c42
</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-17/files/0120-clang-17-no-verbose-abort-in-library.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/libcxx/include/__availability.orig   2024-04-07 18:52:02.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/libcxx/include/__availability        2024-04-07 18:54:09.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,8 +166,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // This controls whether the library claims to provide a default verbose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // termination function, and consequently whether the headers will try
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // to use it when the mechanism isn't overriden at compile-time.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// #   define _LIBCPP_AVAILABILITY_HAS_NO_VERBOSE_ABORT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#   define _LIBCPP_AVAILABILITY_VERBOSE_ABORT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define _LIBCPP_AVAILABILITY_HAS_NO_VERBOSE_ABORT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define _LIBCPP_AVAILABILITY_VERBOSE_ABORT         __attribute__((unavailable))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // This controls the availability of the C++17 std::pmr library,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // which is implemented in large part in the built library.
</span></pre><pre style='margin:0'>

</pre>