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 Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make