summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
authorMichal Soltys <soltys@ziu.info>2011-03-20 01:12:28 +0100
committerJuergen Daubert <jue@jue.li>2011-04-01 08:59:03 +0200
commit140f45145eb701c409323cbbefe1c94c9ae081c6 (patch)
tree691fe58ea51c62f140729c0f4938d189ae6b3694 /make
parentc98e2b9cc1cc0bd50d3bc2b7418b2db75910756a (diff)
downloadcore-140f45145eb701c409323cbbefe1c94c9ae081c6.tar.gz
core-140f45145eb701c409323cbbefe1c94c9ae081c6.tar.xz
make: fix bugs 30612, 30723, 31743
A few diffs from official make repository. In particular - 30612 made compiling dev86 problematic. Signed-off-by: Michal Soltys <soltys@ziu.info> Signed-off-by: Juergen Daubert <jue@jue.li>
Diffstat (limited to 'make')
-rw-r--r--make/.md5sum1
-rw-r--r--make/Pkgfile6
-rw-r--r--make/savannah-bugs.patch89
3 files changed, 94 insertions, 2 deletions
diff --git a/make/.md5sum b/make/.md5sum
index d35b4118..49035322 100644
--- a/make/.md5sum
+++ b/make/.md5sum
@@ -1 +1,2 @@
1a11100f3c63fcf5753818e59d63088f make-3.82.tar.bz2
+af491e6f1134e32550da84d3ca8132d3 savannah-bugs.patch
diff --git a/make/Pkgfile b/make/Pkgfile
index 58f48267..0f424444 100644
--- a/make/Pkgfile
+++ b/make/Pkgfile
@@ -4,11 +4,13 @@
name=make
version=3.82
-release=1
-source=(ftp://ftp.gnu.org/gnu/$name/$name-$version.tar.bz2)
+release=2
+source=(ftp://ftp.gnu.org/gnu/$name/$name-$version.tar.bz2
+ savannah-bugs.patch)
build() {
cd $name-$version
+ patch -p0 -i ../savannah-bugs.patch
./configure --prefix=/usr --mandir=/usr/man --disable-nls
make
make DESTDIR=$PKG install
diff --git a/make/savannah-bugs.patch b/make/savannah-bugs.patch
new file mode 100644
index 00000000..f2bb9c09
--- /dev/null
+++ b/make/savannah-bugs.patch
@@ -0,0 +1,89 @@
+https://savannah.gnu.org/bugs/?30612
+https://savannah.gnu.org/bugs/?30723
+https://savannah.gnu.org/bugs/?31743 (no longer visible)
+
+--- main.c 2010-07-19 14:10:53.000000000 +0700
++++ main.c 2011-01-12 21:31:30.114891591 +0700
+@@ -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
+@@ -2093,7 +2094,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))
+--- read.c 2010-07-13 08:20:42.000000000 +0700
++++ read.c 2011-01-12 21:31:23.497486028 +0700
+@@ -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)
+--- read.c 2010/11/06 21:56:24 1.195
++++ read.c 2010/11/30 14:48:53 1.196
+@@ -1811,7 +1811,8 @@
+ int len = strlen(v->name);
+
+ gv = lookup_variable (v->name, len);
+- if (gv && (gv->origin == o_env_override || gv->origin == o_command))
++ if (gv && v != gv
++ && (gv->origin == o_env_override || gv->origin == o_command))
+ {
+ if (v->value != 0)
+ free (v->value);

Generated by cgit