diff options
Diffstat (limited to 'main/make/make-3.82-savannah-bugs-30612-30723.patch')
-rw-r--r-- | main/make/make-3.82-savannah-bugs-30612-30723.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/main/make/make-3.82-savannah-bugs-30612-30723.patch b/main/make/make-3.82-savannah-bugs-30612-30723.patch new file mode 100644 index 0000000000..1b09825479 --- /dev/null +++ b/main/make/make-3.82-savannah-bugs-30612-30723.patch @@ -0,0 +1,75 @@ +diff -Naur make-3.82-orig/main.c make-3.82/main.c +--- make-3.82-orig/main.c 2010-07-19 14:10:53.000000000 +0700 ++++ make-3.82/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)) +diff -Naur make-3.82-orig/read.c make-3.82/read.c +--- make-3.82-orig/read.c 2010-07-13 08:20:42.000000000 +0700 ++++ make-3.82/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) |