Closed
Bug 1438961
Opened 6 years ago
Closed 6 years ago
(C-C) Building with --disable-tests fails due to compilation error caused by a missing header file, mozITestInterfaceJS.h
Categories
(Core :: DOM: Core & HTML, defect)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
FIXED
mozilla60
Tracking | Status | |
---|---|---|
firefox60 | --- | fixed |
People
(Reporter: ishikawa, Assigned: bzbarsky)
Details
Attachments
(1 file)
1.97 KB,
patch
|
qdot
:
review+
|
Details | Diff | Splinter Review |
I have found that the current C-C tree (with its M-C mozilla subdirectory) does't build if I have --disable-tests in mozconfig. ac_add_options --disable-tests The build failure is as follows: /new-hd1/extra/ishikawa/TB-3HG/comm-central/mozilla/dom/bindings/test/TestFunctions.cpp:10:33: fatal error: mozITestInterfaceJS.h: No such file or directory 0:13.88 #include "mozITestInterfaceJS.h" After some investigative work, I have found that there is NO mozITestInterfaceJS.h after clobbering and configuring when there is --disable-tests in mozconfig. But once I comment out --disable-tests, and clobber and configure, I do see the following file generated under my MOZOBJ directory. dist/include/mozITestInterfaceJS.h So there is something wrong with the configuration. By the way, such a problem was not noticed before. This happened fairly recently, I think. I think the correct solution would be - do not compile mozilla/dom/bindings/test/TestFunctions.cpp when there is --disable-tests in mozconfig. Some patch contributors including myself make sure that the newly created patches compile on a local PC (i.e., making sure the build succeeds) on the road, but test on other machines at home, etc. Simply making sure that patches created for C++ files (and maybe some JS files) will not break build (and WITHOUT tests) requires less compilation on a PC and should be supported: test programs need not be compiled on that PC. This arrangement of having one PC with test enabled and another PC without test enabled has worked for many months (or years) until recently. Hmm. There seems to be fixed bug as follows: Bug 1230778 [trunk] make package is broken if --disable-tests is used in .mozconfig That bug deals with a failure during packaging state and not with compilation error. TIA
Updated•6 years ago
|
Flags: needinfo?(mozilla)
Reporter | ||
Comment 2•6 years ago
|
||
(In reply to Tom Prince [:tomprince] from comment #1) > Can you reproduce this with a Firefox build? I don't have pure FF source tree handy. It has to wait until Sunday (it is Saturday morning about 10 o'clock in Japan, and I need to go out now). TIA
Reporter | ||
Comment 3•6 years ago
|
||
(In reply to ISHIKAWA, Chiaki from comment #2) > (In reply to Tom Prince [:tomprince] from comment #1) > > Can you reproduce this with a Firefox build? > > I don't have pure FF source tree handy. > It has to wait until Sunday (it is Saturday morning about 10 o'clock in > Japan, and I need to go out now). > > TIA Come to think of it, I could build FF under M-C mozilla subdirectory. So I tried, and yes, I get the same error when the mozconfig for FF contains --disable-tests: The same error caused by missing mozITestInterfaceJS.h: ... libdom_filesystem_compat.a.desc In file included from /home/ishikawa/ff-objdir-tb3/dom/bindings/Unified_cpp_dom_bindings0.cpp:110:0: /NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/test/TestFunctions.cpp:10:33: fatal error: mozITestInterfaceJS.h: No such file or directory #include "mozITestInterfaceJS.h" ^ compilation terminated. /NREF-COMM-CENTRAL/comm-central/mozilla/config/rules.mk:1047: recipe for target 'Unified_cpp_dom_bindings0.o' failed make[4]: *** [Unified_cpp_dom_bindings0.o] Error 1 make[4]: *** Waiting for unfinished jobs.... libdom_flex.a.desc libdom_gamepad.a.desc ... So it seems that it *IS* a problem in M-C portion.
Comment 4•6 years ago
|
||
I've just hit the same problem when building Firefox locally. It looks like mozITestInterfaceJS was added in bug 1424362, maybe :bz knows what to do here?
Flags: needinfo?(bzbarsky)
Assignee | ||
Comment 5•6 years ago
|
||
Why would --disable-tests affect the existence of mozITestInterfaceJS.h? I don't see anything in there conditioned on ENABLE_TESTS.
Flags: needinfo?(bzbarsky)
Assignee | ||
Comment 6•6 years ago
|
||
"in there" == "under dom/bindings or dom/webidl"
Assignee | ||
Comment 7•6 years ago
|
||
I mean, in general we _could_ try turning off parts of this if not ENABLE_TESTS. But that would actually make build bustage with --disable-tests _more_ likely, because I'm pretty sure people would get this wrong. Which is why right now it's all just based on DEBUG and ignores ENABLE_TESTS.
Comment 8•6 years ago
|
||
Maybe mozITestInterfaceJS.h is not available because mozITestInterfaceJS.idl is placed in "dom/bindings/test" and "dom/bindings/test" gets included through TEST_DIRS [1]. And IIUC TEST_DIRS only seems to be consulted when ENABLE_TESTS is true (bug 1234955). [1] https://searchfox.org/mozilla-central/rev/b469db5c90d618f4b202d5ef280e1a78224eb43b/dom/bindings/moz.build#10
Assignee | ||
Comment 9•6 years ago
|
||
Ah, I see. OK, let me look into what the sanest way to fix this is.
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → bzbarsky
Component: Build Config → DOM
Product: Thunderbird → Core
Assignee | ||
Comment 10•6 years ago
|
||
I've verified that both normal and --disable-tests debug builds work with this change.
Attachment #8954071 -
Flags: review?(kyle)
Updated•6 years ago
|
Attachment #8954071 -
Flags: review?(kyle) → review+
Comment 11•6 years ago
|
||
Pushed by bzbarsky@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/2a30ffeb2f1d Make DOM binding bits build in a debug --disable-tests build. r=qdot
Comment 12•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/2a30ffeb2f1d
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox60:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
Reporter | ||
Comment 13•6 years ago
|
||
Nice. Thank you.
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•