yjhjstz / gyp

Fix 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 Review URL: https://codereview.chromium.org/1177163002.
Daniel Vogelheim Daniel Vogelheim committed on Jun 12, 2015, 04:23 PM
Showing 4 changed files +90 additions -4 deletions
Browse files at this commit โ†’