URL:
<http://savannah.gnu.org/bugs/?33873>
Summary: MAKEFLAGS=-jN gets lost on reexec
Project: make
Submitted by: pmachata
Submitted on: Срд 27 Июл 2011 22:48:56
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: CVS
Operating System: None
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
With CVS and attached Makefile, I'm getting no parallelism:
$ touch foo.c; MAKEFLAGS="-j4" ~/src/make.pm/make
touch Makefile
thing1 start r
thing1 end
thing2 start r
thing2 end
I tracked the problem down to the commit from 2009-06-09 17:36. The cause
seems to be that when make is about to re-exec, it calls define_makeflags.
But at that time, the value of job_slots is 1 due to call to clean_jobserver
around make.c:2046, and thus -j from MAKEFLAGS is tossed.
But even if it weren't, there's a special check in define_makeflags that
disregards this value. I thought that that's to prevent launching multiple
sub-makes, but that isn't what happens when I comment the code out. Perhaps
it's only relevant when MAKE_JOBSERVER is not defined? In my patch, I have it
ifdefed out in a straightforward manner, but most probably that's not the
right thing to do (although no test cases break...).
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Срд 27 Июл 2011 22:48:56 Name: makeflags.patch Size: 1kB By:
pmachata
<http://savannah.gnu.org/bugs/download.php?file_id=23706>
-------------------------------------------------------
Date: Срд 27 Июл 2011 22:48:56 Name: Makefile Size: 132B By:
pmachata
<http://savannah.gnu.org/bugs/download.php?file_id=23707>
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?33873>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make