bugmake - Bugs: bug #30823, double-colon rules not always...

 
 

bug #30823: double-colon rules not always executed in parallel make

Submitted by:  None
Submitted on:  Thu 19 Aug 2010 07:24:54 PM UTC  
 
Severity: 3 - NormalItem Group: Bug
Status: DuplicatePrivacy: Public
Assigned to: NoneOpen/Closed: Closed
Component Version: 3.81Operating System: None
Fixed Release: NoneTriage Status: Verified

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 22 Sep 2013 09:35:35 PM UTC, comment #2:

I was able to reproduce this with GNU make 3.82 within 100 iterations or so; however I ran the makefile 5000 times with the next release of GNU make and it never failed. I believe this has been fixed.

Paul D. Smith <psmith>
Project Administrator
Thu 19 Aug 2010 07:38:21 PM UTC, comment #1:

Yes, I see this too. It definitely looks like a bug.

Paul D. Smith <psmith>
Project Administrator
Thu 19 Aug 2010 07:24:54 PM UTC, original submission:

I'm not sure if this has been already reported but at least I can't find a similar report.

I have a modular build system using make which uses some double-colon rules which are triggered indirectly. That means these rules are not a direct prerequisite of the make goal provided on command line.

With -j1 the rules are executed as expected but with multiple jobs sometimes not all of these rules are made. On my dual core machine I can reproduce this very easily with the attached example Makefile. On may quad core box it happens rather seldom with this example but with the rather complex build system it happens more often.

A workaround is to add the double-colon rules as a direct prerequisite of the user specified make goal. But wait - this is not the full truth - it only works when added to targets like all or install. Calling "make -j2 b" in the concrete example it fails as well.

The attached Makefile example can be used to reproduce the issue.
When called with -j1 the output is:

a1
q
a2
a3
b

which is expected. When called with -j2 the output is often only

a1
q
b

I think while the execution order of the double-colon rules might change they should at least execute before the target counts as being made.

I checked make-3.82 as well but it behaves the same way. My system is a Fedora 13 64bit.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #21261:  Makefile added by None (100B - application/octet-stream - Makefile example to show the issue)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by psmith (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun 22 Sep 2013 09:35:35 PM UTCpsmithStatusNone=>Duplicate
      Open/ClosedOpen=>Closed
    Thu 19 Aug 2010 07:38:21 PM UTCpsmithTriage StatusNone=>Verified
    Thu 19 Aug 2010 07:24:54 PM UTCNoneAttached File-=>Added Makefile, #21261

    Back to the top


    Powered by Savane 3.1-cleanup