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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9b00e0004a63dd34473717fabf7fb2b54ad3ceb2">https://github.com/macports/macports-ports/commit/9b00e0004a63dd34473717fabf7fb2b54ad3ceb2</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 9b00e00  libcxx: remove weak linked cxa_thread_atexit_impl
</span>9b00e00 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 9b00e0004a63dd34473717fabf7fb2b54ad3ceb2
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Thu Jan 10 18:10:49 2019 -0800

<span style='display:block; white-space:pre;color:#404040;'>    libcxx: remove weak linked cxa_thread_atexit_impl
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    on Linux, libcxxabi weak-links against the above function if it is
</span><span style='display:block; white-space:pre;color:#404040;'>    present in libc. On darwin, this function is not used, and the built-in
</span><span style='display:block; white-space:pre;color:#404040;'>    fallback implementation is used instead.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    On 10.5 and less, the weak-linking mechanism does not properly
</span><span style='display:block; white-space:pre;color:#404040;'>    weak-link against this function, and generates a runtime error whenever
</span><span style='display:block; white-space:pre;color:#404040;'>    libc++abi.dylib is loaded. This can be overcome by forcing a flat_namespace,
</span><span style='display:block; white-space:pre;color:#404040;'>    but that is undesirable. On 10.6, this error does not occur.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    As the function is unused on darwin, the most appropriate fix is to remove it
</span><span style='display:block; white-space:pre;color:#404040;'>    completely. This works properly on all systems, and passes all expected tests.
</span>---
 lang/libcxx/Portfile                               |  5 ++-
 ...abi-cxa-thread-atexit-no-weak-atexit-impl.patch | 47 ++++++++++++++++++++++
 2 files changed, 50 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/libcxx/Portfile b/lang/libcxx/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 76d2ec2..7122ca9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/libcxx/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/libcxx/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ PortGroup               active_variants 1.1
</span> name                    libcxx
 epoch                   1
 version                 5.0.1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                4
</span> categories              lang
 platforms               darwin
 license                 MIT NCSA
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -138,7 +138,8 @@ if {${os.major} < 11 || [variant_isset replacemnt_libcxx]} {
</span>       patchfiles-append \
         0005-libcxxabi-add-emutls.patch                                           \
         0006-libcxxabi-buildit-build-emutls.patch                                 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        0007-libcxxabi-include-expose-cxa-thread-atexit.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        0007-libcxxabi-include-expose-cxa-thread-atexit.patch                     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        0008-libcxxabi-cxa-thread-atexit-no-weak-atexit-impl.patch
</span>     }
 
     # restore libc++ buildit and patches for libc++ buildit
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/libcxx/files/0008-libcxxabi-cxa-thread-atexit-no-weak-atexit-impl.patch b/lang/libcxx/files/0008-libcxxabi-cxa-thread-atexit-no-weak-atexit-impl.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..a7c6f18
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/libcxx/files/0008-libcxxabi-cxa-thread-atexit-no-weak-atexit-impl.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;'>+diff --git libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp.old libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 49d15d6..e0e3d1a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcxxabi-5.0.1.src/src/cxa_thread_atexit.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,14 +17,6 @@ namespace __cxxabiv1 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   using Dtor = void(*)(void*);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   extern "C"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef HAVE___CXA_THREAD_ATEXIT_IMPL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // A weak symbol is used to detect this function's presence in the C library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // at runtime, even if libc++ is built against an older libc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  _LIBCXXABI_WEAK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int __cxa_thread_atexit_impl(Dtor, void*, void*);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef HAVE___CXA_THREAD_ATEXIT_IMPL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // This implementation is used if the C library does not provide
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,17 +91,11 @@ namespace {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } // namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif // HAVE___CXA_THREAD_ATEXIT_IMPL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _LIBCXXABI_FUNC_VIS int __cxa_thread_atexit(Dtor dtor, void* obj, void* dso_symbol) throw() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE___CXA_THREAD_ATEXIT_IMPL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return __cxa_thread_atexit_impl(dtor, obj, dso_symbol);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (__cxa_thread_atexit_impl) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return __cxa_thread_atexit_impl(dtor, obj, dso_symbol);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // Initialize the dtors std::__libcpp_tls_key (uses __cxa_guard_*() for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // one-time initialization and __cxa_atexit() for destruction)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static DtorsManager manager;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +119,6 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif // HAVE___CXA_THREAD_ATEXIT_IMPL
</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;'>+ } // extern "C"
</span></pre><pre style='margin:0'>

</pre>