Closed
Bug 714365
Opened 13 years ago
Closed 13 years ago
DictionaryHelpers.cpp gets rebuilt on every build
Categories
(Core :: XPConnect, defect)
Core
XPConnect
Tracking
()
RESOLVED
FIXED
mozilla12
People
(Reporter: ehsan.akhgari, Assigned: froydnj)
Details
(Whiteboard: [inbound])
Attachments
(1 file)
|
1.30 KB,
patch
|
ted
:
review+
|
Details | Diff | Splinter Review |
Even if none of its dependencies have changed. This causes libxul to be built on every single build, which is really annoying.
INFO:pymake.data: Considering target 'DictionaryHelpers.cpp'
INFO:pymake.data: Considering target 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf'
INFO:pymake.data: Searching for implicit rule to make 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf'
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1180:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf.c' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1212:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf.cpp' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1279:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf.pl' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1284:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf.sh' not mentioned and doesn't exist.
INFO:pymake.data: Couldn't find implicit rule to remake 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.conf'
INFO:pymake.data: Considering target 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py'
INFO:pymake.data: Searching for implicit rule to make 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py'
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1180:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py.c' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1212:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py.cpp' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1279:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py.pl' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1284:0 doesn't match: prerequisite 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py.sh' not mentioned and doesn't exist.
INFO:pymake.data: Couldn't find implicit rule to remake 'c:/dev/mozilla-central/js/xpconnect/src/dictionary_helper_gen.py'
INFO:pymake.data: Considering target 'FORCE'
INFO:pymake.data: Searching for implicit rule to make 'FORCE'
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1180:0 doesn't match: prerequisite 'FORCE.c' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1212:0 doesn't match: prerequisite 'FORCE.cpp' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1279:0 doesn't match: prerequisite 'FORCE.pl' not mentioned and doesn't exist.
INFO:pymake.data: Terminal rule at c:\dev\mozilla-central\config\rules.mk:1284:0 doesn't match: prerequisite 'FORCE.sh' not mentioned and doesn't exist.
INFO:pymake.data: Couldn't find implicit rule to remake 'FORCE'
INFO:pymake.data:Remaking DictionaryHelpers.cpp using rule at c:\dev\mozilla-central\obj-i686-pc-mingw32\js\xpconnect\src\Makefile:212:0 because FORCE is newer.
That's ... interesting.
Comment 2•13 years ago
|
||
The issue appears to be that when writing .deps/dictionary_helper_gen.pp the dictionary_helper_gen.py script appears to be doing the output as:
DictionaryHelpers.cpp: \
nsIDOMEvent.idl \
nsIDOMCustomEvent.idl \
nsIDOMPopStateEvent.idl \
nsIDOMHashChangeEvent.idl \
nsIDOMPageTransitionEvent.idl \
nsIDOMCloseEvent.idl \
nsIDOMUIEvent.idl \
nsIDOMMouseEvent.idl \
nsIIDBDatabase.idl \
nsIIDBObjectStore.idl
rather than:
DictionaryHelpers.cpp: \
../../../dist/idl/nsIDOMEvent.idl \
../../../dist/idl/nsIDOMCustomEvent.idl \
../../../dist/idl/nsIDOMPopStateEvent.idl \
../../../dist/idl/nsIDOMHashChangeEvent.idl \
../../../dist/idl/nsIDOMPageTransitionEvent.idl \
../../../dist/idl/nsIDOMCloseEvent.idl \
../../../dist/idl/nsIDOMUIEvent.idl \
../../../dist/idl/nsIDOMMouseEvent.idl \
../../../dist/idl/nsIIDBDatabase.idl \
../../../dist/idl/nsIIDBObjectStore.idl
which is what dombindingsgen.py does.
It could be the difference between the two findIDL functions, but I'm not quite sure:
http://hg.mozilla.org/mozilla-central/file/758005504cab/js/xpconnect/src/dictionary_helper_gen.py#l73
http://hg.mozilla.org/mozilla-central/file/758005504cab/js/xpconnect/src/codegen.py#l86
Maybe someone can take this on and save the builders some time?
From the outputs in the comments this doesn't look like Mac OS X only.
Updated•13 years ago
|
OS: Mac OS X → All
Hardware: x86 → All
Version: unspecified → Trunk
| Assignee | ||
Comment 4•13 years ago
|
||
Here's a patch which at least adds the ../.. bits; we were appending the filename as-is, rather than the filename which findIDL handed us. The latter is what dombindingsgen.py does.
| Assignee | ||
Comment 5•13 years ago
|
||
Comment on attachment 590716 [details] [diff] [review]
patch
This does prevent DictionaryHelpers.cpp from getting rebuilt; it does not prevent libxul.so from getting rebuilt. But this is an improvement in any event.
Attachment #590716 -
Flags: review?(ted.mielczarek)
Updated•13 years ago
|
Attachment #590716 -
Flags: review?(ted.mielczarek) → review+
Updated•13 years ago
|
Assignee: nobody → nfroyd
| Assignee | ||
Updated•13 years ago
|
Keywords: checkin-needed
Comment 6•13 years ago
|
||
Thanks Nathan.
Landed on inbound: https://hg.mozilla.org/integration/mozilla-inbound/rev/fffb40f09574
Comment 7•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You made it guys! This was the last offending file for me. A rebuild without any changes now does no longer relink libxul for me! Thanks you.
Comment 9•13 years ago
|
||
Thanks for fixing my bad code, Nathan!
You need to log in
before you can comment on or make changes to this bug.
Description
•