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
Created attachment 52848 [details] proposed workaround until fix
Comment on attachment 52848 [details] proposed workaround until fix r=me
Comment on attachment 52848 [details] proposed workaround until fix 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)
It works with gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1.
Any chance to close the bug now? Or reduce the priority to P5 if it is only about understanding where the problem was.
(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.
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.
GCC bug and seems outdated.
Created attachment 139406 [details] Remove the inline hack Current gcc (tested with 4.6.1) and Qt5 doesn't need this macro workaround.
Comment on attachment 139406 [details] Remove the inline hack but what about Qt 4.8?
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 on attachment 139406 [details] Remove the inline hack Clearing flags on attachment: 139406 Committed r115802: <http://trac.webkit.org/changeset/115802>
All reviewed patches have been landed. Closing bug.
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?
Created attachment 139878 [details] Patch with guard for Qt && Arm
Comment on attachment 139878 [details] Patch with guard for Qt && Arm r=me
Comment on attachment 139878 [details] Patch with guard for Qt && Arm Clearing flags on attachment: 139878 Committed r115940: <http://trac.webkit.org/changeset/115940>
Reopen not to forget removing this workaround after updating GCC.
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.
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?
Created attachment 210828 [details] Remove hack I think it should be okay to remove this now.
Comment on attachment 210828 [details] Remove hack Clearing flags on attachment: 210828 Committed r155232: <http://trac.webkit.org/changeset/155232>