Last Comment Bug 780446 - Infinite repeating message "Makefile is unchanged" unless clobbered (pymake build only?)
: Infinite repeating message "Makefile is unchanged" unless clobbered (pymake b...
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Build Config (show other bugs)
: unspecified
: x86_64 Windows 8
: -- normal (vote)
: mozilla17
Assigned To: Masatoshi Kimura [:emk]
:
: Gregory Szorc [:gps]
Mentors:
Depends on:
Blocks: clobber 774032
  Show dependency treegraph
 
Reported: 2012-08-04 23:56 PDT by Masatoshi Kimura [:emk]
Modified: 2013-11-21 14:33 PST (History)
1 user (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Touch unmodified file (1.57 KB, patch)
2012-08-04 23:59 PDT, Masatoshi Kimura [:emk]
no flags Details | Diff | Splinter Review
touch Makefile after invoking config.status (1.57 KB, patch)
2012-08-05 02:03 PDT, Masatoshi Kimura [:emk]
mh+mozilla: review-
Details | Diff | Splinter Review
touch Makefile after invoking config.status (1.94 KB, patch)
2012-08-05 03:30 PDT, Masatoshi Kimura [:emk]
mh+mozilla: review+
Details | Diff | Splinter Review

Description Masatoshi Kimura [:emk] 2012-08-04 23:56:50 PDT
I was not able to build even with bug 780421 and bug 780430 patch.
Comment 1 Mike Hommey [:glandium] 2012-08-04 23:59:26 PDT
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).
Comment 2 Masatoshi Kimura [:emk] 2012-08-04 23:59:39 PDT
Created attachment 649077 [details] [diff] [review]
Touch unmodified file

to satisfy pymake...
Comment 3 Masatoshi Kimura [:emk] 2012-08-05 00:03:19 PDT
(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.
Comment 4 Mike Hommey [:glandium] 2012-08-05 00:11:28 PDT
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.
Comment 5 Masatoshi Kimura [:emk] 2012-08-05 02:03:38 PDT
Created attachment 649083 [details] [diff] [review]
touch Makefile after invoking config.status

https://tbpl.mozilla.org/?tree=Try&rev=ba019d4354ff
Comment 6 Mike Hommey [:glandium] 2012-08-05 02:07:44 PDT
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.
Comment 7 Mike Hommey [:glandium] 2012-08-05 02:08:32 PDT
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) $@
Comment 8 Masatoshi Kimura [:emk] 2012-08-05 03:30:37 PDT
Created attachment 649089 [details] [diff] [review]
touch Makefile after invoking config.status

(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.
Comment 9 Mike Hommey [:glandium] 2012-08-05 03:33:22 PDT
Comment on attachment 649089 [details] [diff] [review]
touch Makefile after invoking config.status

I'll land this shortly.
Comment 11 Ed Morley [:emorley] 2012-08-05 08:48:48 PDT
https://hg.mozilla.org/mozilla-central/rev/24389ed3dd72

Note You need to log in before you can comment on or make changes to this bug.