Closed Bug 869120 Opened 11 years ago Closed 7 years ago

pymake runs recipe multiple times for rules with multiple targets

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: gps, Unassigned)

Details

I /think/ I found a bug in pymake where it will execute a recipe multiple times for a rule that has multiple targets.

I found it on a try push for bug 850380: https://tbpl.mozilla.org/?tree=Try&rev=68c066643d21

I was trying to execute a make file with the following rules:

$(idl_header_dir)/%.h $(idl_xpt_dir)/%.xpt: $(idl_stage_dir)/%.idl
    @echo "$(notdir $<)"
    $(idlprocess) $(notdir $<)

$(idl_header_dir)/%.h: $(idl_xpt_dir)/%.xpt

This is a make-ism used to facilitate multiple outputs from the same command invocation. According to https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html, this should work (with the exception of handling the case where the input file disappears - which we need not worry about here).

Anyway, if we look at the output for that push (https://tbpl.mozilla.org/php/getParsedLog.php?id=22573280&tree=Try&full=1), we see that the recipe for the multi-target rule is being executed twice.

I reckon pymake isn't properly applying %.h's dependency on %.xpt.

I don't think this will be an easy bug to fix :/
Mass close of pymake-related bugs.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.