summaryrefslogtreecommitdiffstats
path: root/package/gawk
diff options
context:
space:
mode:
Diffstat (limited to 'package/gawk')
-rw-r--r--package/gawk/gawk-3.1.5-core.patch31
-rw-r--r--package/gawk/gawk-3.1.5-gcc4.patch23
-rw-r--r--package/gawk/gawk.mk6
3 files changed, 58 insertions, 2 deletions
diff --git a/package/gawk/gawk-3.1.5-core.patch b/package/gawk/gawk-3.1.5-core.patch
new file mode 100644
index 000000000..17cd188c4
--- /dev/null
+++ b/package/gawk/gawk-3.1.5-core.patch
@@ -0,0 +1,31 @@
+fix an ugly core on a simple script
+
+http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00040.html
+http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00047.html
+
+--- gawk/io.c
++++ gawk/io.c
+@@ -2480,9 +2480,12 @@
+ {
+ struct stat sbuf;
+ struct open_hook *oh;
++ int iop_malloced = FALSE;
+
+- if (iop == NULL)
++ if (iop == NULL) {
+ emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc");
++ iop_malloced = TRUE;
++ }
+ memset(iop, '\0', sizeof(IOBUF));
+ iop->flag = 0;
+ iop->fd = fd;
+@@ -2495,7 +2498,8 @@
+ }
+
+ if (iop->fd == INVALID_HANDLE) {
+- free(iop);
++ if (iop_malloced)
++ free(iop);
+ return NULL;
+ }
+ if (isatty(iop->fd))
diff --git a/package/gawk/gawk-3.1.5-gcc4.patch b/package/gawk/gawk-3.1.5-gcc4.patch
new file mode 100644
index 000000000..3ebadcbe6
--- /dev/null
+++ b/package/gawk/gawk-3.1.5-gcc4.patch
@@ -0,0 +1,23 @@
+Sat Sep 3 16:03:25 EDT 2005 Kito Danya Dietrich <kito@gentoo.org>
+
+ * hard-locale.h (hard_locale): Declare xmalloc in global scope rather than
+ function scope which gcc-4.x rejects.
+
+--- gawk-3.1.5/hard-locale.h
++++ gawk-3.1.5/hard-locale.h
+@@ -21,6 +21,7 @@
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
++static ptr_t xmalloc PARAMS ((size_t n));
+
+ /* Return nonzero if the current CATEGORY locale is hard, i.e. if you
+ can't get away with assuming traditional C or POSIX behavior. */
+@@ -40,7 +41,6 @@
+ if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
+ hard = 0;
+ # else
+- static ptr_t xmalloc PARAMS ((size_t n));
+
+ char *locale = xmalloc (strlen (p) + 1);
+ strcpy (locale, p);
diff --git a/package/gawk/gawk.mk b/package/gawk/gawk.mk
index 888482953..9975c38a7 100644
--- a/package/gawk/gawk.mk
+++ b/package/gawk/gawk.mk
@@ -3,10 +3,11 @@
# gawk
#
#############################################################
-GAWK_SOURCE:=gawk-3.1.2.tar.gz
+GAWK_VER:=3.1.5
+GAWK_SOURCE:=gawk-$(GAWK_VER).tar.gz
GAWK_SITE:=ftp://ftp.gnu.org/gnu/gawk
GAWK_CAT:=zcat
-GAWK_DIR:=$(BUILD_DIR)/gawk-3.1.2
+GAWK_DIR:=$(BUILD_DIR)/gawk-$(GAWK_VER)
GAWK_BINARY:=gawk
GAWK_TARGET_BINARY:=usr/bin/gawk
@@ -17,6 +18,7 @@ gawk-source: $(DL_DIR)/$(GAWK_SOURCE)
$(GAWK_DIR)/.unpacked: $(DL_DIR)/$(GAWK_SOURCE)
$(GAWK_CAT) $(DL_DIR)/$(GAWK_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(GAWK_DIR) package/gawk gawk\*.patch
touch $(GAWK_DIR)/.unpacked
$(GAWK_DIR)/.configured: $(GAWK_DIR)/.unpacked