Closed Bug 587715 Opened 9 years ago Closed 9 years ago

Qt build bustage after moving some includes around in nsObjectFrame.cpp

Categories

(Firefox Build System :: General, defect)

x86_64
Linux
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: benjamin, Unassigned)

References

Details

c++ -o nsObjectFrame.o -c  -fvisibility=hidden -DMOZILLA_INTERNAL_API -D_IMPL_NS_COM -DEXPORT_XPT_API -DEXPORT_XPTC_API -D_IMPL_NS_GFX -D_IMPL_NS_WIDGET -DIMPL_XREAPI -DIMPL_NS_NET -DIMPL_THEBES  -DSTATIC_EXPORTABLE_JS_API -DZLIB_INTERNAL -DOSTYPE=\"Linux2.6.18-8\" -DOSARCH=Linux -DEXCLUDE_SKIA_DEPENDENCIES -DCHROMIUM_MOZILLA_BUILD  -DOS_LINUX=1 -DOS_POSIX=1  -D_IMPL_NS_LAYOUT -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/ipc/chromium/src -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/ipc/glue -I../../ipc/ipdl/_ipdlheaders  -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../base -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../forms -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../tables -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../xul/base/src -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../../content/xul/content/src -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../../content/base/src -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../../content/html/content/src -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/../../dom/base -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/objdir/dist/include/cairo  -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic -I. -I../../dist/include -I../../dist/include/nsprpub  -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/objdir/dist/include/nspr -I/home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/objdir/dist/include/nss       -fPIC -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -Wno-long-long -fno-strict-aliasing -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fomit-frame-pointer -finline-limit=50 -DQT_SHARED -I/usr/include/QtGui -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtDBus -I/usr/include/QtXml -I/usr/include/QtOpenGL     -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MF .deps/nsObjectFrame.pp /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp
In file included from /usr/include/QtCore/qstring.h:46,
                 from /usr/include/QtCore/qobject.h:48,
                 from /usr/include/QtGui/qwidget.h:46,
                 from /usr/include/QtGui/QWidget:1,
                 from /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp:64:
/usr/include/QtCore/qbytearray.h:369:27: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qbytearray.h:417:58: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qbytearray.h:431:53: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qbytearray.h:434:42: error: macro "realloc" requires 2 arguments, but only 1 given
In file included from /usr/include/QtCore/qobject.h:48,
                 from /usr/include/QtGui/qwidget.h:46,
                 from /usr/include/QtGui/QWidget:1,
                 from /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp:64:
/usr/include/QtCore/qstring.h:116:76: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qstring.h:262:38: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qstring.h:615:18: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qstring.h:616:27: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qstring.h:704:51: error: macro "realloc" requires 2 arguments, but only 1 given
/usr/include/QtCore/qstring.h:870:93: error: macro "realloc" requires 2 arguments, but only 1 given
In file included from /usr/include/QtCore/qobject.h:50,
                 from /usr/include/QtGui/qwidget.h:46,
                 from /usr/include/QtGui/QWidget:1,
                 from /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp:64:
/usr/include/QtCore/qlist.h:78:27: error: macro "realloc" requires 2 arguments, but only 1 given
In file included from /usr/include/QtCore/qstringlist.h:46,
                 from /usr/include/QtGui/qcolor.h:47,
                 from /usr/include/QtGui/qpalette.h:46,
                 from /usr/include/QtGui/qwidget.h:49,
                 from /usr/include/QtGui/QWidget:1,
                 from /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp:64:
/usr/include/QtCore/qdatastream.h:50:2: error: #error qdatastream.h must be included before any header file that defines Status
In file included from /usr/include/QtGui/qbrush.h:47,
                 from /usr/include/QtGui/qpalette.h:47,
                 from /usr/include/QtGui/qwidget.h:49,
                 from /usr/include/QtGui/QWidget:1,
                 from /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp:64:
/usr/include/QtCore/qvector.h:83:93: error: macro "malloc" passed 4 arguments, but takes just 1
/usr/include/QtCore/qvector.h:86:54: error: macro "free" passed 2 arguments, but takes just 1
/usr/include/QtCore/qvector.h:96:66: error: macro "free" passed 2 arguments, but takes just 1
/usr/include/QtCore/qvector.h:96:128: error: macro "free" passed 2 arguments, but takes just 1
/usr/include/QtCore/qvector.h:438:34: error: macro "free" passed 2 arguments, but takes just 1
In file included from /usr/include/QtCore/qvariant.h:48,
                 from /usr/include/QtCore/qmimedata.h:45,
                 from /usr/include/QtGui/qmime.h:45,
                 from /usr/include/QtGui/qevent.h:52,
                 from /usr/include/QtGui/QKeyEvent:1,
                 from /home/cltbld/build/mobile-trunk-maemo5-qt/mozilla-central/layout/generic/nsObjectFrame.cpp:65:
/usr/include/QtCore/qmetatype.h:53:2: error: #error qmetatype.h must be included before any header file that defines Bool

This directory now uses chromium-config.mk, and the sequence of includes is:

PluginMessageUtils.h (brings in chromium basetypes and then nscore stuff)
cairo-xlib.h
QWidget
QKeyEvent

Do some Qt headers need to be included between chromium and nscore? Is there a way we can make this less fragile?
It is better to not include anything before Qt headers. or write some special Qt include wrapper which will undef all possible defines which are breaking Qt includes before including actual Qt includes.
I moved the Qt headers to the top again, but I definitely want a better solution long-term.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.