<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>