[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #44742] Double-dep with double-colon rule not built
From: |
anonymous |
Subject: |
[bug #44742] Double-dep with double-colon rule not built |
Date: |
Wed, 05 Aug 2015 09:46:34 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0 |
Follow-up Comment #4, bug #44742 (project make):
Double-colon may not "play" nicely with parallel-execution.
The following example shows one situation, where parallel execution may skip
over a dependency (i.e. NOT building it at all), because it was linked in via
a double-colon.
As shown later, this occurs only for parallel execution, so you should choose
EITHER one of them, parallel-execution OR double-colon.
Using BOTH (parallel-execution AND double-colon), may ruin your build.
root: all;
echo root
# 'all' is a double-colon,
# This is the FIRST target in the double-colon linked-list
all::
echo all_first
# 'all' is a double-colon,
# This is the SECOND target in the double-colon linked-list
all:: 3;
echo all_second
# implicit-rule to match targets: '1', '2', and '3'
%:
sleep 0.$*
Running
make -r 1 2 root
We get:
sleep 0.1
sleep 0.2
echo all_first
all_first
sleep 0.3
echo all_second
all_second
echo root
root
Where, running
make -r -j2 1 2 root
We get:
sleep 0.1
sleep 0.2
echo all_first
all_first
sleep 0.3
echo root
root
Or, to put simply, running
make -rs 1 2 root
We get:
all_first
all_second
root
Where, running
make -rs -j2 1 2 root
We get:
all_first
root
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?44742>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/