diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-05-25 09:11:51 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-05-25 09:11:51 +0000 |
commit | e38bf5459263396e61752a2192451c2ffa1dfbab (patch) | |
tree | c7cb1e1cb6064f80d50625d0d95cfce3f6004af9 | |
parent | c0be42fd6826a0d75fcfb7d341e3eb07c06c8a37 (diff) |
GNU Awk: Fix Cygwin builds.
svn path=/nixpkgs/trunk/; revision=34240
-rw-r--r-- | pkgs/tools/text/gawk/cygwin-identifiers.patch | 75 | ||||
-rw-r--r-- | pkgs/tools/text/gawk/default.nix | 8 |
2 files changed, 82 insertions, 1 deletions
diff --git a/pkgs/tools/text/gawk/cygwin-identifiers.patch b/pkgs/tools/text/gawk/cygwin-identifiers.patch new file mode 100644 index 000000000000..baff9b55481d --- /dev/null +++ b/pkgs/tools/text/gawk/cygwin-identifiers.patch @@ -0,0 +1,75 @@ +This patch fixes compilation on Windows, where some of the identifiers +would clash. + +commit 5a0b7f9953f24dc034eca4052214da49fbad8bd0 +Author: Arnold D. Robbins <arnold@skeeve.com> +Date: Fri Jul 29 13:25:57 2011 +0300 + + Fix DJGPP problem with libsigsegv. + +diff --git a/builtin.c b/builtin.c +index 4d87592..941f5ad 100644 +--- a/builtin.c ++++ b/builtin.c +@@ -605,7 +605,7 @@ format_tree( + NODE *arg; + long fw, prec, argnum; + int used_dollar; +- int lj, alt, big, bigbig, small, have_prec, need_format; ++ int lj, alt, big_flag, bigbig_flag, small_flag, have_prec, need_format; + long *cur = NULL; + uintmax_t uval; + int sgn; +@@ -725,7 +725,7 @@ format_tree( + signchar = FALSE; + zero_flag = FALSE; + quote_flag = FALSE; +- lj = alt = big = bigbig = small = FALSE; ++ lj = alt = big_flag = bigbig_flag = small_flag = FALSE; + fill = sp; + cp = cend; + chbuf = lchbuf; +@@ -907,7 +907,7 @@ check_pos: + goto retry; + #endif + case 'l': +- if (big) ++ if (big_flag) + break; + else { + static short warned = FALSE; +@@ -921,10 +921,10 @@ check_pos: + goto out; + } + } +- big = TRUE; ++ big_flag = TRUE; + goto retry; + case 'L': +- if (bigbig) ++ if (bigbig_flag) + break; + else { + static short warned = FALSE; +@@ -938,10 +938,10 @@ check_pos: + goto out; + } + } +- bigbig = TRUE; ++ bigbig_flag = TRUE; + goto retry; + case 'h': +- if (small) ++ if (small_flag) + break; + else { + static short warned = FALSE; +@@ -955,7 +955,7 @@ check_pos: + goto out; + } + } +- small = TRUE; ++ small_flag = TRUE; + goto retry; + case 'c': + need_format = FALSE; diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix index f760e832ccc2..bb6e4e20d244 100644 --- a/pkgs/tools/text/gawk/default.nix +++ b/pkgs/tools/text/gawk/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, libsigsegv }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (rec { name = "gawk-4.0.0"; src = fetchurl { @@ -37,3 +37,9 @@ stdenv.mkDerivation rec { maintainers = [ stdenv.lib.maintainers.ludo ]; }; } + +// + +stdenv.lib.optionalAttrs stdenv.isCygwin { + patches = [ ./cygwin-identifiers.patch ]; +}) |