diff options
author | Paul Smith <psmith@gnu.org> | 2013-09-15 13:30:21 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2013-09-15 13:30:21 -0400 |
commit | 0a81d50d66565fd3e930fadaadc4a5cb9381d840 (patch) | |
tree | f0e6bc5b2586260bb3f20fcb236b150d7756a39f | |
parent | 3aa2aa7e82ac4c74df298f381c8d1d280cff852e (diff) | |
download | gunmake-0a81d50d66565fd3e930fadaadc4a5cb9381d840.tar.gz |
[SV 39203] Don't set MAKEFLAGS when restarting.
We are restarting with the original command line flags, so if we set
MAKEFLAGS as well that will cause double flags.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | main.c | 18 | ||||
-rw-r--r-- | tests/ChangeLog | 5 | ||||
-rw-r--r-- | tests/scripts/options/eval | 10 |
4 files changed, 29 insertions, 12 deletions
@@ -1,3 +1,11 @@ +2013-09-15 Paul Smith <psmith@gnu.org> + + Fix Savannah bug #39203. + + * main.c (main): Don't set MAKEFLAGS in the environment when we + restart. We have the original command line flags so keep the + original MAKEFLAGS settings as well. + 2013-09-14 Paul Smith <psmith@gnu.org> Fix Savannah bug #35248. @@ -1887,12 +1887,14 @@ main (int argc, char **argv, char **envp) jobserver. If !job_slots and we don't have a pipe, we can start infinite jobs. If we see both a pipe and job_slots >0 that means the user set -j explicitly. This is broken; in this case obey the user - (ignore the jobserver pipe for this make) but print a message. */ + (ignore the jobserver pipe for this make) but print a message. + If we've restarted, we already printed this the first time. */ if (job_slots > 0) - error (NILF, - _("warning: -jN forced in submake: disabling jobserver mode.")); - + { + if (! restarts) + error (NILF, _("warning: -jN forced in submake: disabling jobserver mode.")); + } #ifndef WINDOWS32 /* Create a duplicate pipe, that will be closed in the SIGCHLD handler. If this fails with EBADF, the parent has closed the pipe @@ -2279,14 +2281,6 @@ main (int argc, char **argv, char **envp) if (master_job_slots) job_slots = master_job_slots; - /* Reset makeflags in case they were changed. */ - { - const char *pv = define_makeflags (1, 0); - char *p = alloca (CSTRLEN ("MAKEFLAGS=") + strlen (pv) + 1); - sprintf (p, "MAKEFLAGS=%s", pv); - putenv (allocated_variable_expand (p)); - } - if (ISDB (DB_BASIC)) { char **p; diff --git a/tests/ChangeLog b/tests/ChangeLog index 5eff7ec..c629a0e 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2013-09-15 Paul Smith <psmith@gnu.org> + + * scripts/options/eval: Verify --eval during restart. + Test for Savannah bug #39203. + 2013-09-14 Paul Smith <psmith@gnu.org> * scripts/features/output-sync: Verify -Orecurse properly. diff --git a/tests/scripts/options/eval b/tests/scripts/options/eval index 06a035c..0f82409 100644 --- a/tests/scripts/options/eval +++ b/tests/scripts/options/eval @@ -16,4 +16,14 @@ recurse: ; @$(MAKE) -f #MAKEFILE# && echo recurse!, run_make_test(undef, '--no-print-directory --eval=\$\(info\ eval\) recurse', "eval\neval\nall\nrecurse"); +# Make sure that --eval is handled correctly during restarting +run_make_test(q! +all: ; @echo $@ +-include gen.mk +gen.mk: ; @echo > $@ +!, + '--eval=\$\(info\ eval\)', "eval\neval\nall"); + +unlink('gen.mk'); + 1; |