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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/655f327dcdb40f4519f6a87da5d46ef5647c5724">https://github.com/macports/macports-ports/commit/655f327dcdb40f4519f6a87da5d46ef5647c5724</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 655f327dcdb libcxx: adjust emulated_tls logic
</span>655f327dcdb is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 655f327dcdb40f4519f6a87da5d46ef5647c5724
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun May 15 07:13:36 2022 +1000

<span style='display:block; white-space:pre;color:#404040;'>    libcxx: adjust emulated_tls logic
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Don't enforce compiler choice for emulated_tls until the variant is
</span><span style='display:block; white-space:pre;color:#404040;'>    confirmed to be set (it can be unset by the user even though it is a
</span><span style='display:block; white-space:pre;color:#404040;'>    default variant).
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Default to +emulated_tls even with no suitable compiler active if the
</span><span style='display:block; white-space:pre;color:#404040;'>    current version of libcxx is already installed with +emulated_tls. It
</span><span style='display:block; white-space:pre;color:#404040;'>    doesn't need to be built in that case, but it may need to be activated,
</span><span style='display:block; white-space:pre;color:#404040;'>    and this ensures that it is activated with this variant.
</span>---
 lang/libcxx/Portfile | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 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 5b857f4e2c1..2cd5d9770ae 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;'>@@ -99,21 +99,37 @@ if {${os.major} < 11 || [variant_isset replacemnt_libcxx]} {
</span> 
         # only selected clang versions support emulated_tls, and the emulated_tls variant
         # needs to be enabled to build libcxx with emulated_tls support
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        set emutls_clangs [list]
</span>         foreach clang_c ${compiler.fallback} {
             if {[string match macports-clang-* $clang_c]} {
                 # Extract version number from macports clang compiler name
                 set clang_v [lindex [split $clang_c -] 2]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                if { ${clang_v} >= 5.0 } {
</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;'>-                        if {[active_variants clang-${clang_v} emulated_tls]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            ui_debug "Adding ${clang_c} to compiler whitelist"
</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;'>-                            compiler.whitelist-prepend ${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:#e0ffe0;'>+                if {${clang_v} >= 5.0 && [file exists ${prefix}/bin/clang-mp-${clang_v}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        && [active_variants clang-${clang_v} emulated_tls]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ui_debug "Adding ${clang_c} to list of compilers supporting emulated_tls"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lappend emutls_clangs ${clang_c}
</span>                 }
             }
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[llength $emutls_clangs] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            default_variants-append +emulated_tls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {![info exists registry_open]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                registry::open [file join ${registry.path} registry registry.db]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set registry_open yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach ent [registry::entry search name $name version $version revision $revision] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[string match *+emulated_tls* [$ent variants]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # 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:#e0ffe0;'>+                    default_variants-append +emulated_tls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    break
</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;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[variant_isset emulated_tls]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            compiler.whitelist-prepend [lindex $emutls_clangs end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     }
 
     compiler.blacklist *gcc* {clang < 500}
</pre><pre style='margin:0'>

</pre>