Closed Bug 780446 Opened 10 years ago Closed 10 years ago

Infinite repeating message "Makefile is unchanged" unless clobbered (pymake build only?)

Categories

(Firefox Build System :: General, defect)

x86_64
Windows 8
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla17

People

(Reporter: emk, Assigned: emk)

References

(Blocks 1 open bug)

Details

Attachments

(2 files, 1 obsolete file)

I was not able to build even with bug 780421 and bug 780430 patch.
It's not infinite. It's just one for each Makefile, and is a one-time only thing. That is, after you either clobber or touch all Makefiles in the tree, it won't happen again (unless you edit a Makefile.in without modifying it, or modifying it in a way that doesn't affect its preprocessed Makefile counterpart, in which case it will only happen for that one Makefile, not all of them).
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → INVALID
Attached patch Touch unmodified file (obsolete) — Splinter Review
to satisfy pymake...
Attachment #649077 - Flags: review?(mh+mozilla)
Attachment #649077 - Flags: review?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #1)
> It's not infinite. It's just one for each Makefile, and is a one-time only
> thing. That is, after you either clobber or touch all Makefiles in the tree,
> it won't happen again (unless you edit a Makefile.in without modifying it,
> or modifying it in a way that doesn't affect its preprocessed Makefile
> counterpart, in which case it will only happen for that one Makefile, not
> all of them).
But I observed ConfigStatus.py was called for the same one Makefile over and over.
Mmmm maybe pymake is not happy with the file not being modified by the rule supposedly modifying it, and it runs the rule again for other files (basically, all files depend on Makefile, so for each file it builds, it would try to rebuild Makefile).

I'd accept a patch that adds $(TOUCH) commands to the Makefile generation rules in config/rules.mk|js/src/config/rules.mk.
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Blocks: 774032
https://tbpl.mozilla.org/?tree=Try&rev=ba019d4354ff
Assignee: nobody → VYV03354
Attachment #649077 - Attachment is obsolete: true
Status: REOPENED → ASSIGNED
Attachment #649083 - Flags: review?(mh+mozilla)
Comment on attachment 649083 [details] [diff] [review]
touch Makefile after invoking config.status

Review of attachment 649083 [details] [diff] [review]:
-----------------------------------------------------------------

You need to do the change on the SUBMAKEFILES rule as well, and to js/src/config/rules.mk.
Attachment #649083 - Flags: review?(mh+mozilla) → review-
Comment on attachment 649083 [details] [diff] [review]
touch Makefile after invoking config.status

Review of attachment 649083 [details] [diff] [review]:
-----------------------------------------------------------------

You need to do the change on the SUBMAKEFILES rule as well, and to js/src/config/rules.mk.

::: config/rules.mk
@@ +1154,5 @@
>  
>  ifndef NO_MAKEFILE_RULE
>  Makefile: Makefile.in
>  	@$(PYTHON) $(DEPTH)/config.status -n --file=Makefile
> +	@$(TOUCH) Makefile

Also, just use $(TOUCH) $@
(In reply to Mike Hommey [:glandium] from comment #7)
> You need to do the change on the SUBMAKEFILES rule as well, and to
> js/src/config/rules.mk.
Done.

> ::: config/rules.mk
> @@ +1154,5 @@
> >  
> >  ifndef NO_MAKEFILE_RULE
> >  Makefile: Makefile.in
> >  	@$(PYTHON) $(DEPTH)/config.status -n --file=Makefile
> > +	@$(TOUCH) Makefile
> 
> Also, just use $(TOUCH) $@
Done.
Attachment #649089 - Flags: review?(mh+mozilla)
Comment on attachment 649089 [details] [diff] [review]
touch Makefile after invoking config.status

I'll land this shortly.
Attachment #649089 - Flags: review?(mh+mozilla) → review+
https://hg.mozilla.org/mozilla-central/rev/24389ed3dd72
Status: ASSIGNED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
Blocks: clobber
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.