[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #33873] MAKEFLAGS=-jN gets lost on reexec

From: Petr Machata
Subject: [bug #33873] MAKEFLAGS=-jN gets lost on reexec
Date: Wed, 27 Jul 2011 22:48:57 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; ru; rv: Gecko/20110428 Fedora/3.6.17-1.fc14 Firefox/3.6.17


                 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



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:

Date: Срд 27 Июл 2011 22:48:56  Name: Makefile  Size: 132B   By:



Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]