Bug 1034940

Summary: qt5-qtwebkit 5.2.0-beta1 FTBFS on secondary arches
Product: [Fedora] Fedora Reporter: Dan Horák <dan>
Component: qt5-qtwebkitAssignee: Rex Dieter <rdieter>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: awilliam, dan, dwa, jreznik, kevin, ltinkl, rdieter, rnovacek, than
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedFreezeException
Fixed In Version: qt5-qtscript-5.2.0-0.5.beta1.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-04 16:52:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467765, 980657, 1004044    
Attachments:
Description Flags
proposed changes for fedora git none

Description Dan Horák 2013-11-26 18:04:06 UTC
qt5-qtwebkit 5.2.0-beta1 fails to build on secondary arches (ppc,s390) with

...
/qt5/QtCore -I. -I../../Source -I../WTF -Iassembler -Ibytecode -Ibytecompiler -Iheap -Idfg -Idebugger -Idisassembler -Iinterpreter -Ijit -Illint -Iparser -Iprofiler -Iruntime -Itools -Iyarr -IAPI -IForwardingHeaders -I/builddir/build/BUILD/qtwebkit-opensource-src-5.2.0-beta1/Source/JavaScriptCore/generated -I../WTF -I../../Source -I/builddir/build/BUILD/qtwebkit-opensource-src-5.2.0-beta1/Source/include -o .obj/llint/LLIntOffsetsExtractor.o llint/LLIntOffsetsExtractor.cpp
In file included from bytecode/ValueRecovery.h:31:0,
                 from bytecode/CodeOrigin.h:31,
                 from bytecode/CodeBlock.h:39,
                 from llint/LLIntOffsetsExtractor.cpp:29:
assembler/MacroAssembler.h:62:2: error: #error "The MacroAssembler is not supported on this platform."
 #error "The MacroAssembler is not supported on this platform."
  ^
In file included from bytecode/ValueRecovery.h:31:0,
                 from bytecode/CodeOrigin.h:31,
                 from bytecode/CodeBlock.h:39,
                 from llint/LLIntOffsetsExtractor.cpp:29:
assembler/MacroAssembler.h:67:50: error: expected class-name before '{' token
 class MacroAssembler : public MacroAssemblerBase {
                                                  ^
assembler/MacroAssembler.h:70:11: error: 'MacroAssemblerBase' has not been declared
     using MacroAssemblerBase::pop;
           ^
...

seems as a similar problem as it was in qt5-qtdeclarative


Version-Release number of selected component (if applicable):
qt5-qtwebkit-5.2.0-0.5.beta1.fc20

Comment 2 Rex Dieter 2013-11-26 19:57:44 UTC
need to verify if this was against the latest qt5-qtbase, qt5-qtdeclarative builds from
https://admin.fedoraproject.org/updates/FEDORA-2013-22154

(If not, please update those first)

I'll check the build logs here shortly

Comment 3 Rex Dieter 2013-11-26 19:58:43 UTC
confirmed, rats

Comment 4 Dan Horák 2013-11-26 20:31:35 UTC
I'll be looking on it tomorrow ...

Comment 5 Dan Horák 2013-11-28 15:12:49 UTC
the workaround is

diff --git a/qt5-qtwebkit.spec b/qt5-qtwebkit.spec
index d31caf2..b098191 100644
--- a/qt5-qtwebkit.spec
+++ b/qt5-qtwebkit.spec
@@ -127,7 +127,12 @@ mv Source/ThirdParty/ANGLE/ \
 
 
 %build
-%{_qt5_qmake} %{?system_angle:DEFINES+=USE_SYSTEM_ANGLE=1}
+%{_qt5_qmake} %{?system_angle:DEFINES+=USE_SYSTEM_ANGLE=1} \
+%ifnarch %{arm} %{ix86} x86_64
+       DEFINES+=ENABLE_JIT=0 DEFINES+=ENABLE_YARR_JIT=0
+%else
+       %{nil}
+%endif
 
 make %{?_smp_mflags}

Comment 6 Dan Horák 2013-11-28 15:15:09 UTC
hm, not completely, fails a while later with

bytecode/CodeBlock.cpp: In member function 'unsigned int JSC::CodeBlock::numberOfDFGCompiles()':
bytecode/CodeBlock.cpp:2951:50: error: 'replacement' was not declared in this scope
     return (JITCode::isOptimizingJIT(replacement()->getJITType()) ? 1 : 0) + m_reoptimizationRetryCounter;
                                                  ^

Comment 7 Dan Horák 2013-11-28 15:42:38 UTC
the code seems to be fixed in Webkit upstream, so qt5 should sync with them ...

Comment 8 Dan Horák 2013-11-28 15:45:55 UTC
one more fix ...

diff -up qtwebkit-opensource-src-5.2.0-beta1/Source/JavaScriptCore/bytecode/CodeBlock.cpp.nojit qtwebkit-opensource-src-5.2.0-beta1/Source/JavaScriptCore/bytecode/CodeBlock.cpp
--- qtwebkit-opensource-src-5.2.0-beta1/Source/JavaScriptCore/bytecode/CodeBlock.cpp.nojit	2013-11-28 15:43:39.169409385 -0500
+++ qtwebkit-opensource-src-5.2.0-beta1/Source/JavaScriptCore/bytecode/CodeBlock.cpp	2013-11-28 15:44:17.399410231 -0500
@@ -2947,8 +2947,12 @@ void CodeBlock::countReoptimization()
 
 unsigned CodeBlock::numberOfDFGCompiles()
 {
+#if ENABLE(JIT)
     ASSERT(JITCode::isBaselineCode(getJITType()));
     return (JITCode::isOptimizingJIT(replacement()->getJITType()) ? 1 : 0) + m_reoptimizationRetryCounter;
+#else
+    return 0;
+#endif
 }

Comment 10 Dan Horák 2013-11-28 17:57:24 UTC
Created attachment 830338 [details]
proposed changes for fedora git

Comment 11 Fedora Blocker Bugs Application 2013-11-28 18:39:28 UTC
Proposed as a Freeze Exception for 20-final by Fedora user sharkcz using the blocker tracking app because:

 qt5-qtwebkit is part of qt5 library stack that was FTBFS on secondary arches for some time.

Comment 12 Rex Dieter 2013-11-29 14:02:09 UTC
thanks!  committed, and building now.

Comment 13 Fedora Update System 2013-11-29 18:53:42 UTC
qt5-qtscript-5.2.0-0.5.beta1.fc20, qt5-qttools-5.2.0-0.5.beta1.fc20, qt5-qtdeclarative-5.2.0-0.5.beta1.fc20, qt5-qtbase-5.2.0-0.7.beta1.20131108_141.fc20, qt5-qtwebkit-5.2.0-0.6.beta1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/FEDORA-2013-22154/qt5-qtscript-5.2.0-0.5.beta1.fc20,qt5-qttools-5.2.0-0.5.beta1.fc20,qt5-qtwebkit-5.2.0-0.6.beta1.fc20,qt5-qtdeclarative-5.2.0-0.5.beta1.fc20,qt5-qtbase-5.2.0-0.7.beta1.20131108_141.fc20

Comment 14 Fedora Update System 2013-12-01 17:42:41 UTC
Package qt5-qtscript-5.2.0-0.5.beta1.fc20, qt5-qttools-5.2.0-0.5.beta1.fc20, qt5-qtdeclarative-5.2.0-0.5.beta1.fc20, qt5-qtbase-5.2.0-0.7.beta1.20131108_141.fc20, qt5-qtwebkit-5.2.0-0.6.beta1.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing qt5-qtscript-5.2.0-0.5.beta1.fc20 qt5-qttools-5.2.0-0.5.beta1.fc20 qt5-qtdeclarative-5.2.0-0.5.beta1.fc20 qt5-qtbase-5.2.0-0.7.beta1.20131108_141.fc20 qt5-qtwebkit-5.2.0-0.6.beta1.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-22154/qt5-qtscript-5.2.0-0.5.beta1.fc20,qt5-qttools-5.2.0-0.5.beta1.fc20,qt5-qtwebkit-5.2.0-0.6.beta1.fc20,qt5-qtdeclarative-5.2.0-0.5.beta1.fc20,qt5-qtbase-5.2.0-0.7.beta1.20131108_141.fc20
then log in and leave karma (feedback).

Comment 15 Adam Williamson 2013-12-02 18:47:04 UTC
Discussed at 2013-12-02 freeze exception review meeting: http://meetbot.fedoraproject.org/fedora-blocker-review/2013-12-02/f20-blocker-review-%234.2013-12-02-17.02.log.txt . Accepted as a freeze exception issue as a significant bug for secondary arches whose fix is unlikely to break anything important for primary arches.

Comment 16 Fedora Update System 2013-12-04 16:52:38 UTC
qt5-qtscript-5.2.0-0.5.beta1.fc20, qt5-qttools-5.2.0-0.5.beta1.fc20, qt5-qtdeclarative-5.2.0-0.5.beta1.fc20, qt5-qtbase-5.2.0-0.7.beta1.20131108_141.fc20, qt5-qtwebkit-5.2.0-0.6.beta1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.