<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/2a6125bbce37dabecf26246a253e79e9f58eb820">https://github.com/macports/macports-ports/commit/2a6125bbce37dabecf26246a253e79e9f58eb820</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 2a6125bbce3 libcxx: bootstrap with +emulated_tls on 10.6
</span>2a6125bbce3 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 2a6125bbce37dabecf26246a253e79e9f58eb820
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Wed Aug 3 19:24:26 2022 +0200

<span style='display:block; white-space:pre;color:#404040;'>    libcxx: bootstrap with +emulated_tls on 10.6
</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/58898
</span>---
 lang/libcxx/Portfile | 78 +++++++++-------------------------------------------
 1 file changed, 13 insertions(+), 65 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 2cd5d9770ae..f3ea76ed0f1 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;'>@@ -1,13 +1,12 @@
</span> # -*- 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
 
 PortSystem              1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup               compiler_blacklist_versions 1.0
</span> PortGroup               active_variants 1.1
 
 name                    libcxx
 epoch                   1
 version                 5.0.1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                5
</span> categories              lang
 platforms               darwin
 license                 MIT NCSA
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -71,7 +70,7 @@ platform darwin {
</span>                     # The Tiger SDK has an u after the version number,
                     set sdk_name MacOSX10.4u.sdk
                 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set sdk_name MacOSX[join [lrange [split ${macosx_version} .] 0 1] .].sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set sdk_name MacOSX${macos_version_major}.sdk
</span>                 }
                 lappend dirs ${developer_dir}/SDKs/${sdk_name}
             }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -94,58 +93,17 @@ if {${os.major} < 11 || [variant_isset replacemnt_libcxx]} {
</span>         configure.universal_archs i386 x86_64
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Use clang-11-bootstrap as bootstrap compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append port:clang-11-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_skip_archcheck-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:clang-11-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cc        ${prefix}/libexec/clang-11-bootstrap/bin/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx       ${prefix}/libexec/clang-11-bootstrap/bin/clang++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     if {${os.major} < 11} {
         variant emulated_tls description {build libcxxabi and libcxx with support for emulated thread_local storage} {}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # only selected clang versions support emulated_tls, and the emulated_tls variant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # needs to be enabled to build libcxx with emulated_tls support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set emutls_clangs [list]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach clang_c ${compiler.fallback} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[string match macports-clang-* $clang_c]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                # Extract version number from macports clang compiler name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set clang_v [lindex [split $clang_c -] 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {${clang_v} >= 5.0 && [file exists ${prefix}/bin/clang-mp-${clang_v}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        && [active_variants clang-${clang_v} emulated_tls]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_debug "Adding ${clang_c} to list of compilers supporting emulated_tls"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    lappend emutls_clangs ${clang_c}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[llength $emutls_clangs] > 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            default_variants-append +emulated_tls
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {![info exists registry_open]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                registry::open [file join ${registry.path} registry registry.db]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set registry_open yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            foreach ent [registry::entry search name $name version $version revision $revision] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[string match *+emulated_tls* [$ent variants]]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    # this version of the port is already installed with +emulated_tls, so keep defaulting to it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    default_variants-append +emulated_tls
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    break
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset emulated_tls]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            compiler.whitelist-prepend [lindex $emutls_clangs end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.blacklist *gcc* {clang < 500}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # clang 3.5 and newer are conditionally blacklisted to prevent dependency cycles
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach clang_c ${compiler.fallback} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[string match macports-clang-* $clang_c]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Extract version number from macports clang compiler name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set clang_v [lindex [split $clang_c -] 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if { ${clang_v} >= 3.5 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {![file exists ${prefix}/bin/clang-mp-${clang_v}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_debug "Adding ${clang_c} to compiler blacklist"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    compiler.blacklist-append ${clang_c}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_variants-append +emulated_tls
</span>     }
 
     post-extract {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -158,6 +116,9 @@ if {${os.major} < 11 || [variant_isset replacemnt_libcxx]} {
</span>             # cmake doesn't include this for darwin builds, so nuke it here as well
             # however, this file is essential for emulated-tls to function
             delete ${libcxxabi_worksrcpath}/src/cxa_thread_atexit.cpp
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            require_active_variants \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:clang-11-bootstrap emulated_tls
</span>         }
 
         file mkdir ${workpath}/build
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -247,19 +208,6 @@ if {${os.major} < 11 || [variant_isset replacemnt_libcxx]} {
</span>         system -W ${destroot}${roots_path}/${root_name} "tar czf ../${root_name}.tgz ."
         delete ${destroot}${roots_path}/${root_name}
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![variant_isset emulated_tls] && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    notes "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    The libcxx you have installed is functional but does not have thread_local support.\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    To rebuild libcxx with full thread_local support, please install clang-9.0 or any\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    macports-clang >= clang-5.0 and then rebuild libcxx like this:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    sudo port -v -n upgrade --force --enforce-variants libcxx +emulated_tls
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    and you will have a fully-functional libcxx installation.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> } else {
     supported_archs noarch
     distfiles
</pre><pre style='margin:0'>

</pre>