DescriptionFix gyp->make translation of rules with several outputs.
This is effectively a follow-up to crrev.com/1066963002. The problem
we have now run into is that, on some occasions, make would correctly
build the 'lower' dependency, but would still not update the 'higher'
dependency. The reason is that make could not 'see' that the intermediate
target has been updated, and hence concluded that the 'lower' action
hadn't done any actual work. Generally speaking, the fix is to make
sure make has all the relevant information.
Here, we make sure that:
1, the intermediate file is created. (do_cmd touch)
2, that is is created before the actual recipe is executed
3, that there is a recipe (which does nothing) for the true outputs.
(This will force make to examine the actual file timestamp, meaning
that it will 'see' the result of the actual actions performed.)
The solution here still follows the 'intermediate' answer on stack overflow:
http://stackoverflow.com/questions/2973445/gnu-makefile-rule-generating-a-few-targets-from-a-single-source-file
These new additions follow a discussion thread on the GNU make mailing list,
where the make maintainer explains the mechanism in more detail:
http://lists.gnu.org/archive/html/help-make/2012-04/msg00015.html
The effect of this bug is documented here:
https://code.google.com/p/v8/issues/detail?id=4171
BUG=
R=jochen@chromium.org
Committed: https://chromium.googlesource.com/external/gyp/+/79de4031069f37870f04e8b6bbf42f0c7fec37aa
Patch Set 1 #Patch Set 2 : Test case added. #
Messages
Total messages: 13 (5 generated)
|