diff options
Diffstat (limited to 'package/gawk')
-rw-r--r-- | package/gawk/gawk-3.1.5-core.patch | 31 | ||||
-rw-r--r-- | package/gawk/gawk-3.1.5-gcc4.patch | 23 | ||||
-rw-r--r-- | package/gawk/gawk.mk | 6 |
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 |