<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/a2ffe8747108cfb5891234f0eb53d5489ba47b01">https://github.com/macports/macports-ports/commit/a2ffe8747108cfb5891234f0eb53d5489ba47b01</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit a2ffe8747108cfb5891234f0eb53d5489ba47b01
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Thu Jul 18 09:53:34 2024 +0100

<span style='display:block; white-space:pre;color:#404040;'>    clang-17,18: 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;'>    see: 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                                 |  7 ++++++-
 .../files/0120-clang-no-verbose-abort-in-library.diff | 19 +++++++++++++++++++
 lang/llvm-18/Portfile                                 |  7 ++++++-
 .../files/0120-clang-no-verbose-abort-in-library.diff | 19 +++++++++++++++++++
 4 files changed, 50 insertions(+), 2 deletions(-)

<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 628a2a795f3..93aae6c460e 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;'>@@ -29,7 +29,7 @@ version                 ${llvm_version}.0.6
</span> name                    llvm-${llvm_version}
 revision                1
 subport                 mlir-${llvm_version}  { revision [ expr ${revision} + 0 ] }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport                 clang-${llvm_version} { revision [ expr ${revision} + 0 ] }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport                 clang-${llvm_version} { revision [ expr ${revision} + 1 ] }
</span> subport                 lldb-${llvm_version}  { revision [ expr ${revision} + 0 ] }
 subport                 flang-${llvm_version} { revision [ expr ${revision} + 0 ] }
 
<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-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-no-verbose-abort-in-library.diff b/lang/llvm-17/files/0120-clang-no-verbose-abort-in-library.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a820c463345
</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-no-verbose-abort-in-library.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+by default, availability-disabled headers indicate the supplied libcxx contains
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+a verbose abort function. the libcxx versions that are installed by macports-libcxx 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+do not currently have such a function, so links fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+alter the default availability header to indicate no such function is supplied
</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/68640
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/libcxx/include/__availability.orig   2024-04-07 10:11:44.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/libcxx/include/__availability        2024-04-07 10:12:25.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,6 +166,6 @@
</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_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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // This controls the availability of the C++17 std::pmr library,
</span>\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-18/Portfile b/lang/llvm-18/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 30a48323508..d1546c97c64 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-18/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-18/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,7 +29,7 @@ version                 ${llvm_version}.1.8
</span> name                    llvm-${llvm_version}
 revision                0
 subport                 mlir-${llvm_version}  { revision [ expr ${revision} + 0 ] }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport                 clang-${llvm_version} { revision [ expr ${revision} + 0 ] }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport                 clang-${llvm_version} { revision [ expr ${revision} + 1 ] }
</span> subport                 lldb-${llvm_version}  { revision [ expr ${revision} + 0 ] }
 subport                 flang-${llvm_version} { revision [ expr ${revision} + 0 ] }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -166,6 +166,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-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-18/files/0120-clang-no-verbose-abort-in-library.diff b/lang/llvm-18/files/0120-clang-no-verbose-abort-in-library.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..cad6e87b8f9
</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-18/files/0120-clang-no-verbose-abort-in-library.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+by default, availability-disabled headers indicate the supplied libcxx contains
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+a verbose abort function. the libcxx versions that are installed by macports-libcxx 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+do not currently have such a function, so links fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+alter the default availability header to indicate no such function is supplied
</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/68640
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/libcxx/include/__availability.orig   2024-04-07 10:11:44.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/libcxx/include/__availability        2024-04-07 10:12:25.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -128,7 +128,7 @@
</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_VERBOSE_ABORT 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define _LIBCPP_AVAILABILITY_HAS_VERBOSE_ABORT 0
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This controls the availability of the C++17 std::pmr library,
</span></pre><pre style='margin:0'>

</pre>