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

</pre>
<p><a href="https://github.com/macports/macports-base/commit/89035db9884075d6ce0300c79fdf2b6bd5a474b9">https://github.com/macports/macports-base/commit/89035db9884075d6ce0300c79fdf2b6bd5a474b9</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 89035db98 Add compiler_blacklist_versions functionality
</span>89035db98 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 89035db9884075d6ce0300c79fdf2b6bd5a474b9
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Mon Feb 17 09:36:02 2025 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Add compiler_blacklist_versions functionality
</span>---
 src/port1.0/portconfigure.tcl | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 99dd0b8bb..41e12fc13 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -793,7 +793,25 @@ proc portconfigure::configure_get_default_compiler {} {
</span>     foreach compiler $search_list {
         set allowed yes
         foreach pattern ${compiler.blacklist} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[string match $pattern $compiler]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[llength $pattern] >= 3 && [lindex $pattern 0] eq $compiler} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # version based, e.g. {clang < 500}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set compiler_vers [compiler.command_line_tools_version $compiler]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set allowed no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {$compiler_vers eq {}} {
</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;'>+                foreach {operator check_vers} [lrange ${pattern} 1 end] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # matches only if all comparisons are true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {![vercmp $compiler_vers $operator $check_vers]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set allowed yes
</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;'>+                if {!$allowed} {
</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;'>+            } elseif {[string match $pattern $compiler]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # pattern based, e.g. *gcc-4.2
</span>                 set allowed no
                 break
             }
</pre><pre style='margin:0'>

</pre>