[webkitgtk3] Add upstream patch to fix build without JIT (#843428)

Dan Horák sharkcz at fedoraproject.org
Tue Aug 14 14:49:18 UTC 2012


commit 2e8103d4e016b8ab0a5baea72f4d5081e0c3c8f3
Author: Dan Horák <dan at danny.cz>
Date:   Tue Aug 14 16:49:13 2012 +0200

    Add upstream patch to fix build without JIT (#843428)
    
    - Add upstream patch to fix build with latest gcc/bison

 webkit-1.9.5-compile-without-jit.patch |   59 ++++
 webkit-1.9.5-new-bison.patch           |  487 ++++++++++++++++++++++++++++++++
 webkitgtk3.spec                        |   10 +-
 3 files changed, 555 insertions(+), 1 deletions(-)
---
diff --git a/webkit-1.9.5-compile-without-jit.patch b/webkit-1.9.5-compile-without-jit.patch
new file mode 100644
index 0000000..57cce6e
--- /dev/null
+++ b/webkit-1.9.5-compile-without-jit.patch
@@ -0,0 +1,59 @@
+From http://trac.webkit.org/changeset/123107
+
+Fix compile with --disable-jit
+
+Index: /trunk/Source/JavaScriptCore/bytecode/Watchpoint.cpp
+===================================================================
+--- /trunk/Source/JavaScriptCore/bytecode/Watchpoint.cpp	(revision 123106)
++++ /trunk/Source/JavaScriptCore/bytecode/Watchpoint.cpp	(revision 123107)
+@@ -28,4 +28,5 @@
+ 
+ #include "LinkBuffer.h"
++#include <wtf/PassRefPtr.h>
+ 
+ namespace JSC {
+Index: /trunk/Source/JavaScriptCore/heap/JITStubRoutineSet.h
+===================================================================
+--- /trunk/Source/JavaScriptCore/heap/JITStubRoutineSet.h	(revision 123106)
++++ /trunk/Source/JavaScriptCore/heap/JITStubRoutineSet.h	(revision 123107)
+@@ -29,6 +29,4 @@
+ #include <wtf/Platform.h>
+ 
+-#if ENABLE(JIT)
+-
+ #include "JITStubRoutine.h"
+ #include <wtf/FastAllocBase.h>
+@@ -40,4 +38,6 @@
+ class GCAwareJITStubRoutine;
+ class SlotVisitor;
++
++#if ENABLE(JIT)
+ 
+ class JITStubRoutineSet {
+@@ -73,7 +73,24 @@
+ };
+ 
++#else // !ENABLE(JIT)
++
++class JITStubRoutineSet {
++    WTF_MAKE_NONCOPYABLE(JITStubRoutineSet);
++    WTF_MAKE_FAST_ALLOCATED;
++    
++public:
++    JITStubRoutineSet() { }
++    ~JITStubRoutineSet() { }
++
++    void add(GCAwareJITStubRoutine*) { }
++    void clearMarks() { }
++    void mark(void*) { }
++    void deleteUnmarkedJettisonedStubRoutines() { }
++    void traceMarkedStubRoutines(SlotVisitor&) { }
++};
++
++#endif // !ENABLE(JIT)
++
+ } // namespace JSC
+-
+-#endif // ENABLE(JIT)
+ 
+ #endif // JITStubRoutineSet_h
diff --git a/webkit-1.9.5-new-bison.patch b/webkit-1.9.5-new-bison.patch
new file mode 100644
index 0000000..133e53f
--- /dev/null
+++ b/webkit-1.9.5-new-bison.patch
@@ -0,0 +1,487 @@
+http://trac.webkit.org/changeset/124099
+fixes build.
+https://bugs.webkit.org/show_bug.cgi?id=92264
+
+Index: /trunk/Source/WebCore/css/CSSParser.cpp
+===================================================================
+--- /trunk/Source/WebCore/css/CSSParser.cpp	(revision 124098)
++++ /trunk/Source/WebCore/css/CSSParser.cpp	(revision 124099)
+@@ -115,5 +115,5 @@
+ #endif
+ 
+-extern int cssyyparse(void* parser);
++extern int cssyyparse(WebCore::CSSParser*);
+ 
+ using namespace std;
+Index: /trunk/Source/WebCore/css/CSSGrammar.y
+===================================================================
+--- /trunk/Source/WebCore/css/CSSGrammar.y	(revision 124098)
++++ /trunk/Source/WebCore/css/CSSGrammar.y	(revision 124099)
+@@ -54,11 +54,10 @@
+ #define YYDEBUG 0
+ 
+-// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x
+-#define YYPARSE_PARAM parser
+-#define YYLEX_PARAM parser
+-
+ %}
+ 
+ %pure_parser
++
++%parse-param { CSSParser* parser }
++%lex-param { CSSParser* parser }
+ 
+ %union {
+@@ -90,5 +89,5 @@
+ %{
+ 
+-static inline int cssyyerror(const char*)
++static inline int cssyyerror(void*, const char*)
+ {
+     return 1;
+Index: /trunk/Source/WebCore/xml/XPathParser.cpp
+===================================================================
+--- /trunk/Source/WebCore/xml/XPathParser.cpp	(revision 124098)
++++ /trunk/Source/WebCore/xml/XPathParser.cpp	(revision 124099)
+@@ -33,22 +33,19 @@
+ #include "XPathException.h"
+ #include "XPathNSResolver.h"
++#include "XPathPath.h"
+ #include "XPathStep.h"
+ #include <wtf/StdLibExtras.h>
+ #include <wtf/text/StringHash.h>
+ 
+-int xpathyyparse(void*);
+-
++using namespace WebCore;
+ using namespace WTF;
+ using namespace Unicode;
+-
+-namespace WebCore {
+-namespace XPath {
+-
+-class LocationPath;
+-
+-#include "XPathGrammar.h"    
++using namespace XPath;
++
++extern int xpathyyparse(WebCore::XPath::Parser*);
++#include "XPathGrammar.h"
+ 
+ Parser* Parser::currentParser = 0;
+-    
++
+ enum XMLCat { NameStart, NameCont, NotPartOfName };
+ 
+@@ -631,4 +628,2 @@
+ }
+ 
+-}
+-}
+Index: /trunk/Source/WebCore/xml/XPathGrammar.y
+===================================================================
+--- /trunk/Source/WebCore/xml/XPathGrammar.y	(revision 124098)
++++ /trunk/Source/WebCore/xml/XPathGrammar.y	(revision 124099)
+@@ -35,4 +35,5 @@
+ #include "XPathPath.h"
+ #include "XPathPredicate.h"
++#include "XPathStep.h"
+ #include "XPathVariableReference.h"
+ #include <wtf/FastMalloc.h>
+@@ -45,6 +46,4 @@
+ #define YYDEBUG 0
+ #define YYMAXDEPTH 10000
+-#define YYPARSE_PARAM parserParameter
+-#define PARSER static_cast<Parser*>(parserParameter)
+ 
+ using namespace WebCore;
+@@ -54,4 +53,5 @@
+ 
+ %pure_parser
++%parse-param { WebCore::XPath::Parser* parser }
+ 
+ %union
+@@ -72,5 +72,5 @@
+ 
+ static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }
+-static void xpathyyerror(const char*) { }
++static void xpathyyerror(void*, const char*) { }
+     
+ %}
+@@ -119,5 +119,5 @@
+     OrExpr
+     {
+-        PARSER->m_topExpr = $1;
++        parser->m_topExpr = $1;
+     }
+     ;
+@@ -139,5 +139,5 @@
+     {
+         $$ = new LocationPath;
+-        PARSER->registerParseNode($$);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -151,5 +151,5 @@
+         $$ = $2;
+         $$->insertFirstStep($1);
+-        PARSER->unregisterParseNode($1);
++        parser->unregisterParseNode($1);
+     }
+     ;
+@@ -160,6 +160,6 @@
+         $$ = new LocationPath;
+         $$->appendStep($1);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -167,5 +167,5 @@
+     {
+         $$->appendStep($3);
+-        PARSER->unregisterParseNode($3);
++        parser->unregisterParseNode($3);
+     }
+     |
+@@ -174,6 +174,6 @@
+         $$->appendStep($2);
+         $$->appendStep($3);
+-        PARSER->unregisterParseNode($2);
+-        PARSER->unregisterParseNode($3);
++        parser->unregisterParseNode($2);
++        parser->unregisterParseNode($3);
+     }
+     ;
+@@ -184,9 +184,9 @@
+         if ($2) {
+             $$ = new Step(Step::ChildAxis, *$1, *$2);
+-            PARSER->deletePredicateVector($2);
++            parser->deletePredicateVector($2);
+         } else
+             $$ = new Step(Step::ChildAxis, *$1);
+-        PARSER->deleteNodeTest($1);
+-        PARSER->registerParseNode($$);
++        parser->deleteNodeTest($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -195,6 +195,6 @@
+         String localName;
+         String namespaceURI;
+-        if (!PARSER->expandQName(*$1, localName, namespaceURI)) {
+-            PARSER->m_gotNamespaceError = true;
++        if (!parser->expandQName(*$1, localName, namespaceURI)) {
++            parser->m_gotNamespaceError = true;
+             YYABORT;
+         }
+@@ -202,9 +202,9 @@
+         if ($2) {
+             $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$2);
+-            PARSER->deletePredicateVector($2);
++            parser->deletePredicateVector($2);
+         } else
+             $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));
+-        PARSER->deleteString($1);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -213,9 +213,9 @@
+         if ($3) {
+             $$ = new Step($1, *$2, *$3);
+-            PARSER->deletePredicateVector($3);
++            parser->deletePredicateVector($3);
+         } else
+             $$ = new Step($1, *$2);
+-        PARSER->deleteNodeTest($2);
+-        PARSER->registerParseNode($$);
++        parser->deleteNodeTest($2);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -224,6 +224,6 @@
+         String localName;
+         String namespaceURI;
+-        if (!PARSER->expandQName(*$2, localName, namespaceURI)) {
+-            PARSER->m_gotNamespaceError = true;
++        if (!parser->expandQName(*$2, localName, namespaceURI)) {
++            parser->m_gotNamespaceError = true;
+             YYABORT;
+         }
+@@ -231,9 +231,9 @@
+         if ($3) {
+             $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$3);
+-            PARSER->deletePredicateVector($3);
++            parser->deletePredicateVector($3);
+         } else
+             $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));
+-        PARSER->deleteString($2);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($2);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -260,6 +260,6 @@
+             $$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest);
+ 
+-        PARSER->deleteString($1);
+-        PARSER->registerNodeTest($$);
++        parser->deleteString($1);
++        parser->registerNodeTest($$);
+     }
+     |
+@@ -267,6 +267,6 @@
+     {
+         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);
+-        PARSER->deleteString($1);        
+-        PARSER->registerNodeTest($$);
++        parser->deleteString($1);
++        parser->registerNodeTest($$);
+     }
+     |
+@@ -274,7 +274,7 @@
+     {
+         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace());
+-        PARSER->deleteString($1);        
+-        PARSER->deleteString($3);
+-        PARSER->registerNodeTest($$);
++        parser->deleteString($1);
++        parser->deleteString($3);
++        parser->registerNodeTest($$);
+     }
+     ;
+@@ -294,6 +294,6 @@
+         $$ = new Vector<Predicate*>;
+         $$->append(new Predicate($1));
+-        PARSER->unregisterParseNode($1);
+-        PARSER->registerPredicateVector($$);
++        parser->unregisterParseNode($1);
++        parser->registerPredicateVector($$);
+     }
+     |
+@@ -301,5 +301,5 @@
+     {
+         $$->append(new Predicate($2));
+-        PARSER->unregisterParseNode($2);
++        parser->unregisterParseNode($2);
+     }
+     ;
+@@ -316,5 +316,5 @@
+     {
+         $$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
+-        PARSER->registerParseNode($$);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -324,5 +324,5 @@
+     {
+         $$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
+-        PARSER->registerParseNode($$);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -330,5 +330,5 @@
+     {
+         $$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
+-        PARSER->registerParseNode($$);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -338,6 +338,6 @@
+     {
+         $$ = new VariableReference(*$1);
+-        PARSER->deleteString($1);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -350,6 +350,6 @@
+     {
+         $$ = new StringExpression(*$1);
+-        PARSER->deleteString($1);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -357,6 +357,6 @@
+     {
+         $$ = new Number($1->toDouble());
+-        PARSER->deleteString($1);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -370,6 +370,6 @@
+         if (!$$)
+             YYABORT;
+-        PARSER->deleteString($1);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($1);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -379,7 +379,7 @@
+         if (!$$)
+             YYABORT;
+-        PARSER->deleteString($1);
+-        PARSER->deleteExpressionVector($3);
+-        PARSER->registerParseNode($$);
++        parser->deleteString($1);
++        parser->deleteExpressionVector($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -390,6 +390,6 @@
+         $$ = new Vector<Expression*>;
+         $$->append($1);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->registerExpressionVector($$);
++        parser->unregisterParseNode($1);
++        parser->registerExpressionVector($$);
+     }
+     |
+@@ -397,5 +397,5 @@
+     {
+         $$->append($3);
+-        PARSER->unregisterParseNode($3);
++        parser->unregisterParseNode($3);
+     }
+     ;
+@@ -413,7 +413,7 @@
+         $$->addSubExpression($1);
+         $$->addSubExpression($3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -431,7 +431,7 @@
+         $3->setAbsolute(true);
+         $$ = new Path(static_cast<Filter*>($1), $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -441,8 +441,8 @@
+         $3->setAbsolute(true);
+         $$ = new Path(static_cast<Filter*>($1), $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($2);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($2);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -454,7 +454,7 @@
+     {
+         $$ = new Filter($1, *$2);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->deletePredicateVector($2);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->deletePredicateVector($2);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -466,7 +466,7 @@
+     {
+         $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -478,7 +478,7 @@
+     {
+         $$ = new LogicalOp(LogicalOp::OP_And, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -490,7 +490,7 @@
+     {
+         $$ = new EqTestOp($2, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -502,7 +502,7 @@
+     {
+         $$ = new EqTestOp($2, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -514,7 +514,7 @@
+     {
+         $$ = new NumericOp(NumericOp::OP_Add, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     |
+@@ -522,7 +522,7 @@
+     {
+         $$ = new NumericOp(NumericOp::OP_Sub, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -534,7 +534,7 @@
+     {
+         $$ = new NumericOp($2, $1, $3);
+-        PARSER->unregisterParseNode($1);
+-        PARSER->unregisterParseNode($3);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($1);
++        parser->unregisterParseNode($3);
++        parser->registerParseNode($$);
+     }
+     ;
+@@ -547,6 +547,6 @@
+         $$ = new Negative;
+         $$->addSubExpression($2);
+-        PARSER->unregisterParseNode($2);
+-        PARSER->registerParseNode($$);
++        parser->unregisterParseNode($2);
++        parser->registerParseNode($$);
+     }
+     ;
diff --git a/webkitgtk3.spec b/webkitgtk3.spec
index 67b5398..e1a0f5f 100644
--- a/webkitgtk3.spec
+++ b/webkitgtk3.spec
@@ -7,7 +7,7 @@
 
 Name:           webkitgtk3
 Version:        1.9.5
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        GTK+ Web content engine library
 
 Group:          Development/Libraries
@@ -18,6 +18,8 @@ Source0:        http://webkitgtk.org/releases/webkit-%{version}.tar.xz
 
 Patch1:         webkit-1.3.4-no-execmem.patch
 Patch2:         webkit-1.1.14-nspluginwrapper.patch
+Patch3:         webkit-1.9.5-compile-without-jit.patch
+Patch4:         webkit-1.9.5-new-bison.patch
 
 BuildRequires:  bison
 BuildRequires:  chrpath
@@ -84,6 +86,8 @@ This package contains developer documentation for %{name}.
 # tbzatek - doesn't apply, is this fixed?
 # %patch1 -p1 -b .no-execmem
 %patch2 -p1 -b .nspluginwrapper
+%patch3 -p2 -b .nojit
+%patch4 -p2 -b .bison
 
 %build
 %ifarch s390 %{arm} ppc
@@ -195,6 +199,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
 
 
 %changelog
+* Thu Aug  9 2012 Daniel Drake <dsd at laptop.org> - 1.9.5-2
+- Add upstream patch to fix build without JIT (#843428)
+- Add upstream patch to fix build with latest gcc/bison
+
 * Wed Jul 18 2012 Kalev Lember <kalevlember at gmail.com> - 1.9.5-1
 - Update to 1.9.5
 - Build with -g1 to avoid running into 4 GB ar format limit


More information about the scm-commits mailing list