RESOLVED FIXED 114627
[EFL] build error when adjusting attachment 198015 [details]
https://bugs.webkit.org/show_bug.cgi?id=114627
Summary [EFL] build error when adjusting attachment 198015
Gyuyoung Kim
Reported 2013-04-15 09:34:58 PDT
I'm suspecting this error comes from gcc version. In addition, EFL buildbot and ews are running on Ubuntu 12.04 and gcc 4.6.3. However, layout test on EFL can't be run on Ubuntu 12.10 yet. I think we need to support to build WebKit-efl with gcc 4.6 as well. Error log : /mnt/eflews/webkit/WebKit/Source/WebCore/Modules/websockets/WebSocketDeflater.cpp: In member function ‘bool WebCore::WebSocketDeflater::finish()’: /mnt/eflews/webkit/WebKit/Source/WebCore/Modules/websockets/WebSocketDeflater.cpp:102:6: internal compiler error: in interpret_loop_phi, at tree-scalar-evolution.c:1645 Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions. Preprocessed source stored into /tmp/cc9Kyhcu.out file, please attach this to your bugreport. make[2]: *** [Source/WebCore/CMakeFiles/webcore_efl.dir/Modules/websockets/WebSocketDeflater.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [Source/WebCore/CMakeFiles/webcore_efl.dir/all] Error 2
Attachments
Gyuyoung Kim
Comment 1 2013-04-15 18:44:01 PDT
CC'ing KyungTae.
KyungTae Kim
Comment 2 2013-04-16 00:43:47 PDT
The gcc bug related with that is like below: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49938 The modified sources for that is like below: http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=177267 Someone said because that occurs during optimization, compiling with "-O0" will not make the error.
KyungTae Kim
Comment 3 2013-04-16 03:30:07 PDT
When I modified bug 97268's code like below, the error did not occur : #if GCC_VERSION_AT_LEAST(4, 7, 0) unsigned m_size; #else size_t m_size; #endif But, in this case, VectorSizeOffset in javascriptcore/llint/LowLevelInterpreter.asm can't have correct value, because we can't use GSS_VERSION option in .asm
KyungTae Kim
Comment 4 2013-04-16 04:10:34 PDT
(In reply to comment #3) Typo: GSS_VERSION -> GCC_VERSION
Laszlo Gombos
Comment 5 2013-04-16 10:52:18 PDT
Based on the explanation this does not look EFL specific to me. Would be useful to find out why other Linux ports (e.g. GTK or Qt) does not run into this problem.
Gyuyoung Kim
Comment 6 2013-04-17 06:08:42 PDT
(In reply to comment #5) > Based on the explanation this does not look EFL specific to me. Would be useful to find out why other Linux ports (e.g. GTK or Qt) does not run into this problem. In GTK port case, it already checks GCC version during the configuration. checking for _FILE_OFFSET_BITS value needed for large files... no configure: error: Compiler GCC >= 4.7 or Clang >= 3.0 is required for C compilation
Raphael Kubo da Costa (:rakuco)
Comment 7 2013-04-19 06:15:29 PDT
It looks like something specific to the 4.6 series (I tried 4.4, 4.5, 4.6, 4.7 and 4.8 here), and this crash only happens when building in Release mode because only -O3 makes the compiler crash. The GCC bug report KyungTae may be related, but it's about a 4.7.0 regression that does not crash 4.6 here. GTK+ seems to require GCC 4.7.0, and my guess is that qmake doesn't pass -O3 in its equivalent to Release mode. How about doing something like this in Source/WebCore/CMakeLists.txt: # Detailed explaination of why we need this. if (CMAKE_COMPILER_IS_GNUCXX) # Can restrict based on the version. set_source_files_properties(Modules/websocket/WebSocketDeflater.cpp PROPERTIES COMPILE_FLAGS "-O2") endif () This would end up passing -O2 to g++ at the end and fixes the issue.
Gyuyoung Kim
Comment 8 2013-04-19 20:30:51 PDT
(In reply to comment #7) > It looks like something specific to the 4.6 series (I tried 4.4, 4.5, 4.6, 4.7 and 4.8 here), and this crash only happens when building in Release mode because only -O3 makes the compiler crash. > > The GCC bug report KyungTae may be related, but it's about a 4.7.0 regression that does not crash 4.6 here. > > GTK+ seems to require GCC 4.7.0, and my guess is that qmake doesn't pass -O3 in its equivalent to Release mode. > > How about doing something like this in Source/WebCore/CMakeLists.txt: > > # Detailed explaination of why we need this. > if (CMAKE_COMPILER_IS_GNUCXX) # Can restrict based on the version. > set_source_files_properties(Modules/websocket/WebSocketDeflater.cpp > PROPERTIES COMPILE_FLAGS "-O2") > endif () > > This would end up passing -O2 to g++ at the end and fixes the issue. Could you prepare a patch ? I don't want to block Bug 97268 anymore. Then, as I said, let's consider to move 13.04. :)
Raphael Kubo da Costa (:rakuco)
Comment 9 2013-04-22 09:38:13 PDT
Looks like I've managed to work around the issue in bug 97268.
Note You need to log in before you can comment on or make changes to this bug.