Closed
Bug 750253
Opened 13 years ago
Closed 13 years ago
XPConnect is rebuilt unnecessarily
Categories
(Firefox Build System :: General, defect)
Firefox Build System
General
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla15
People
(Reporter: khuey, Assigned: khuey)
Details
Attachments
(1 file)
|
1.04 KB,
patch
|
ted
:
review+
|
Details | Diff | Splinter Review |
This was ... fun.
js/xpconnect/src/Makefile.in has the following lines
nsXPConnect.$(OBJ_SUFFIX): dom_quickstubs.h
...
dom_quickstubs.h: dom_quickstubs.cpp
qsgen.py writes the .h after the .cpp. Thus, the mtime of the .h is later than the mtime of the .cpp. When we rebuild, pymake recognizes that dom_quickstubs.h needs to be rebuilt and "executes" the empty rule (but prints no logging information!). It then rebuilds nsXPConnect.$(OBJ_SUFFIX) because its dependency was just rebuilt.
Attachment #619545 -
Flags: review?(ted.mielczarek)
Comment 1•13 years ago
|
||
Comment on attachment 619545 [details] [diff] [review]
Patch
Review of attachment 619545 [details] [diff] [review]:
-----------------------------------------------------------------
Is this a pymake bug that we should file? Obviously the logic here was bad, so the dependency checking was doing the right thing, but gmake doesn't seem to exhibit this behavior.
Attachment #619545 -
Flags: review?(ted.mielczarek) → review+
Comment 2•13 years ago
|
||
After some testing, it looks like gmake is a little more lenient here, running "make -d" on a testcase prints:
No need to remake target `blah.cpp'.
Finished prerequisites of target file `blah.h'.
Prerequisite `blah.cpp' is newer than target `blah.h'.
No commands for `blah.h' and no prerequisites actually changed.
No need to remake target `blah.h'.
If you had an actual command (even an empty one) in the blah.h: blah.cpp rule, it'd get run every time.
| Assignee | ||
Comment 3•13 years ago
|
||
Flags: in-testsuite-
Target Milestone: --- → mozilla15
Comment 4•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Updated•8 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•