Closed Bug 1187006 Opened 10 years ago Closed 10 years ago

Build error, with "widget/gtk/nsApplicationChooser.h:10:10: fatal error: 'nsIApplicationChooser.h' file not found", if I don't explicitly clobber after pulling in default-to-gtk3 commit

Categories

(Core :: Widget: Gtk, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox42 --- affected

People

(Reporter: dholbert, Unassigned)

References

Details

Building mozilla-inbound today, I hit this build error: { 0:57.08 In file included from /scratch/work/builds/mozilla-inbound/obj/widget/gtk/Unified_cpp_widget_gtk0.cpp:38: 0:57.08 In file included from /scratch/work/builds/mozilla-inbound/mozilla/widget/gtk/nsApplicationChooser.cpp:10: 0:57.08 /scratch/work/builds/mozilla-inbound/mozilla/widget/gtk/nsApplicationChooser.h:10:10: fatal error: 'nsIApplicationChooser.h' file not found 0:57.08 #include "nsIApplicationChooser.h" 0:57.08 ^ 0:59.05 1 error generated. } My mozconfig is pretty simple: ====== mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj mk_add_options AUTOCLOBBER=1 ac_add_options --enable-debug --disable-optimize ac_add_options --enable-warnings-as-errors ======
(I did not explicitly clobber before pulling & building, FWIW, though AUTOCLOBBER may have clobbered for me. I've now moved my objdir out of the way to effectively get a clobber build, to see for sure whether clobber builds are affected.)
It looks like nsIApplicationChooser.h is only generated "if toolkit == 'gtk3'": > 215 if toolkit == 'gtk3': > 216 XPIDL_SOURCES += [ > 217 'nsIApplicationChooser.idl', > 218 ] http://mxr.mozilla.org/mozilla-central/source/widget/moz.build#215 ...whereas nsApplicationChooser.cpp (which depends on that header) is built under a slightly different condition: > 70 if CONFIG['MOZ_ENABLE_GTK2']: [...] > 74 else: > 75 UNIFIED_SOURCES += [ [...] > 77 'nsApplicationChooser.cpp', > 78 ] http://mxr.mozilla.org/mozilla-central/source/widget/gtk/moz.build#70 So it seems like the build system is assuming that *either* toolkit == 'gtk3' *or* "CONFIG['MOZ_ENABLE_GTK2']" must be true. (they're different ways of testing the same condition) But for me in comment 0, that seems not to have been the case. My toolkit was *not* 'gtk3' (or else I would've had the header file), and CONFIG['MOZ_ENABLE_GTK2'] was *not* truthy (which is why I was building 'nsApplicationChooser.cpp'.)
OK, a clobber build completed successfully. So this seems to just be a case where a clobber is needed. (probably just due to the fact that we added a new IDL file? In retrospect, I probably didn't end up with a new .h file simply because nsIApplicationChooser.idl was new & required a clobber -- not because of the "toolkit == gtk3" check failing).
glandium, do you know if yesterday's gtk3-enabling involved a CLOBBER-file touching? (And if not, should we push a late-breaking CLOBBER-file touching, so that other people don't trip over this like I did?)
Flags: needinfo?(mh+mozilla)
Huh -- answering my own question, it looks like bug 1186003 (the gtk3-enabling bug) *did* indeed touch CLOBBER. (It's the latest change shown by 'hg log' on my inbound repo's CLOBBER file). So, I have no idea why I hit this issue. :-/
(I did save my busted objdir, if there's any useful information that can be gleaned from it.)
Blocks: 1186003
Keywords: regression
Summary: Build error, with "widget/gtk/nsApplicationChooser.h:10:10: fatal error: 'nsIApplicationChooser.h' file not found" → Build error, with "widget/gtk/nsApplicationChooser.h:10:10: fatal error: 'nsIApplicationChooser.h' file not found", if I don't explicitly clobber after pulling in default-to-gtk3 commit
There was a CLOBBER for gtk3-enabling on automation, but not one for gtk3-enabling on local builds... CLOBBER was updated again today for something else.
Flags: needinfo?(mh+mozilla)
OK, thanks. (In reply to Mike Hommey [:glandium] from comment #7) > CLOBBER was updated again today for > something else. Cool -- I verified that I was able to build, starting with my busted objdir, after I did a 'hg pull -u'. So, this seems to be WFM after today's CLOBBER update.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.