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

</pre>
<p><a href="https://github.com/macports/macports-base/commit/edb3de27f2631879269f40c583c7ad996b82f69a">https://github.com/macports/macports-base/commit/edb3de27f2631879269f40c583c7ad996b82f69a</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit edb3de27f2631879269f40c583c7ad996b82f69a
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Oct 15 17:29:50 2024 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Re-execute natively if started under Rosetta 2
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    But not if building for x86_64 or if a selfupdate or migrate is already
</span><span style='display:block; white-space:pre;color:#404040;'>    underway. This should help prevent issues caused by build systems
</span><span style='display:block; white-space:pre;color:#404040;'>    auto-detecting that they are on x86_64 even though we're using compiler
</span><span style='display:block; white-space:pre;color:#404040;'>    flags that build for arm64.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    (cherry picked from commit eee437c415b4e1d17eeb57fecff633f1d3846ffd)
</span>---
 src/port/port.tcl | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/port.tcl b/src/port/port.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index fafa21ec9..040f5cedb 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5607,6 +5607,20 @@ if {[catch {mportinit ui_options global_options global_variations} result]} {
</span>     fatal "Failed to initialize MacPorts, $result"
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Re-execute if running under Rosetta 2 and not building for x86_64.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# We know we are a universal binary if this is needed since mportinit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# would have errored if not.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${macports::os_major} >= 20 && ${macports::os_platform} eq "darwin" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${macports::build_arch} ne "x86_64" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ![info exists global_options(ports_no_migration_check)] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ![catch {sysctl sysctl.proc_translated} translated] && $translated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_warn "MacPorts started under Rosetta 2, re-executing natively"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    execl /usr/bin/arch [list -arm64 $::argv0 {*}$::argv]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "Would have executed $::argv0 $::argv"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_warn "Failed to re-execute MacPorts... just continuing"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Change to port directory if requested
 if {[info exists global_options(ports_dir)]} {
     set dir $global_options(ports_dir)
</pre><pre style='margin:0'>

</pre>