<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/47c6a4162f2ccbed5372ba49c4933f355fde20ab">https://github.com/macports/macports-base/commit/47c6a4162f2ccbed5372ba49c4933f355fde20ab</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 47c6a4162f2ccbed5372ba49c4933f355fde20ab
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sat Mar 9 06:52:06 2024 +1100

<span style='display:block; white-space:pre;color:#404040;'>    portconfigure: prefer global to option calls
</span>---
 src/port1.0/portconfigure.tcl | 137 +++++++++++++++++++++++-------------------
 1 file changed, 76 insertions(+), 61 deletions(-)

<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 58aa2347a..e267d34ab 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;'>@@ -87,8 +87,9 @@ proc portconfigure::should_add_stdlib {} {
</span>     }
     # GCC also supports -stdlib starting with GCC 10 (and devel), but
     # not with PPC builds
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    global configure.build_arch
</span>     if {[string match *g*-mp-* ${configure.cxx}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            && [option configure.build_arch] ni [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            && ${configure.build_arch} ni {ppc ppc64}} {
</span>         # Do not pass stdlib to gcc if it is MacPorts custom macports-libstdc++ setting
         # as gcc does not uderstand this. Instead do nothing, which means gcc will
         # default to using its own libstdc++, which is in fact what we mean by
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -109,15 +110,15 @@ proc portconfigure::should_add_cxx_abi {} {
</span>     # for OS X Mavericks and above, users must select libstdc++, so
     #    assume they want default ABI compatibility
     # see https://gcc.gnu.org/onlinedocs/gcc-5.2.0/libstdc++/manual/manual/using_dual_abi.html
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [expr {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                  [option configure.cxx_stdlib] eq "macports-libstdc++" &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                  [option os.platform] eq "darwin"                      &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                  [option os.major] < 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              }]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global os.platform os.major configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [expr {${os.major} < 13 &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  ${os.platform} eq "darwin" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  ${configure.cxx_stdlib} eq "macports-libstdc++"}]
</span> }
 proc portconfigure::construct_cxxflags {flags} {
     if {[portconfigure::should_add_stdlib]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend flags -stdlib=[option configure.cxx_stdlib]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        global configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend flags -stdlib=${configure.cxx_stdlib}
</span>     }
     if {[portconfigure::should_add_cxx_abi]} {
         lappend flags -D_GLIBCXX_USE_CXX11_ABI=0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -134,7 +135,8 @@ proc portconfigure::stdlib_trace {opt action args} {
</span>     }
     if {$action eq "read"} {
         if {[portconfigure::should_add_stdlib]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $opt-append -stdlib=[option configure.cxx_stdlib]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            global configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $opt-append -stdlib=${configure.cxx_stdlib}
</span>         }
         if {[portconfigure::should_add_cxx_abi]} {
             $opt-append -D_GLIBCXX_USE_CXX11_ABI=0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -261,17 +263,17 @@ default configure.cflags        {${configure.optflags}}
</span> default configure.objcflags     {${configure.optflags}}
 default configure.cppflags      {[portconfigure::configure_get_cppflags]}
 proc portconfigure::configure_get_cppflags {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global prefix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global prefix compiler.limit_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compiler.limit_flags}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return {}
</span>     } else {
         return -I${prefix}/include
     }
 }
 default configure.ldflags       {[portconfigure::configure_get_ldflags]}
 proc portconfigure::configure_get_ldflags {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global prefix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global prefix compiler.limit_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compiler.limit_flags}} {
</span>         return -Wl,-headerpad_max_install_names
     } else {
         return "-L${prefix}/lib -Wl,-headerpad_max_install_names"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -359,11 +361,11 @@ default compiler.thread_local_storage  no
</span> set_ui_prefix
 
 proc portconfigure::configure_start {args} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global UI_PREFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global UI_PREFIX subport configure.compiler compiler.fallback configure.ccache
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_notice "$UI_PREFIX [format [msgcat::mc "Configuring %s"] [option subport]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_notice "$UI_PREFIX [format [msgcat::mc "Configuring %s"] $subport]"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set compiler [option configure.compiler]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set compiler ${configure.compiler}
</span>     set valid_compilers {
         {^apple-gcc-(4\.[02])$}                    {MacPorts Apple GCC %s}
         {^cc$}                                     {System cc}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -396,11 +398,10 @@ proc portconfigure::configure_start {args} {
</span>     if {![info exists compiler_name]} {
         return -code error "Invalid value for configure.compiler: $compiler"
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "Preferred compilers: [option compiler.fallback]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "Preferred compilers: ${compiler.fallback}"
</span>     ui_debug "Using compiler '$compiler_name'"
 
     # Additional ccache directory setup
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global configure.ccache
</span>     if {${configure.ccache}} {
         global ccache_dir ccache_size macportsuser
         # Create ccache directory with correct permissions with root privileges
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -548,7 +549,8 @@ proc portconfigure::find_close_sdk {sdk_version sdk_path} {
</span> }
 
 proc portconfigure::configure_get_sdkroot {sdk_version} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global developer_dir macos_version_major xcodeversion os.arch os.major os.platform use_xcode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global developer_dir macos_version macos_version_major xcodeversion \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           os.arch os.major os.platform use_xcode
</span> 
     # This is only relevant for macOS
     if {${os.platform} ne "darwin"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -582,7 +584,7 @@ proc portconfigure::configure_get_sdkroot {sdk_version} {
</span>         }
 
         if {$sdk_major >= 11 && $sdk_major == $macos_version_major} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set try_versions [list ${sdk_major}.0 [option macos_version]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set try_versions [list ${sdk_major}.0 ${macos_version}]
</span>         } else {
             set try_versions [list $sdk_version]
         }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -642,7 +644,7 @@ proc portconfigure::configure_get_sdkroot {sdk_version} {
</span>     }
 
     if {$sdk_major >= 11 && $sdk_major == $macos_version_major} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set try_versions [list ${sdk_major}.0 [option macos_version]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set try_versions [list ${sdk_major}.0 ${macos_version}]
</span>     } else {
         set try_versions [list $sdk_version]
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -729,9 +731,10 @@ proc portconfigure::arch_flag_supported {compiler {multiple_arch_flags no}} {
</span>     if {${multiple_arch_flags}} {
         return [regexp {^gcc-4|llvm|apple|clang} ${compiler}]
     } else {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        global os.subplatform
</span>         # GCC prior to 4.7 does not accept -arch flag
         if {[regexp {^macports(?:-[^-]+)?-gcc-4\.[0-6]} ${compiler}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                || ([option os.subplatform] ne "macosx" && ${compiler} in {cc gcc})} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                || (${os.subplatform} ne "macosx" && ${compiler} in {cc gcc})} {
</span>             return no
         } else {
             return yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -818,9 +821,10 @@ proc portconfigure::configure_get_fortran_compiler {} {
</span>         return ${configure.compiler}
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach compiler [option compiler.fortran_fallback] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compiler.fortran_fallback compiler.blacklist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach compiler ${compiler.fortran_fallback} {
</span>         set allowed yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach pattern [option compiler.blacklist] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach pattern ${compiler.blacklist} {
</span>             if {[string match $pattern $compiler]} {
                 set allowed no
                 break
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -834,7 +838,7 @@ proc portconfigure::configure_get_fortran_compiler {} {
</span>         }
     }
     ui_warn "All Fortran compilers are either blacklisted or unavailable; defaulting to first fallback option"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex [option compiler.fortran_fallback] 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [lindex ${compiler.fortran_fallback} 0]
</span> }
 
 #
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -983,7 +987,8 @@ proc portconfigure::get_min_command_line {compiler} {
</span> }
 # utility procedure: get minimum Clang version based on restrictions
 proc portconfigure::get_min_clang {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global compiler.c_standard compiler.cxx_standard compiler.openmp_version compiler.thread_local_storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compiler.c_standard compiler.cxx_standard compiler.openmp_version \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compiler.thread_local_storage configure.cxx_stdlib
</span>     set min_value 1.0
     if {${compiler.c_standard} >= 2017} {
         set min_value [max_version $min_value 6.0]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -995,14 +1000,14 @@ proc portconfigure::get_min_clang {} {
</span>     } elseif {${compiler.cxx_standard} >= 2017} {
         set min_value [max_version $min_value 5.0]
     } elseif {${compiler.cxx_standard} >= 2014} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option configure.cxx_stdlib] eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${configure.cxx_stdlib} eq "libc++"} {
</span>             set min_value [max_version $min_value 3.4]
         } else {
             # macports-libstdc++ only macports-clang compilers >= 5.0 support this
             set min_value [max_version $min_value 5.0]
         }
     } elseif {${compiler.cxx_standard} >= 2011} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option configure.cxx_stdlib] eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${configure.cxx_stdlib} eq "libc++"} {
</span>             set min_value [max_version $min_value 3.3]
         } else {
             # macports-libstdc++ only macports-clang compilers >= 5.0 support this
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1022,16 +1027,20 @@ proc portconfigure::get_min_clang {} {
</span> }
 # utility procedure: get minimum GCC version based on restrictions
 proc portconfigure::get_min_gcc {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global compiler.c_standard compiler.cxx_standard compiler.openmp_version compiler.thread_local_storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global configure.cxx_stdlib
</span> 
     # Technically these only support macports-libstdc++, but if all the
     # options that use the system libstdc++ have been blacklisted, we
     # still need to use something. So only skip them entirely when
     # using libc++.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option configure.cxx_stdlib] eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${configure.cxx_stdlib} eq "libc++"} {
</span>         return none
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compiler.c_standard compiler.cxx_standard compiler.openmp_version \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compiler.thread_local_storage compiler.limit_flags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compiler.support_environment_sdkroot configure.sdkroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     set min_value 1.0
     if {${compiler.c_standard} >= 2017} {
         set min_value [max_version $min_value 8]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1064,9 +1073,8 @@ proc portconfigure::get_min_gcc {} {
</span>         # GCC emulates thread-local storage, but it seems to be broken on older versions of GCC
         set min_value [max_version $min_value 4.5]
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {(${compiler.limit_flags} || ${compiler.support_environment_sdkroot})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        && ${configure.sdkroot} ne {}
</span>     } {
         set min_value [max_version $min_value 7]
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1074,7 +1082,9 @@ proc portconfigure::get_min_gcc {} {
</span> }
 # utility procedure: get minimum Gfortran version based on restrictions
 proc portconfigure::get_min_gfortran {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global compiler.openmp_version compiler.thread_local_storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compiler.openmp_version compiler.thread_local_storage \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compiler.limit_flags compiler.support_environment_sdkroot \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           configure.sdkroot
</span>     set min_value 1.0
     if {[vercmp ${compiler.openmp_version} 4.5] >= 0} {
         set min_value [max_version $min_value 8]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1089,9 +1099,8 @@ proc portconfigure::get_min_gfortran {} {
</span>         # GCC emulates thread-local storage, but it seems to be broken on older versions of GCC
         set min_value [max_version $min_value 4.5]
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {(${compiler.limit_flags} || ${compiler.support_environment_sdkroot})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        && ${configure.sdkroot} ne {}
</span>     } {
         set min_value [max_version $min_value 7]
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1099,18 +1108,19 @@ proc portconfigure::get_min_gfortran {} {
</span> }
 #
 proc portconfigure::g95_ok {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global compiler.openmp_version os.platform xcodeversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global os.platform xcodeversion
</span>     if {${os.platform} eq "darwin" && ([vercmp $xcodeversion 9.0] > 0)} {
         # see https://github.com/macports/macports-ports/commit/6b905efc9d5586366ac498ed78d6ac51c120d33f
         return no
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compiler.openmp_version compiler.limit_flags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compiler.support_environment_sdkroot configure.sdkroot
</span>     if {${compiler.openmp_version} ne ""} {
         # G95 does not support OpenMP
         return no
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {(${compiler.limit_flags} || ${compiler.support_environment_sdkroot})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        && ${configure.sdkroot} ne {}
</span>     } {
         return no
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1145,7 +1155,8 @@ proc portconfigure::get_apple_compilers_xcode_version {} {
</span>         set compilers [list llvm-gcc-4.2 clang gcc-4.2]
     } else {
         # Legacy Cases
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[string match *10.4u* [option configure.sdkroot]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        global configure.sdkroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[string match *10.4u* ${configure.sdkroot}]} {
</span>             # from Xcode 3.2 release notes:
             #    GCC 4.2 cannot be used with the Mac OS X 10.4u SDK.
             #    If you want to build targets using the 10.4u SDK on Xcode 3.2, you must set the Compiler Version to GCC 4.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1317,16 +1328,17 @@ proc compiler.command_line_tools_version {compiler} {
</span> }
 # internal function to choose compiler fallback list based on platform
 proc portconfigure::get_compiler_fallback {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global default_compilers xcodeversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global default_compilers xcodeversion os.subplatform \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           configure.build_arch compiler.mpi
</span> 
     # Check our override
     if {[info exists default_compilers]} {
         return $default_compilers
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option os.subplatform] eq "macosx"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.subplatform} eq "macosx"} {
</span>         # Check for macOS without Xcode (i.e. CLTs only)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {$xcodeversion eq "none" || $xcodeversion eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$xcodeversion in {none {}}} {
</span>             set available_apple_compilers [portconfigure::get_apple_compilers_os_version]
         } else {
             set available_apple_compilers [portconfigure::get_apple_compilers_xcode_version]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1371,11 +1383,12 @@ proc portconfigure::get_compiler_fallback {} {
</span>     set compilers [list]
     lappend compilers {*}${system_compilers}
     # when building for PowerPC architectures, prefer GCC to Clang
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set cur_arch [option configure.build_arch]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set cur_arch ${configure.build_arch}
</span>     if {$cur_arch eq ""} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set cur_arch [option build_arch]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        global build_arch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cur_arch ${build_arch}
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {$cur_arch in [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$cur_arch in {ppc ppc64}} {
</span>         lappend compilers {*}${gcc_compilers}
         lappend compilers {*}${clang_compilers}
     } else {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1383,11 +1396,11 @@ proc portconfigure::get_compiler_fallback {} {
</span>         lappend compilers {*}${gcc_compilers}
     }
     # generate list of MPI wrappers of current compilers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option compiler.mpi] eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compiler.mpi} eq ""} {
</span>         return $compilers
     } else {
         set mpi_compilers [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach mpi [option compiler.mpi] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach mpi ${compiler.mpi} {
</span>             foreach c ${compilers} {
                 lappend mpi_compilers [portconfigure::get_mpi_wrapper $mpi $c]
             }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1408,12 +1421,13 @@ proc portconfigure::get_fortran_fallback {} {
</span>     if {[portconfigure::g95_ok]} {
         lappend compilers macports-g95
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compiler.mpi
</span>     # generate list of MPI wrappers of current compilers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option compiler.mpi] eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compiler.mpi} eq ""} {
</span>         return $compilers
     } else {
         set mpi_compilers [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach mpi [option compiler.mpi] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach mpi ${compiler.mpi} {
</span>             foreach c ${compilers} {
                 lappend mpi_compilers [portconfigure::get_mpi_wrapper $mpi $c]
             }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1442,9 +1456,9 @@ proc portconfigure::find_developer_tool {name} {
</span> 
 # internal function to find correct compilers
 proc portconfigure::configure_get_compiler {type {compiler {}}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global configure.compiler prefix_frozen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global configure.compiler prefix_frozen compiler.require_fortran os.major
</span>     if {$compiler eq ""} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option compiler.require_fortran]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${compiler.require_fortran}} {
</span>             switch $type {
                 fc   -
                 f77  -
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1481,7 +1495,7 @@ proc portconfigure::configure_get_compiler {type {compiler {}}} {
</span>                 set clangpp [find_developer_tool clang++]
                 if {[file executable $clangpp]} {
                     return $clangpp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                } elseif {[option os.major] <= 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                } elseif {${os.major} <= 12} {
</span>                     return [find_developer_tool llvm-g++-4.2]
                 }
                 return ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1489,7 +1503,7 @@ proc portconfigure::configure_get_compiler {type {compiler {}}} {
</span>         }
     } elseif {[regexp {^gcc(-3\.3|-4\.[02])?$} $compiler -> suffix]} {
         # Only exists in Xcode < 4.2, so 10.7 and older.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option os.major] >= 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} >= 12} {
</span>             return ""
         }
         switch $type {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1501,7 +1515,7 @@ proc portconfigure::configure_get_compiler {type {compiler {}}} {
</span>         }
     } elseif {$compiler eq "llvm-gcc-4.2"} {
         # Only exists in Xcode < 5, so 10.8 and older.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option os.major] >= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} >= 13} {
</span>             return ""
         }
         switch $type {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1716,7 +1730,7 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span>                 depends_lib-append $libgcc_dep
             }
         } elseif {[regexp {^macports-clang(?:-(\d+(?:\.\d+)?))$} $compiler -> clang_version]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            global configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            global configure.cxx_stdlib compiler.openmp_version
</span>             if {${configure.cxx_stdlib} eq "macports-libstdc++"} {
                 # see https://trac.macports.org/ticket/54766
                 ui_debug "Adding depends_lib path:lib/libgcc/libgcc_s.1.dylib:libgcc"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1728,7 +1742,7 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span>                 depends_lib-delete "port:libcxx"
                 depends_lib-append "port:libcxx"
             }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[option compiler.openmp_version] ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${compiler.openmp_version} ne ""} {
</span>                 ui_debug "Adding depends_lib port:libomp"
                 depends_lib-delete "port:libomp"
                 depends_lib-append "port:libomp"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1749,7 +1763,8 @@ proc portconfigure::configure_main {args} {
</span>            configure.perl configure.python configure.ruby configure.install configure.awk configure.bison \
            configure.pkg_config configure.pkg_config_path \
            configure.ccache configure.distcc configure.javac configure.sdkroot \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-           configure.march configure.mtune os.platform os.major
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           configure.march configure.mtune os.platform os.major \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compiler.limit_flags
</span>     foreach tool {cc cxx objc objcxx f77 f90 fc ld} {
         global configure.${tool} configure.${tool}_archflags
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1841,7 +1856,7 @@ proc portconfigure::configure_main {args} {
</span>         }
 
         # add SDK flags if cross-compiling (or universal on ppc tiger)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${configure.sdkroot} ne "" && ![option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${configure.sdkroot} ne "" && !${compiler.limit_flags}} {
</span>             foreach env_var {CPPFLAGS CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS} {
                 append_to_environment_value configure $env_var -isysroot${configure.sdkroot}
             }
</pre><pre style='margin:0'>

</pre>