<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3c1ace9d14ed87685e8104301ff091df3519a97d">https://github.com/macports/macports-ports/commit/3c1ace9d14ed87685e8104301ff091df3519a97d</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 3c1ace9d14e gawk: reenable arm64 build
</span>3c1ace9d14e is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 3c1ace9d14ed87685e8104301ff091df3519a97d
</span>Author: Mark Mentovai <mark@mentovai.com>
AuthorDate: Wed Nov 23 00:19:08 2022 -0500
<span style='display:block; white-space:pre;color:#404040;'> gawk: reenable arm64 build
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Upstream gawk has added a “PMA” (persistent memory allocator) feature
</span><span style='display:block; white-space:pre;color:#404040;'> that unfortunately requires gawk to be built as a non-PIE
</span><span style='display:block; white-space:pre;color:#404040;'> (position-independent executable). Non-PIE is not supported at all on
</span><span style='display:block; white-space:pre;color:#404040;'> mac-arm64, so the upstream default as of
</span><span style='display:block; white-space:pre;color:#404040;'> https://git.savannah.gnu.org/cgit/gawk.git/commit?id=0d9727bcd312da8555ca59942790adfee5fcafea
</span><span style='display:block; white-space:pre;color:#404040;'> is to forcibly build gawk as mac-x86_64, requiring it to run under
</span><span style='display:block; white-space:pre;color:#404040;'> Rosetta binary translation on mac-arm64. Informed opinion: the
</span><span style='display:block; white-space:pre;color:#404040;'> upstream’s approach is misguided for multiple reasons.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The recent update of the gawk port to 5.2.1 at 42141802c346 honored this
</span><span style='display:block; white-space:pre;color:#404040;'> upstream default, causing problems for mac-arm64 systems without Rosetta
</span><span style='display:block; white-space:pre;color:#404040;'> installed, and problems upgrading the gawk port to this new version in
</span><span style='display:block; white-space:pre;color:#404040;'> the likely case that the existing gettext-runtime dependency was not
</span><span style='display:block; white-space:pre;color:#404040;'> installed as its universal variant.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> To reenable the arm64 build of gawk, configure it to disable its PMA
</span><span style='display:block; white-space:pre;color:#404040;'> feature, allowing it to be built as PIE and thus as a proper arm64
</span><span style='display:block; white-space:pre;color:#404040;'> executable.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> As non-PIE is deprecated when targeting macOS ≥ 12 on any architecture,
</span><span style='display:block; white-space:pre;color:#404040;'> disable gawk’s PMA feature in that case as well.
</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/66327
</span>---
lang/gawk/Portfile | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gawk/Portfile b/lang/gawk/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 5781a79cb08..8d29f2f55d1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gawk/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gawk/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup legacysupport 1.1
</span>
name gawk
version 5.2.1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> categories lang
license GPL-3+
installs_libs no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,12 +28,20 @@ depends_build port:gettext
</span>
depends_lib port:gettext-runtime
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # See README.macos: gawk has to be built as a x86_64 binary
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PortGroup active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --with-libiconv-prefix=${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --without-mpfr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --without-readline \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_cv_libsigsegv=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_cv_prog_AWK=awk
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- require_active_variants gettext-runtime universal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${build_arch} eq "arm64" || ${os.major} >= 21} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # See README_d/README.macosx: PMA (persistent memory allocator) requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # non-PIE (position-independent executable), but this is impossible on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # mac-arm64, and deprecated when targeting macOS 12 and later. Disable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the PMA feature in those cases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-pma
</span> }
# https://trac.macports.org/ticket/65944
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,12 +52,6 @@ platform darwin {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args --with-libiconv-prefix=${prefix} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --without-mpfr \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --without-readline \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_cv_libsigsegv=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_cv_prog_AWK=awk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # fix build on Tiger see https://trac.macports.org/ticket/55145
platform darwin 8 {
configure.cppflags-append -D__DARWIN_UNIX03
</pre><pre style='margin:0'>
</pre>