WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
67799
[Qt][Mac] Build system can't handle dependencies for mm files
https://bugs.webkit.org/show_bug.cgi?id=67799
Summary
[Qt][Mac] Build system can't handle dependencies for mm files
Csaba Osztrogonác
Reported
2011-09-08 13:31:11 PDT
http://trac.webkit.org/changeset/94774
broke the build on Qt-Mac platform: Undefined symbols: "JSC::JSCell::getUInt32(unsigned int&) const", referenced from: vtable for JSC::JSCellin libwebcore.a(WebVideoFullscreenController.o) vtable for JSC::JSCellin libwebcore.a(WebVideoFullscreenHUDWindowController.o) vtable for JSC::JSCellin libwebcore.a(MediaPlayerPrivateQTKit.o) ld: symbol(s) not found
Attachments
preprocessed WebVideoFullscreenController
(6.52 MB, application/octet-stream)
2011-09-14 05:24 PDT
,
Balazs Kelemen
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Mark Hahnenberg
Comment 1
2011-09-08 13:32:25 PDT
Any idea why this is happening?
Csaba Osztrogonác
Comment 2
2011-09-08 13:33:41 PDT
I don't know anything about QtWebKit on Mac. Maybe Dihan or Alexis can check it.
Mark Hahnenberg
Comment 3
2011-09-08 13:52:49 PDT
Since this didn't break any of the other Qt bots, my guess would have to be that the bot is having an issue cleaning the build directory. getUInt32 was removed from JSCell entirely and therefore should not be in the vtable for any class anywhere.
Csaba Osztrogonác
Comment 4
2011-09-09 04:58:15 PDT
Touching the folowing files solved the problem: platform/graphics/mac/MediaPlayerPrivateQTKit.mm platform/mac/WebVideoFullscreenController.mm platform/mac/WebVideoFullscreenHUDWindowController.mm I touched them with
r94845
and then I rolled out this hack with
r94846
. It means that
r94774
is correct, but our build system has a serious bug. (I'm afraid it is a qmake bug, not bug in WebKit pro files.) Alexis or Dihan, could you check the dependencies for these files in the Makefile?
Csaba Osztrogonác
Comment 5
2011-09-12 03:01:53 PDT
One more build broke the build because of this bug
http://trac.webkit.org/changeset/94930
Balazs Kelemen
Comment 6
2011-09-14 02:31:17 PDT
It seems like the dependency set of some mm files are really broken like these: obj/release/WebVideoFullscreenController.o: ../../../Source/WebCore/platform/mac/WebVideoFullscreenController.mm $(CCACHE) /usr/bin/gcc-4.2 -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ../../../Source/WebCore/platform/mac/WebVideoFullscreenController.mm -o obj/release/WebVideoFullscreenController.o obj/release/WebVideoFullscreenHUDWindowController.o: ../../../Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm $(CCACHE) /usr/bin/gcc-4.2 -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ../../../Source/WebCore/platform/mac/WebVideoFullscreenHUDWindowController.mm -o obj/release/WebVideoFullscreenHUDWindowController.o obj/release/WebWindowAnimation.o: ../../../Source/WebCore/platform/mac/WebWindowAnimation.mm $(CCACHE) /usr/bin/gcc-4.2 -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ../../../Source/WebCore/platform/mac/WebWindowAnimation.mm -o obj/release/WebWindowAnimation.o However other mm files have correct dependencies like that: obj/release/MediaPlayerPrivateQTKit.o: ../../../Source/WebCore/platform/graphics/GraphicsLayer.h \ ../../../Source/WebCore/platform/animation/Animation.h \ ../../../Source/WebCore/platform/text/PlatformString.h \ ../../../Source/JavaScriptCore/wtf/text/WTFString.h \ ../../../Source/JavaScriptCore/wtf/text/StringImpl.h \ ../../../Source/JavaScriptCore/wtf/ASCIICType.h \ ../../../Source/JavaScriptCore/wtf/Assertions.h \ ../../../Source/JavaScriptCore/wtf/Platform.h \ ../../../Source/JavaScriptCore/wtf/Compiler.h \ ../../../Source/JavaScriptCore/wtf/gobject/GTypedefs.h \ ../../../Source/JavaScriptCore/wtf/CrossThreadRefCounted.h \ ../../../Source/JavaScriptCore/wtf/PassRefPtr.h \ ../../../Source/JavaScriptCore/wtf/AlwaysInline.h \ ../../../Source/JavaScriptCore/wtf/NullPtr.h \ ../../../Source/JavaScriptCore/wtf/RefCounted.h \ ../../../Source/JavaScriptCore/wtf/FastAllocBase.h \ ../../../Source/JavaScriptCore/wtf/FastMalloc.h \ ../../../Source/JavaScriptCore/wtf/PossiblyNull.h \ ../../../Source/JavaScriptCore/wtf/TypeTraits.h \ ../../../Source/JavaScriptCore/wtf/ThreadRestrictionVerifier.h \ ../../../Source/JavaScriptCore/wtf/Threading.h \ ../../../Source/JavaScriptCore/wtf/Atomics.h \ ../../../Source/JavaScriptCore/wtf/Locker.h \ ../../../Source/JavaScriptCore/wtf/Noncopyable.h \ ../../../Source/JavaScriptCore/wtf/ThreadSafeRefCounted.h \ ../../../Source/JavaScriptCore/wtf/DynamicAnnotations.h \ ../../../Source/JavaScriptCore/wtf/ThreadingPrimitives.h \ ../../../Source/JavaScriptCore/wtf/gobject/GOwnPtr.h \ /opt/local/include/QtCore/qglobal.h \ /opt/local/include/QtCore/qconfig.h \ /opt/local/include/QtCore/qfeatures.h \ ../../../Source/JavaScriptCore/wtf/OwnPtr.h \ ../../../Source/JavaScriptCore/wtf/OwnPtrCommon.h \ ../../../Source/JavaScriptCore/wtf/UnusedParam.h \ ../../../Source/JavaScriptCore/wtf/Forward.h \ ../../../Source/JavaScriptCore/wtf/OwnFastMallocPtr.h \ ../../../Source/JavaScriptCore/wtf/StdLibExtras.h \ ../../../Source/JavaScriptCore/wtf/StringHasher.h \ ../../../Source/JavaScriptCore/wtf/unicode/Unicode.h \ ../../../Source/JavaScriptCore/wtf/unicode/qt4/UnicodeQt4.h \ ../../../Source/JavaScriptCore/wtf/unicode/ScriptCodesFromICU.h \ ../../../Source/JavaScriptCore/wtf/unicode/UnicodeMacrosFromICU.h \ /opt/local/include/QtCore/QChar \ /opt/local/include/QtCore/qchar.h \ /opt/local/include/QtCore/QString \ /opt/local/include/QtCore/qstring.h \ /opt/local/include/QtCore/qbytearray.h \ /opt/local/include/QtCore/qatomic.h \ /opt/local/include/QtCore/qbasicatomic.h \ /opt/local/include/QtCore/qatomic_bootstrap.h \ /opt/local/include/QtCore/qatomic_arch.h \ /opt/local/include/QtCore/qatomic_vxworks.h \ /opt/local/include/QtCore/qatomic_powerpc.h \ /opt/local/include/QtCore/qatomic_alpha.h \ /opt/local/include/QtCore/qatomic_arm.h \ /opt/local/include/QtCore/qatomic_armv6.h \ /opt/local/include/QtCore/qatomic_avr32.h \ /opt/local/include/QtCore/qatomic_bfin.h \ /opt/local/include/QtCore/qatomic_generic.h \ /opt/local/include/QtCore/qatomic_i386.h \ /opt/local/include/QtCore/qatomic_ia64.h \ /opt/local/include/QtCore/qatomic_macosx.h \ /opt/local/include/QtCore/qatomic_x86_64.h \ /opt/local/include/QtCore/qatomic_mips.h \ /opt/local/include/QtCore/qatomic_parisc.h \ /opt/local/include/QtCore/qatomic_s390.h \ /opt/local/include/QtCore/qatomic_sparc.h \ /opt/local/include/QtCore/qatomic_windows.h \ /opt/local/include/QtCore/qatomic_windowsce.h \ /opt/local/include/QtCore/qatomic_symbian.h \ /opt/local/include/QtCore/qatomic_sh.h \ /opt/local/include/QtCore/qatomic_sh4a.h \ /opt/local/include/QtCore/qnamespace.h \ /opt/local/include/Qt3Support/q3cstring.h \ /opt/local/include/QtCore/qstringbuilder.h \ /opt/local/include/QtCore/qmap.h \ /opt/local/include/QtCore/qiterator.h \ /opt/local/include/QtCore/qlist.h \ /opt/local/include/QtCore/qalgorithms.h \ ../../../Source/WebCore/config.h \ ../../../Source/JavaScriptCore/wtf/ExportMacros.h \ ../../../Source/JavaScriptCore/wtf/DisallowCType.h \ ../../../Source/WebCore/bridge/npruntime_internal.h \ ../../../Source/WebCore/plugins/npapi.h \ ../../../Source/WebCore/plugins/nptypes.h \ /opt/local/include/QtCore/QEvent \ /opt/local/include/QtCore/qcoreevent.h \ /opt/local/include/QtCore/qobjectdefs.h \ /opt/local/include/QtGui/QRegion \ /opt/local/include/QtGui/qregion.h \ /opt/local/include/QtCore/qrect.h \ /opt/local/include/QtCore/qsize.h \ /opt/local/include/QtCore/qpoint.h \ /opt/local/include/QtGui/qwindowdefs.h \ /opt/local/include/QtGui/qmacdefines_mac.h \ /opt/local/include/QtGui/qwindowdefs_win.h \ /opt/local/include/QtCore/qdatastream.h \ /opt/local/include/QtCore/qscopedpointer.h \ /opt/local/include/QtCore/qiodevice.h \ /opt/local/include/QtCore/qobject.h \ ../../../Source/WebCore/plugins/npfunctions.h \ ../../../Source/WebCore/plugins/npruntime.h \ ../../../Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h \ ../../../Source/JavaScriptCore/wtf/unicode/glib/UnicodeGLib.h \ ../../../Source/JavaScriptCore/wtf/unicode/wince/UnicodeWinCE.h \ ../../../Source/JavaScriptCore/wtf/unicode/brew/UnicodeBrew.h \ ../../../Source/JavaScriptCore/wtf/Vector.h \ ../../../Source/JavaScriptCore/wtf/NotFound.h \ ../../../Source/JavaScriptCore/wtf/ValueCheck.h \ ../../../Source/JavaScriptCore/wtf/VectorTraits.h \ ../../../Source/JavaScriptCore/wtf/RefPtr.h \ ../../../Source/JavaScriptCore/wtf/Alignment.h \ /opt/local/include/QtCore/QDataStream \ ../../../Source/JavaScriptCore/wtf/text/StringImplBase.h \ ../../../Source/JavaScriptCore/wtf/text/AtomicString.h \ ../../../Source/JavaScriptCore/wtf/text/AtomicStringImpl.h \ ../../../Source/JavaScriptCore/wtf/text/StringConcatenate.h \ ../../../Source/JavaScriptCore/wtf/text/StringOperators.h \ ../../../Source/WebCore/rendering/style/RenderStyleConstants.h \ ../../../Source/WebCore/platform/animation/TimingFunction.h \ ../../../Source/WebCore/platform/graphics/Color.h \ ../../../Source/WebCore/platform/graphics/ColorSpace.h \ ../../../Source/WebCore/platform/graphics/FloatPoint.h \ ../../../Source/WebCore/platform/graphics/FloatSize.h \ ../../../Source/WebCore/platform/graphics/IntPoint.h \ ../../../Source/WebCore/platform/graphics/IntSize.h \ ../../../Source/JavaScriptCore/wtf/MathExtras.h \ ../../../Source/WebCore/platform/graphics/FloatPoint3D.h \ ../../../Source/WebCore/platform/graphics/GraphicsLayerClient.h \ ../../../Source/WebCore/platform/graphics/IntRect.h \ ../../../Source/WebCore/platform/graphics/transforms/TransformationMatrix.h \ /opt/local/include/QtGui/QTransform \ /opt/local/include/QtGui/qtransform.h \ /opt/local/include/QtGui/qmatrix.h \ /opt/local/include/QtGui/qpolygon.h \ /opt/local/include/QtCore/qvector.h \ /opt/local/include/QtCore/QPointF \ /opt/local/include/QtCore/QPoint \ /opt/local/include/QtCore/qline.h \ /opt/local/include/QtGui/qwmatrix.h \ /opt/local/include/QtGui/qpainterpath.h \ ../../../Source/WebCore/platform/graphics/transforms/TransformOperations.h \ ../../../Source/WebCore/platform/graphics/transforms/TransformOperation.h \ ../../../Source/JavaScriptCore/wtf/PassOwnPtr.h \ ../../../Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm $(CCACHE) /usr/bin/gcc-4.2 -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ../../../Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm -o obj/release/MediaPlayerPrivateQTKit.o In WebCore.pro these 4 files are in the same section so I don't know what is the difference between them.
Csaba Osztrogonác
Comment 7
2011-09-14 02:41:44 PDT
Could you check the preprocessed source? (with -E -dD options) It can help you to find where the missing header is included.
Balazs Kelemen
Comment 8
2011-09-14 05:24:59 PDT
Created
attachment 107320
[details]
preprocessed WebVideoFullscreenController
Balazs Kelemen
Comment 9
2011-09-14 05:26:00 PDT
(In reply to
comment #7
)
> Could you check the preprocessed source? (with -E -dD options) > It can help you to find where the missing header is included.
I don't know how will we become smarter by this so I uploaded it for you :)
Balazs Kelemen
Comment 10
2011-09-14 05:42:07 PDT
I have now idea how to fix this or what is the reason of this issue so I postpone it to somebody with a better knowledge in qmake and the build system.
Csaba Osztrogonác
Comment 11
2011-09-15 02:00:38 PDT
One more build fail because of this bug:
http://trac.webkit.org/changeset/95167
Csaba Osztrogonác
Comment 12
2011-09-15 02:01:39 PDT
It is a blocker bug, because now our SL builder is absolutely unreliable.
Alexis Menard (darktears)
Comment 13
2011-09-15 05:12:20 PDT
(In reply to
comment #12
)
> It is a blocker bug, because now our SL builder is absolutely unreliable.
Come on. Don't be so dramatic, the bot worked absolutely fine until recent changes that shows up this bug. It did 1000+ builds without a glitch. Unless someone finds the time and the willing to fix the qmake bug, then I'm fine with cleaning the build some time to time.
Csaba Osztrogonác
Comment 14
2011-09-15 05:20:50 PDT
(In reply to
comment #13
)
> (In reply to
comment #12
) > > It is a blocker bug, because now our SL builder is absolutely unreliable. > > Come on. Don't be so dramatic, the bot worked absolutely fine until recent changes that shows up this bug. It did 1000+ builds without a glitch. Unless someone finds the time and the willing to fix the qmake bug, then I'm fine with cleaning the build some time to time.
There wasn't a problem for a long time. But this bug cause two false positive alarm in this week. And will do regularly when JSC developers touch JSCell.h, JSObject.h, ... Because of regularly false positive red bot, developers won't trust the SL bot. And if it turns red, they will say, it must be a flakiness, and won't think if they caused a regression.
Csaba Osztrogonác
Comment 15
2011-09-26 23:18:27 PDT
One more fail because of this bug:
http://trac.webkit.org/changeset/96045
Csaba Osztrogonác
Comment 16
2011-09-27 13:36:20 PDT
One more fail because of
http://trac.webkit.org/changeset/96143
I'm fed up with this bug ... :-/ Tomorrow I'll fix it myself if nobody is interested in fixing it ...
Csaba Osztrogonác
Comment 17
2011-10-10 01:20:02 PDT
I think I got it. It seems qmake can't handle the "#import" keyword. I'm going to fix it ASAP.
Csaba Osztrogonác
Comment 18
2011-10-11 07:38:51 PDT
(In reply to
comment #17
)
> I think I got it. It seems qmake can't handle the "#import" keyword. > I'm going to fix it ASAP.
It is a qmake bug:
https://bugreports.qt.nokia.com/browse/QTBUG-21965
Mark Hahnenberg
Comment 19
2011-10-12 13:52:11 PDT
Just a heads up, there's another patch that just landed that might trigger this bug (
r97292
).
Mark Hahnenberg
Comment 20
2011-10-12 14:04:55 PDT
Nevermind, false alarm.
Mark Hahnenberg
Comment 21
2011-10-14 19:02:18 PDT
Another failure on the SL bot due to this bug. Need a clean build.
Csaba Osztrogonác
Comment 22
2011-10-15 02:27:20 PDT
(In reply to
comment #21
)
> Another failure on the SL bot due to this bug. Need a clean build.
Thanks for the heads-up. This bug is fixed in Qt trunk, we won't need clean build anymore after final Qt 4.8 release. (I hope it will be released in a month.)
Mark Hahnenberg
Comment 23
2011-10-23 17:23:59 PDT
Another failure @
r98203
. Sorry again guys. There will probably be a few more of these within the next week.
Alexis Menard (darktears)
Comment 24
2011-10-23 22:22:00 PDT
Rafael, could you please have a look when needed (make a clean build) while I'm away. Thanks
Rafael Brandao
Comment 25
2011-10-24 14:59:49 PDT
(In reply to
comment #24
)
> Rafael, could you please have a look when needed (make a clean build) while I'm away. > > Thanks
When I came to the office today the build bot seemed to be working fine so I didn't touch it, but I'll keep an eye on it. If you need anything just give me a heads up via email.
Csaba Osztrogonác
Comment 26
2012-02-02 10:12:10 PST
(In reply to
comment #18
)
> (In reply to
comment #17
) > > I think I got it. It seems qmake can't handle the "#import" keyword. > > I'm going to fix it ASAP. > > It is a qmake bug:
https://bugreports.qt.nokia.com/browse/QTBUG-21965
It is fixed in released Qt 4.8.0.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug