Merge pull request #207478 from trofi/gawk-update

gawk: 5.1.1 -> 5.2.1
This commit is contained in:
Sergei Trofimovich 2022-12-29 18:02:41 +00:00 committed by GitHub
commit a760f99e22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 3 deletions

View File

@ -0,0 +1,31 @@
https://git.savannah.gnu.org/cgit/gawk.git/patch/?id=e0b7737930f8a677d3c509f8ce72b9130965ec0a
--- a/m4/pma.m4
+++ b/m4/pma.m4
@@ -23,15 +23,18 @@ then
[LDFLAGS="${LDFLAGS} -no-pie"
export LDFLAGS])
;;
- *darwin*)
- # 23 October 2022: See README_d/README.macosx for
- # the details on what's happening here. See also
- # the manual.
-
- # Compile as Intel binary all the time, even on M1.
- CFLAGS="${CFLAGS} -arch x86_64"
- LDFLAGS="${LDFLAGS} -Xlinker -no_pie"
- export CFLAGS LDFLAGS
+ *darwin*)
+ # 27 November 2022: PMA only works on Intel.
+ case $host in
+ x86_64-*)
+ LDFLAGS="${LDFLAGS} -Xlinker -no_pie"
+ export LDFLAGS
+ ;;
+ *)
+ # disable on all other macOS systems
+ use_persistent_malloc=no
+ ;;
+ esac
;;
*cygwin* | *CYGWIN* | *solaris2.11* | freebsd13.* | openbsd7.* )
true # nothing do, exes on these systems are not PIE

View File

@ -2,6 +2,7 @@
# TODO: links -lsigsegv but loses the reference for some reason
, withSigsegv ? (false && stdenv.hostPlatform.system != "x86_64-cygwin"), libsigsegv
, interactive ? false, readline
, autoreconfHook # no-pma fix
/* Test suite broke on:
stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1
@ -17,18 +18,26 @@ assert (doCheck && stdenv.isLinux) -> glibcLocales != null;
stdenv.mkDerivation rec {
pname = "gawk" + lib.optionalString interactive "-interactive";
version = "5.1.1";
version = "5.2.1";
src = fetchurl {
url = "mirror://gnu/gawk/gawk-${version}.tar.xz";
sha256 = "18kybw47fb1sdagav7aj95r9pp09r5gm202y3ahvwjw9dqw2jxnq";
hash = "sha256-ZzVTuR+eGMxXku1RB1341RDJBA9VCm904Jya3SQ6fk8=";
};
patches = [
# Pull upstream fix for aarch64-darwin where pma does not work.
# Can be removed after next gawk release.
./darwin-no-pma.patch
];
# When we do build separate interactive version, it makes sense to always include man.
outputs = [ "out" "info" ]
++ lib.optional (!interactive) "man";
nativeBuildInputs = lib.optional (doCheck && stdenv.isLinux) glibcLocales;
nativeBuildInputs = lib.optional (doCheck && stdenv.isLinux) glibcLocales
# no-pma fix
++ [ autoreconfHook ];
buildInputs = lib.optional withSigsegv libsigsegv
++ lib.optional interactive readline