Bug 37253 - [Qt]r57240 broke Qt build (gcc bug)
: [Qt]r57240 broke Qt build (gcc bug)
Status: RESOLVED FIXED
: WebKit
New Bugs
: 528+ (Nightly build)
: PC Linux
: P3 Normal
Assigned To:
:
: Qt, QtTriaged
:
:
  Show dependency treegraph
 
Reported: 2010-04-08 00:57 PST by
Modified: 2013-09-06 19:35 PST (History)


Attachments
proposed workaround until fix (1.68 KB, patch)
2010-04-08 01:11 PST, Csaba Osztrogonác
no flags Review Patch | Details | Formatted Diff | Diff
Remove the inline hack (1.64 KB, patch)
2012-04-29 14:34 PST, Adenilson Cavalcanti Silva
no flags Review Patch | Details | Formatted Diff | Diff
Patch with guard for Qt && Arm (1.41 KB, patch)
2012-05-02 13:56 PST, Lauro Moura Maranhao Neto
no flags Review Patch | Details | Formatted Diff | Diff
Remove hack (1.96 KB, patch)
2013-09-06 18:35 PST, Andreas Kling
no flags Review Patch | Details | Formatted Diff | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2010-04-08 00:57:39 PST
After http://trac.webkit.org/changeset/57240 Qt build broke,
exactly gcc stucked in an infinite loop (with 100% CPU load)
when building WebCore/platform/graphics/FontFamily.cpp

original command:
g++ -c -m32 -pipe -Wall -Wextra -Wreturn-type -fno-strict-aliasing -Wcast-align -Wchar-subscripts -Wformat-security -Wreturn-type -Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum -Wundef -Wmissing-noreturn -Winit-self -ffunction-sections -fdata-sections -O2 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -fPIC -DBUILDING_QT__=1 -DWTF_USE_ACCELERATED_COMPOSITING -DNDEBUG -DQT_MAKEDLL -DHAVE_STDINT_H -DBUILD_WEBKIT -DBUILDING_QT__ -DBUILDING_JavaScriptCore -DBUILDING_WTF -DENABLE_VIDEO=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_DATABASE=1 -DENABLE_EVENTSOURCE=1 -DENABLE_OFFLINE_WEB_APPLICATIONS=1 -DENABLE_DOM_STORAGE=1 -DENABLE_ICONDATABASE=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_SQLITE=1 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_FILTERS=1 -DENABLE_XPATH=1 -DENABLE_WCSS=0 -DENABLE_WML=0 -DENABLE_SHARED_WORKERS=1 -DENABLE_WORKERS=1 -DENABLE_XHTMLMP=0 -DENABLE_DATAGRID=0 -DENABLE_RUBY=1 -DENABLE_SANDBOX=1 -DENABLE_PROGRESS_TAG=1 -DENABLE_BLOB_SLICE=0 -DENABLE_3D_RENDERING=1 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_SVG_FOREIGN_OBJECT=1 -DENABLE_SVG_ANIMATION=1 -DENABLE_SVG_AS_IMAGE=1 -DENABLE_SVG_USE=1 -DENABLE_DATALIST=1 -DENABLE_TILED_BACKING_STORE=1 -DENABLE_NETSCAPE_PLUGIN_API=1 -DENABLE_WEB_SOCKETS=1 -DENABLE_XSLT=1 -DENABLE_TOUCH_EVENTS=1 -DXP_UNIX -DQT_NO_DEBUG -DQT_XMLPATTERNS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.6.0/mkspecs/linux-g++-32 -I../../../WebCore -I/usr/local/Trolltech/Qt-4.6.0/include/QtCore -I/usr/local/Trolltech/Qt-4.6.0/include/QtNetwork -I/usr/local/Trolltech/Qt-4.6.0/include/QtGui -I/usr/local/Trolltech/Qt-4.6.0/include/QtXmlPatterns -I/usr/local/Trolltech/Qt-4.6.0/include -I../../../WebCore/bridge/qt -I../../../WebCore/page/qt -I../../../WebCore/platform/graphics/qt -I../../../WebCore/platform/network/qt -I../../../WebCore/platform/qt -I../../../WebKit/qt/Api -I../../../WebKit/qt/WebCoreSupport -I../../../WebCore -I../../../WebCore/accessibility -I../../../WebCore/bindings/js -I../../../WebCore/bridge -I../../../WebCore/bridge/c -I../../../WebCore/bridge/jsc -I../../../WebCore/css -I../../../WebCore/dom -I../../../WebCore/dom/default -I../../../WebCore/editing -I../../../WebCore/history -I../../../WebCore/html -I../../../WebCore/html/canvas -I../../../WebCore/inspector -I../../../WebCore/loader -I../../../WebCore/loader/appcache -I../../../WebCore/loader/archive -I../../../WebCore/loader/icon -I../../../WebCore/notifications -I../../../WebCore/page -I../../../WebCore/page/animation -I../../../WebCore/platform -I../../../WebCore/platform/animation -I../../../WebCore/platform/graphics -I../../../WebCore/platform/graphics/filters -I../../../WebCore/platform/graphics/transforms -I../../../WebCore/platform/image-decoders -I../../../WebCore/platform/mock -I../../../WebCore/platform/network -I../../../WebCore/platform/sql -I../../../WebCore/platform/text -I../../../WebCore/plugins -I../../../WebCore/rendering -I../../../WebCore/rendering/style -I../../../WebCore/storage -I../../../WebCore/svg -I../../../WebCore/svg/animation -I../../../WebCore/svg/graphics -I../../../WebCore/svg/graphics/filters -I../../../WebCore/websockets -I../../../WebCore/wml -I../../../WebCore/workers -I../../../WebCore/xml -Igenerated -I../../../JavaScriptCore -I../../../../build -I../../../JavaScriptCore/assembler -I../../../JavaScriptCore/bytecode -I../../../JavaScriptCore/bytecompiler -I../../../JavaScriptCore/debugger -I../../../JavaScriptCore/interpreter -I../../../JavaScriptCore/jit -I../../../JavaScriptCore/parser -I../../../JavaScriptCore/pcre -I../../../JavaScriptCore/profiler -I../../../JavaScriptCore/runtime -I../../../JavaScriptCore/wtf -I../../../JavaScriptCore/wtf/symbian -I../../../JavaScriptCore/wtf/unicode -I../../../JavaScriptCore/yarr -I../../../JavaScriptCore/API -I../../../JavaScriptCore/ForwardingHeaders -I../JavaScriptCore/generated -I../include/QtWebKit -I/usr/local/Trolltech/Qt-4.6.0/src/3rdparty/sqlite/ -I/usr/local/Trolltech/Qt-4.6.0/include/phonon -I/usr/X11R6/include -I. -I../../../WebCore -I. -o obj/release/FontFamily.o ../../../WebCore/platform/graphics/FontFamily.cpp

I tried to preprocess and compile in two steps manually, it works:

preprocess:
g++ -E -m32 -pipe -Wall -Wextra -Wreturn-type -fno-strict-aliasing -Wcast-align -Wchar-subscripts -Wformat-security -Wreturn-type -Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum -Wundef -Wmissing-noreturn -Winit-self -ffunction-sections -fdata-sections -O2 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -fPIC -DBUILDING_QT__=1 -DWTF_USE_ACCELERATED_COMPOSITING -DNDEBUG -DQT_MAKEDLL -DHAVE_STDINT_H -DBUILD_WEBKIT -DBUILDING_QT__ -DBUILDING_JavaScriptCore -DBUILDING_WTF -DENABLE_VIDEO=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_DATABASE=1 -DENABLE_EVENTSOURCE=1 -DENABLE_OFFLINE_WEB_APPLICATIONS=1 -DENABLE_DOM_STORAGE=1 -DENABLE_ICONDATABASE=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_SQLITE=1 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_FILTERS=1 -DENABLE_XPATH=1 -DENABLE_WCSS=0 -DENABLE_WML=0 -DENABLE_SHARED_WORKERS=1 -DENABLE_WORKERS=1 -DENABLE_XHTMLMP=0 -DENABLE_DATAGRID=0 -DENABLE_RUBY=1 -DENABLE_SANDBOX=1 -DENABLE_PROGRESS_TAG=1 -DENABLE_BLOB_SLICE=0 -DENABLE_3D_RENDERING=1 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_SVG_FOREIGN_OBJECT=1 -DENABLE_SVG_ANIMATION=1 -DENABLE_SVG_AS_IMAGE=1 -DENABLE_SVG_USE=1 -DENABLE_DATALIST=1 -DENABLE_TILED_BACKING_STORE=1 -DENABLE_NETSCAPE_PLUGIN_API=1 -DENABLE_WEB_SOCKETS=1 -DENABLE_XSLT=1 -DENABLE_TOUCH_EVENTS=1 -DXP_UNIX -DQT_NO_DEBUG -DQT_XMLPATTERNS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.6.0/mkspecs/linux-g++-32 -I../../../WebCore -I/usr/local/Trolltech/Qt-4.6.0/include/QtCore -I/usr/local/Trolltech/Qt-4.6.0/include/QtNetwork -I/usr/local/Trolltech/Qt-4.6.0/include/QtGui -I/usr/local/Trolltech/Qt-4.6.0/include/QtXmlPatterns -I/usr/local/Trolltech/Qt-4.6.0/include -I../../../WebCore/bridge/qt -I../../../WebCore/page/qt -I../../../WebCore/platform/graphics/qt -I../../../WebCore/platform/network/qt -I../../../WebCore/platform/qt -I../../../WebKit/qt/Api -I../../../WebKit/qt/WebCoreSupport -I../../../WebCore -I../../../WebCore/accessibility -I../../../WebCore/bindings/js -I../../../WebCore/bridge -I../../../WebCore/bridge/c -I../../../WebCore/bridge/jsc -I../../../WebCore/css -I../../../WebCore/dom -I../../../WebCore/dom/default -I../../../WebCore/editing -I../../../WebCore/history -I../../../WebCore/html -I../../../WebCore/html/canvas -I../../../WebCore/inspector -I../../../WebCore/loader -I../../../WebCore/loader/appcache -I../../../WebCore/loader/archive -I../../../WebCore/loader/icon -I../../../WebCore/notifications -I../../../WebCore/page -I../../../WebCore/page/animation -I../../../WebCore/platform -I../../../WebCore/platform/animation -I../../../WebCore/platform/graphics -I../../../WebCore/platform/graphics/filters -I../../../WebCore/platform/graphics/transforms -I../../../WebCore/platform/image-decoders -I../../../WebCore/platform/mock -I../../../WebCore/platform/network -I../../../WebCore/platform/sql -I../../../WebCore/platform/text -I../../../WebCore/plugins -I../../../WebCore/rendering -I../../../WebCore/rendering/style -I../../../WebCore/storage -I../../../WebCore/svg -I../../../WebCore/svg/animation -I../../../WebCore/svg/graphics -I../../../WebCore/svg/graphics/filters -I../../../WebCore/websockets -I../../../WebCore/wml -I../../../WebCore/workers -I../../../WebCore/xml -Igenerated -I../../../JavaScriptCore -I../../../../build -I../../../JavaScriptCore/assembler -I../../../JavaScriptCore/bytecode -I../../../JavaScriptCore/bytecompiler -I../../../JavaScriptCore/debugger -I../../../JavaScriptCore/interpreter -I../../../JavaScriptCore/jit -I../../../JavaScriptCore/parser -I../../../JavaScriptCore/pcre -I../../../JavaScriptCore/profiler -I../../../JavaScriptCore/runtime -I../../../JavaScriptCore/wtf -I../../../JavaScriptCore/wtf/symbian -I../../../JavaScriptCore/wtf/unicode -I../../../JavaScriptCore/yarr -I../../../JavaScriptCore/API -I../../../JavaScriptCore/ForwardingHeaders -I../JavaScriptCore/generated -I../include/QtWebKit -I/usr/local/Trolltech/Qt-4.6.0/src/3rdparty/sqlite/ -I/usr/local/Trolltech/Qt-4.6.0/include/phonon -I/usr/X11R6/include -I. -I../../../WebCore -I. -o obj/release/FontFamily.i ../../../WebCore/platform/graphics/FontFamily.cpp

compile:
g++ -c -o obj/release/FontFamily.o obj/release/FontFamily.i
------- Comment #1 From 2010-04-08 01:11:30 PST -------
Created an attachment (id=52848) [details]
proposed workaround until fix
------- Comment #2 From 2010-04-08 01:13:43 PST -------
(From update of attachment 52848 [details])
r=me
------- Comment #3 From 2010-04-08 01:23:34 PST -------
(From update of attachment 52848 [details])
Workaround landed in http://trac.webkit.org/changeset/57262
We shouldn't close this bug until find what the problem is.

I forgot to mention, I use gcc (Debian 4.3.2-1.1) 4.3.2,
which can be found in stable Debian (5.0.4 - Lenny)
------- Comment #4 From 2010-04-08 07:26:14 PST -------
It works with gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1.
------- Comment #5 From 2010-04-29 03:32:23 PST -------
Any chance to close the bug now?
Or reduce the priority to P5 if it is only about understanding where the problem was.
------- Comment #6 From 2010-04-30 10:06:41 PST -------
(In reply to comment #5)
> Any chance to close the bug now?
> Or reduce the priority to P5 if it is only about understanding where the
> problem was.

I don't think if we should close the bug, because it is a real bug,
and we should use ALWAYS_INLINE macro carefully.

But I agree, it isn't blocker and P1 priority bug after workaround landed,
so I modified it to P3 and normal. I played with a little bit this bug again,
I can reproduce it with preprocessed source, so I'm going to file a bug about it
into gcc bugzilla.
------- Comment #7 From 2010-06-29 15:20:59 PST -------
If this is a GCC bug, then we should file a GCC bug report. I don't see any reason to keep a WebKit bug report open about this indefinitely.
------- Comment #8 From 2011-05-03 12:20:57 PST -------
GCC bug and seems outdated.
------- Comment #9 From 2012-04-29 14:34:00 PST -------
Created an attachment (id=139406) [details]
Remove the inline hack

Current gcc (tested with 4.6.1) and Qt5 doesn't need this macro workaround.
------- Comment #10 From 2012-04-30 07:24:50 PST -------
(From update of attachment 139406 [details])
but what about Qt 4.8?
------- Comment #11 From 2012-05-02 01:16:52 PST -------
Reopen, because CQ won't land patch from RESOLVED/WONTFIX bug. :)

I tested it with Debian Squeeze (latest Debian stable), it works fine with its default 4.4.5 GCC. Ubuntu 10.04 LTS has 4.4.3, it should work too. (Additionally 12.04 LTS is out now.)
------- Comment #12 From 2012-05-02 01:19:22 PST -------
(From update of attachment 139406 [details])
Clearing flags on attachment: 139406

Committed r115802: <http://trac.webkit.org/changeset/115802>
------- Comment #13 From 2012-05-02 01:19:30 PST -------
All reviewed patches have been landed.  Closing bug.
------- Comment #14 From 2012-05-02 08:11:39 PST -------
Reopen, because it broke the N9 build inside scratchbox with the following error:
In file included from /home/lauro/webkit/webkit-deb/Source/WebCore/html/shadow/HTMLContentSelector.cpp:28:
/home/lauro/webkit/webkit-deb/Source/WTF/wtf/RefPtr.h: In destructor 'WebCore::HTMLContentSelectionList::~HTMLContentSelectionList()':
/home/lauro/webkit/webkit-deb/Source/WTF/wtf/RefPtr.h:56: sorry, unimplemented: inlining failed in call to 'WTF::RefPtr<T>::~RefPtr() [with T = WebCore::HTMLContentSelection]': recursive inlining
/home/lauro/webkit/webkit-deb/Source/WebCore/html/shadow/HTMLContentSelector.h:47: sorry, unimplemented: called from here
...

What if we add back an ifdef guard again for it: #if !(PLATFORM(QT) && CPU(ARM)) ?

Any better idea?
------- Comment #15 From 2012-05-02 13:56:31 PST -------
Created an attachment (id=139878) [details]
Patch with guard for Qt && Arm
------- Comment #16 From 2012-05-02 22:19:23 PST -------
(From update of attachment 139878 [details])
r=me
------- Comment #17 From 2012-05-02 23:10:04 PST -------
(From update of attachment 139878 [details])
Clearing flags on attachment: 139878

Committed r115940: <http://trac.webkit.org/changeset/115940>
------- Comment #18 From 2012-05-02 23:10:10 PST -------
All reviewed patches have been landed.  Closing bug.
------- Comment #19 From 2012-05-02 23:19:45 PST -------
Reopen not to forget removing this workaround after updating GCC.
------- Comment #20 From 2012-05-03 09:34:55 PST -------
If this is a compiler issue, then it should really be an #if COMPILER, not an #if PLATFORM && CPU. Obviously we can live with the way it was landed, but it’s not quite right.
------- Comment #21 From 2012-07-16 02:05:19 PST -------
I wonder if this issue is still present with Harmattan PR 1.3?

It also appears that this happens when building inside Scratchbox. What about builds outside of scratchbox box? Does the latest cross-compiling toolchain delivered with the Qt SDK suffer from the same bug?
------- Comment #22 From 2013-09-06 18:35:27 PST -------
Created an attachment (id=210828) [details]
Remove hack

I think it should be okay to remove this now.
------- Comment #23 From 2013-09-06 19:34:58 PST -------
(From update of attachment 210828 [details])
Clearing flags on attachment: 210828

Committed r155232: <http://trac.webkit.org/changeset/155232>
------- Comment #24 From 2013-09-06 19:35:06 PST -------
All reviewed patches have been landed.  Closing bug.