bug-make
[Top][All Lists]
Advanced

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

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


From: anonymous
Subject: [bug #30823] double-colon rules not always executed in parallel make
Date: Thu, 19 Aug 2010 19:24:55 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100723 Fedora/3.6.7-1.fc13 Firefox/3.6.7

URL:
  <http://savannah.gnu.org/bugs/?30823>

                 Summary: double-colon rules not always executed in parallel
make
                 Project: make
            Submitted by: None
            Submitted on: Do 19 Aug 2010 19:24:54 UTC
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 3.81
        Operating System: None
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

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.



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Do 19 Aug 2010 19:24:54 UTC  Name: Makefile  Size: 100B   By: None
Makefile example to show the issue
<http://savannah.gnu.org/bugs/download.php?file_id=21261>

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?30823>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.gnu.org/




reply via email to

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