From a160b30380f80ca4dfee379fef513c23eed096db Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 21 Jan 2016 00:47:32 +0000 Subject: make: update to 4.1.1 --- abs/core/make/PKGBUILD | 36 ++----- abs/core/make/bug30612.patch | 66 ------------ abs/core/make/bug30723.patch | 12 --- abs/core/make/make-3.82-bug30612.patch | 91 ++++++++++++++++ abs/core/make/make-3.82-bug30723.patch | 12 +++ .../make/make-3.82-dont-prune-intermediate.patch | 57 ++++++++++ abs/core/make/make-3.82-expensive_glob.patch | 116 +++++++++++++++++++++ abs/core/make/make.install | 4 +- 8 files changed, 286 insertions(+), 108 deletions(-) delete mode 100644 abs/core/make/bug30612.patch delete mode 100644 abs/core/make/bug30723.patch create mode 100644 abs/core/make/make-3.82-bug30612.patch create mode 100644 abs/core/make/make-3.82-bug30723.patch create mode 100644 abs/core/make/make-3.82-dont-prune-intermediate.patch create mode 100644 abs/core/make/make-3.82-expensive_glob.patch diff --git a/abs/core/make/PKGBUILD b/abs/core/make/PKGBUILD index 3f38c53..54ffd48 100644 --- a/abs/core/make/PKGBUILD +++ b/abs/core/make/PKGBUILD @@ -1,45 +1,25 @@ -# $Id: PKGBUILD 138005 2011-09-14 05:05:13Z allan $ +# $Id$ # Maintainer: Allan McRae # Contributor: judd pkgname=make -pkgver=3.82 -pkgrel=4 +pkgver=4.1 +pkgrel=1 pkgdesc="GNU make utility to maintain groups of programs" arch=('i686' 'x86_64') url="http://www.gnu.org/software/make" license=('GPL3') groups=('base-devel') -depends=('glibc' 'sh') +depends=('glibc' 'sh' 'guile') install=$pkgname.install -source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2 - bug30612.patch - bug30723.patch - make-3.82-sort-blank.patch - make-3.82-makeflags.patch) -md5sums=('1a11100f3c63fcf5753818e59d63088f' - 'c8f496b22191f9fb9420ab14c1a19a47' - '662e6450e19a5acdaa5c9fcb8ad78dea' - '7d01a99f389d8f08dec93ed479071ee4' - 'bc12ad4d0c6e6c0e72d9fb61054f446b') +source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig}) +md5sums=('57a7a224a822f94789a587ccbcedff69' + 'SKIP') +validpgpkeys=('3D2554F0A15338AB9AF1BB9D96B047156338B6D4') # Paul Smith build() { cd ${srcdir}/${pkgname}-${pkgver} - - # http://savannah.gnu.org/bugs/?30612 - patch -Np1 -i $srcdir/bug30612.patch - - # http://savannah.gnu.org/bugs/?30723 - patch -Np1 -i $srcdir/bug30723.patch - - # https://bugs.archlinux.org/task/22733 (fix from Fedora) - patch -Np1 -i $srcdir/make-3.82-sort-blank.patch - - # https://savannah.gnu.org/support/index.php?107487 - # https://savannah.gnu.org/bugs/?33873 - patch -Np0 -i $srcdir/make-3.82-makeflags.patch - ./configure --prefix=/usr make } diff --git a/abs/core/make/bug30612.patch b/abs/core/make/bug30612.patch deleted file mode 100644 index fb843bc..0000000 --- a/abs/core/make/bug30612.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -Naur make-3.82-orig/main.c make-3.82-fix30612//main.c ---- make-3.82-orig/main.c 2010-07-19 17:10:53.000000000 +1000 -+++ make-3.82-fix30612//main.c 2010-09-23 23:33:37.908855839 +1000 -@@ -1,3 +1,4 @@ -+ - /* Argument parsing and main program of GNU Make. - Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -@@ -1138,7 +1139,7 @@ - a macro and some compilers (MSVC) don't like conditionals in macros. */ - { - const char *features = "target-specific order-only second-expansion" -- " else-if shortest-stem undefine" -+ " else-if shortest-stem undefine oneshell" - #ifndef NO_ARCHIVES - " archives" - #endif -diff -Naur make-3.82-orig/read.c make-3.82-fix30612//read.c ---- make-3.82-orig/read.c 2010-07-13 11:20:42.000000000 +1000 -+++ make-3.82-fix30612//read.c 2010-09-23 23:30:58.018855839 +1000 -@@ -3028,7 +3028,7 @@ - { - /* This looks like the first element in an open archive group. - A valid group MUST have ')' as the last character. */ -- const char *e = p + nlen; -+ const char *e = p; - do - { - e = next_token (e); -@@ -3084,19 +3084,19 @@ - Go to the next item in the string. */ - if (flags & PARSEFS_NOGLOB) - { -- NEWELT (concat (2, prefix, tp)); -+ NEWELT (concat (2, prefix, tmpbuf)); - continue; - } - - /* If we get here we know we're doing glob expansion. - TP is a string in tmpbuf. NLEN is no longer used. - We may need to do more work: after this NAME will be set. */ -- name = tp; -+ name = tmpbuf; - - /* Expand tilde if applicable. */ -- if (tp[0] == '~') -+ if (tmpbuf[0] == '~') - { -- tildep = tilde_expand (tp); -+ tildep = tilde_expand (tmpbuf); - if (tildep != 0) - name = tildep; - } -@@ -3152,7 +3152,11 @@ - else - { - /* We got a chain of items. Attach them. */ -- (*newp)->next = found; -+ if (*newp) -+ (*newp)->next = found; -+ else -+ *newp = found; -+ - - /* Find and set the new end. Massage names if necessary. */ - while (1) diff --git a/abs/core/make/bug30723.patch b/abs/core/make/bug30723.patch deleted file mode 100644 index 84e7ebe..0000000 --- a/abs/core/make/bug30723.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur make-3.82-orig/main.c make-3.82-fix30723//main.c ---- make-3.82-orig/main.c 2010-07-19 17:10:53.000000000 +1000 -+++ make-3.82-fix30723//main.c 2010-09-23 23:34:10.932188592 +1000 -@@ -2093,7 +2093,7 @@ - const char *pv = define_makeflags (1, 1); - char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1); - sprintf (p, "MAKEFLAGS=%s", pv); -- putenv (p); -+ putenv (allocated_variable_expand (p)); - } - - if (ISDB (DB_BASIC)) diff --git a/abs/core/make/make-3.82-bug30612.patch b/abs/core/make/make-3.82-bug30612.patch new file mode 100644 index 0000000..9867a15 --- /dev/null +++ b/abs/core/make/make-3.82-bug30612.patch @@ -0,0 +1,91 @@ +--- make-3.82-orig/main.c 2010-07-19 17:10:53.000000000 +1000 ++++ make-3.82-fix30612//main.c 2010-09-23 23:33:37.908855839 +1000 +@@ -1,3 +1,4 @@ ++ + /* Argument parsing and main program of GNU Make. + Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +@@ -1138,7 +1139,7 @@ + a macro and some compilers (MSVC) don't like conditionals in macros. */ + { + const char *features = "target-specific order-only second-expansion" +- " else-if shortest-stem undefine" ++ " else-if shortest-stem undefine oneshell" + #ifndef NO_ARCHIVES + " archives" + #endif +diff -Naur make-3.82-orig/read.c make-3.82-fix30612//read.c +--- make-3.82-orig/read.c 2010-07-13 11:20:42.000000000 +1000 ++++ make-3.82-fix30612//read.c 2010-09-23 23:30:58.018855839 +1000 +@@ -3028,7 +3028,7 @@ + { + /* This looks like the first element in an open archive group. + A valid group MUST have ')' as the last character. */ +- const char *e = p + nlen; ++ const char *e = p; + do + { + e = next_token (e); +@@ -3084,19 +3084,19 @@ + Go to the next item in the string. */ + if (flags & PARSEFS_NOGLOB) + { +- NEWELT (concat (2, prefix, tp)); ++ NEWELT (concat (2, prefix, tmpbuf)); + continue; + } + + /* If we get here we know we're doing glob expansion. + TP is a string in tmpbuf. NLEN is no longer used. + We may need to do more work: after this NAME will be set. */ +- name = tp; ++ name = tmpbuf; + + /* Expand tilde if applicable. */ +- if (tp[0] == '~') ++ if (tmpbuf[0] == '~') + { +- tildep = tilde_expand (tp); ++ tildep = tilde_expand (tmpbuf); + if (tildep != 0) + name = tildep; + } +@@ -3152,7 +3152,11 @@ + else + { + /* We got a chain of items. Attach them. */ +- (*newp)->next = found; ++ if (*newp) ++ (*newp)->next = found; ++ else ++ *newp = found; ++ + + /* Find and set the new end. Massage names if necessary. */ + while (1) +diff --git make-3.82-orig/read.c make-3.82-fix30612/read.c +index c87d4a7..b012094 100644 +--- make-3.82-orig/read.c ++++ make-3.82-fix30612/read.c +@@ -3044,16 +3044,16 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar, + nlen -= (n + 1) - tp; + tp = n + 1; + +- /* If we have just "lib(", part of something like +- "lib( a b)", go to the next item. */ +- if (! nlen) +- continue; +- + /* We can stop looking now. */ + break; + } + } + while (*e != '\0'); ++ ++ /* If we have just "lib(", part of something like "lib( a b)", ++ go to the next item. */ ++ if (! nlen) ++ continue; + } + } + diff --git a/abs/core/make/make-3.82-bug30723.patch b/abs/core/make/make-3.82-bug30723.patch new file mode 100644 index 0000000..84e7ebe --- /dev/null +++ b/abs/core/make/make-3.82-bug30723.patch @@ -0,0 +1,12 @@ +diff -Naur make-3.82-orig/main.c make-3.82-fix30723//main.c +--- make-3.82-orig/main.c 2010-07-19 17:10:53.000000000 +1000 ++++ make-3.82-fix30723//main.c 2010-09-23 23:34:10.932188592 +1000 +@@ -2093,7 +2093,7 @@ + const char *pv = define_makeflags (1, 1); + char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1); + sprintf (p, "MAKEFLAGS=%s", pv); +- putenv (p); ++ putenv (allocated_variable_expand (p)); + } + + if (ISDB (DB_BASIC)) diff --git a/abs/core/make/make-3.82-dont-prune-intermediate.patch b/abs/core/make/make-3.82-dont-prune-intermediate.patch new file mode 100644 index 0000000..f4f47dd --- /dev/null +++ b/abs/core/make/make-3.82-dont-prune-intermediate.patch @@ -0,0 +1,57 @@ +2012-09-09 Paul Smith + + * remake.c (update_file_1): Force intermediate files to be + considered, not pruned, if their non-intermediate parent needs to + be remade. Fixes Savannah bug #30653. + +Index: remake.c +=================================================================== +RCS file: /sources/make/make/remake.c,v +retrieving revision 1.153 +retrieving revision 1.154 +diff -u -r1.153 -r1.154 +--- remake.c 5 Mar 2012 14:10:45 -0000 1.153 ++++ remake.c 10 Sep 2012 02:36:05 -0000 1.154 +@@ -612,6 +612,10 @@ + d->file->dontcare = file->dontcare; + } + ++ /* We may have already considered this file, when we didn't know ++ we'd need to update it. Force update_file() to consider it and ++ not prune it. */ ++ d->file->considered = !considered; + + dep_status |= update_file (d->file, depth); + +Index: tests/scripts/features/parallelism +=================================================================== +RCS file: /sources/make/make/tests/scripts/features/parallelism,v +retrieving revision 1.19 +retrieving revision 1.20 +diff -u -r1.19 -r1.20 +--- tests/scripts/features/parallelism 4 Mar 2012 00:24:32 -0000 1.19 ++++ tests/scripts/features/parallelism 10 Sep 2012 02:36:05 -0000 1.20 +@@ -214,6 +214,23 @@ + rmfiles(qw(foo.y foo.y.in main.bar)); + } + ++# Ensure intermediate/secondary files are not pruned incorrectly. ++# See Savannah bug #30653 ++ ++utouch(-15, 'file2'); ++utouch(-10, 'file4'); ++utouch(-5, 'file1'); ++ ++run_make_test(q! ++.INTERMEDIATE: file3 ++file4: file3 ; @mv -f $< $@ ++file3: file2 ; touch $@ ++file2: file1 ; @touch $@ ++!, ++ '--no-print-directory -j2', "touch file3"); ++ ++#rmfiles('file1', 'file2', 'file3', 'file4'); ++ + if ($all_tests) { + # Jobserver FD handling is messed up in some way. + # Savannah bug #28189 diff --git a/abs/core/make/make-3.82-expensive_glob.patch b/abs/core/make/make-3.82-expensive_glob.patch new file mode 100644 index 0000000..8663f50 --- /dev/null +++ b/abs/core/make/make-3.82-expensive_glob.patch @@ -0,0 +1,116 @@ +Index: read.c +=================================================================== +RCS file: /sources/make/make/read.c,v +retrieving revision 1.198 +retrieving revision 1.200 +diff -u -r1.198 -r1.200 +--- read.c 29 Apr 2011 15:27:39 -0000 1.198 ++++ read.c 7 May 2011 14:36:12 -0000 1.200 +@@ -2901,6 +2901,7 @@ + const char *name; + const char **nlist = 0; + char *tildep = 0; ++ int globme = 1; + #ifndef NO_ARCHIVES + char *arname = 0; + char *memname = 0; +@@ -3109,32 +3110,40 @@ + } + #endif /* !NO_ARCHIVES */ + +- switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl)) +- { +- case GLOB_NOSPACE: +- fatal (NILF, _("virtual memory exhausted")); +- +- case 0: +- /* Success. */ +- i = gl.gl_pathc; +- nlist = (const char **)gl.gl_pathv; +- break; +- +- case GLOB_NOMATCH: +- /* If we want only existing items, skip this one. */ +- if (flags & PARSEFS_EXISTS) +- { +- i = 0; +- break; +- } +- /* FALLTHROUGH */ +- +- default: +- /* By default keep this name. */ ++ /* glob() is expensive: don't call it unless we need to. */ ++ if (!(flags & PARSEFS_EXISTS) && strpbrk (name, "?*[") == NULL) ++ { ++ globme = 0; + i = 1; + nlist = &name; +- break; +- } ++ } ++ else ++ switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl)) ++ { ++ case GLOB_NOSPACE: ++ fatal (NILF, _("virtual memory exhausted")); ++ ++ case 0: ++ /* Success. */ ++ i = gl.gl_pathc; ++ nlist = (const char **)gl.gl_pathv; ++ break; ++ ++ case GLOB_NOMATCH: ++ /* If we want only existing items, skip this one. */ ++ if (flags & PARSEFS_EXISTS) ++ { ++ i = 0; ++ break; ++ } ++ /* FALLTHROUGH */ ++ ++ default: ++ /* By default keep this name. */ ++ i = 1; ++ nlist = &name; ++ break; ++ } + + /* For each matched element, add it to the list. */ + while (i-- > 0) +@@ -3174,7 +3183,8 @@ + #endif /* !NO_ARCHIVES */ + NEWELT (concat (2, prefix, nlist[i])); + +- globfree (&gl); ++ if (globme) ++ globfree (&gl); + + #ifndef NO_ARCHIVES + if (arname) +Index: tests/scripts/functions/wildcard +=================================================================== +RCS file: /sources/make/make/tests/scripts/functions/wildcard,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -r1.6 -r1.7 +--- tests/scripts/functions/wildcard 13 Jun 2009 21:21:49 -0000 1.6 ++++ tests/scripts/functions/wildcard 7 May 2011 14:36:11 -0000 1.7 +@@ -88,4 +88,16 @@ + !, + '', "\n"); + ++# TEST #5: wildcard used to verify file existence ++ ++touch('xxx.yyy'); ++ ++run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!, ++ '', "file=xxx.yyy\n"); ++ ++unlink('xxx.yyy'); ++ ++run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!, ++ '', "file=\n"); ++ + 1; diff --git a/abs/core/make/make.install b/abs/core/make/make.install index 6cf8b0d..8426085 100644 --- a/abs/core/make/make.install +++ b/abs/core/make/make.install @@ -2,7 +2,7 @@ infodir=usr/share/info filelist=(make.info make.info-1 make.info-2) post_install() { - [ -x usr/bin/install-info ] || return 0 + [[ -x usr/bin/install-info ]] || return 0 for file in ${filelist[@]}; do install-info $infodir/$file.gz $infodir/dir 2> /dev/null done @@ -13,7 +13,7 @@ post_upgrade() { } pre_remove() { - [ -x usr/bin/install-info ] || return 0 + [[ -x usr/bin/install-info ]] || return 0 for file in ${filelist[@]}; do install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null done -- cgit v0.12