diff options
| author | Paul Smith <psmith@gnu.org> | 2011-09-18 23:39:26 +0000 | 
|---|---|---|
| committer | Paul Smith <psmith@gnu.org> | 2011-09-18 23:39:26 +0000 | 
| commit | d472624f3300fa454e8271fb7647971877de8d89 (patch) | |
| tree | f7468e7568b6294f09fd7b187e0cb3fd602fac91 | |
| parent | 0369a938254747fa2ab9ea09fe48b9c84ae7e19e (diff) | |
| download | gunmake-d472624f3300fa454e8271fb7647971877de8d89.tar.gz | |
When we re-exec the master makefile in a jobserver environment, ensure
that MAKEFLAGS is set properly so the re-exec'd make runs in parallel.
See Savannah bug #33873.
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | main.c | 8 | ||||
| -rw-r--r-- | tests/ChangeLog | 3 | ||||
| -rw-r--r-- | tests/scripts/features/parallelism | 17 | 
4 files changed, 29 insertions, 3 deletions
| @@ -1,5 +1,9 @@  2011-09-18  Paul Smith  <psmith@gnu.org> +	* main.c (main): If we're re-exec'ing and we're the master make, +	then restore the job_slots value so it goes back into MAKEFLAGS +	properly.  See Savannah bug #33873. +  	* remake.c (library_search): STD_DIRS is computed when other  	static vars like buflen etc. are computed, so it must be static  	as well.  See Savannah bug #32511. @@ -2089,6 +2089,11 @@ main (int argc, char **argv, char **envp)            ++restarts; +          /* If we're re-exec'ing the first make, put back the number of +             job slots so define_makefiles() will get it right.  */ +          if (master_job_slots) +            job_slots = master_job_slots; +            /* Reset makeflags in case they were changed.  */            {              const char *pv = define_makeflags (1, 1); @@ -2825,9 +2830,6 @@ define_makeflags (int all, int makefile)  		       && (*(unsigned int *) cs->value_ptr ==  			   *(unsigned int *) cs->noarg_value))  		ADD_FLAG ("", 0); /* Optional value omitted; see below.  */ -	      else if (cs->c == 'j') -		/* Special case for `-j'.  */ -		ADD_FLAG ("1", 1);  	      else  		{  		  char *buf = alloca (30); diff --git a/tests/ChangeLog b/tests/ChangeLog index 4629b18..e2048ff 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,5 +1,8 @@  2011-09-18  Paul Smith  <psmith@gnu.org> +	* scripts/features/parallelism: On re-exec make sure we preserve +	the value of MAKEFLAGS when necessary.  See Savannah bug #33873. +  	* scripts/features/vpath3: Verify handling of -lfoo libraries  	found via vpath vs. the standard directory search.  	See Savannah bug #32511. diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism index 22e4aeb..909c979 100644 --- a/tests/scripts/features/parallelism +++ b/tests/scripts/features/parallelism @@ -167,6 +167,23 @@ inc.mk:  rmfiles('inc.mk'); +# TEST #11: Make sure -jN from MAKEFLAGS is processed even when we re-exec +# See Savannah bug #33873 + +$extraENV{MAKEFLAGS} = '-j4'; + +run_make_test(q! +things = thing1 thing2 +all: $(things) +$(things):; @echo '$@ start'; sleep 1; echo '$@ end' +-include inc.mk +inc.mk: ; @touch $@ +!, +              '', "thing1 start\nthing2 start\nthing1 end\nthing2 end\n"); + +delete $extraENV{MAKEFLAGS}; +rmfiles('inc.mk'); +  if ($all_tests) {      # Implicit files aren't properly recreated during parallel builds      # Savannah bug #26864 | 
