extra/chromium build fixes

This commit is contained in:
Kevin Mihelich 2013-06-21 16:51:19 +00:00
parent 12edc6efdc
commit ee5bbb2bf4
5 changed files with 58 additions and 600 deletions

View file

@ -12,13 +12,13 @@
# - removed NaCl, not for ARM
# - adjusted gyp flags for v7h
# - use system ffmpeg, added ffmpeg to depends
# - patch to fix webrtc code for non-android ARM
#
# moonman <moonman [dot] ca [at] gmail [dot] com>
# -added armv6 support
buildarch=20
highmem=1
noautobuild=1
pkgname=chromium
pkgver=28.0.1500.52
@ -43,13 +43,13 @@ source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgna
chromium.default
chromium.sh
chromium-system-harfbuzz-r0.patch
die-sysroot-die.patch)
arm-webrtc-fix.patch)
sha256sums=('7b3cbfbb9e5b9d21ffab23d39173611ddb0ba49488795b6db46a62be354518b4'
'09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
'478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9'
'2bc4cf17adac9864f4e832e57247984f28fce171d3699c0fc2c3596d1ab20386'
'66705264d9e679a58ed522b4475a06c8a5a4fe52a709c537b1a7d5aa43fb6c84')
'222ec0db5d40b02e4ebbde8a1f1c5de3f0579e51836be87be138c44f8487d0ce')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
@ -63,8 +63,8 @@ _google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
prepare() {
cd "$srcdir/$pkgname-$pkgver"
# Remove ARM sysroot garbage
patch -Np1 -i "$srcdir/die-sysroot-die.patch"
# Fix WebRTC for ARM
patch -Np2 -i "$srcdir/arm-webrtc-fix.patch"
# Fix build with system harfbuzz (patch from Gentoo)
patch -Np1 -i "$srcdir/chromium-system-harfbuzz-r0.patch"
@ -150,7 +150,7 @@ fi
-Ddisable_nacl=1
-Dv8_use_arm_eabi_hardfloat=true
-Darm_float_abi=hard
-Denable_webrtc=0
-Dsysroot=
${arch_specific_flags})
build/linux/unbundle/replace_gyp_files.py "${_chromium_conf[@]}"
@ -194,5 +194,3 @@ package() {
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}
# vim:set ts=2 sw=2 et:

View file

@ -0,0 +1,52 @@
Index: b/src/third_party/webrtc/system_wrappers/source/cpu_features.cc
===================================================================
--- a/src/third_party/webrtc/system_wrappers/source/cpu_features.cc
+++ b/src/third_party/webrtc/system_wrappers/source/cpu_features.cc
@@ -18,6 +18,47 @@
#include "typedefs.h"
+#include <elf.h>
+#ifdef __arm__
+#include <fcntl.h>
+#include <unistd.h>
+#include <linux/auxvec.h>
+#include <asm/hwcap.h>
+#endif
+
+#ifdef __arm__
+uint64_t WebRtc_GetCPUFeaturesARM() {
+ static bool detected = false;
+ static uint64_t have_neon = 0;
+
+ int fd;
+ Elf32_auxv_t auxv;
+ unsigned int hwcaps;
+
+ if (!detected) {
+ int fd;
+ Elf32_auxv_t auxv;
+ unsigned int hwcaps;
+
+ fd = open("/proc/self/auxv", O_RDONLY);
+ if (fd >= 0) {
+ while (read(fd, &auxv, sizeof(Elf32_auxv_t)) == sizeof(Elf32_auxv_t)) {
+ if (auxv.a_type == AT_HWCAP) {
+ have_neon = (auxv.a_un.a_val & HWCAP_NEON) ? kCPUFeatureNEON : 0;
+ break;
+ }
+ }
+ close (fd);
+ } else {
+ have_neon = 0;
+ }
+ detected = true;
+ }
+
+ return 0 | have_neon; // others here as we need them
+}
+#endif
+
// No CPU feature is available => straight C path.
int GetCPUInfoNoASM(CPUFeature feature) {
(void)feature;

View file

@ -1,554 +0,0 @@
diff --git a/Source/WebCore/css/CSSGrammar.y b/Source/WebCore/css/CSSGrammar.y
index c7c10b541cd46ad4febc6efe289e81b2cfb0861e..1c604e76b4da4cc65f395bc4a73b112561bd5c84 100644
--- a/Source/WebCore/css/CSSGrammar.y
+++ b/Source/WebCore/css/CSSGrammar.y
@@ -53,14 +53,13 @@ using namespace HTMLNames;
#define YYMAXDEPTH 10000
#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 {
bool boolean;
char character;
@@ -89,7 +88,7 @@ using namespace HTMLNames;
%{
-static inline int cssyyerror(const char*)
+static inline int cssyyerror(void*, const char*)
{
return 1;
}
diff --git a/Source/WebCore/css/CSSParser.cpp b/Source/WebCore/css/CSSParser.cpp
index 650844060477cfc6ea6fdeaf11ec63b34ac646e7..8369549dbff25537cf93a11237a9bbbac4fe50f2 100644
--- a/Source/WebCore/css/CSSParser.cpp
+++ b/Source/WebCore/css/CSSParser.cpp
@@ -114,7 +114,7 @@
extern int cssyydebug;
#endif
-extern int cssyyparse(void* parser);
+extern int cssyyparse(WebCore::CSSParser*);
using namespace std;
using namespace WTF;
diff --git a/Source/WebCore/xml/XPathGrammar.y b/Source/WebCore/xml/XPathGrammar.y
index 2eba5b35bd2338272a0f4ec756d137e47d2d59c8..d558211db2d89ea13716762a51397755560f66f3 100644
--- a/Source/WebCore/xml/XPathGrammar.y
+++ b/Source/WebCore/xml/XPathGrammar.y
@@ -34,6 +34,7 @@
#include "XPathParser.h"
#include "XPathPath.h"
#include "XPathPredicate.h"
+#include "XPathStep.h"
#include "XPathVariableReference.h"
#include <wtf/FastMalloc.h>
@@ -44,8 +45,6 @@
#define YYLTYPE_IS_TRIVIAL 1
#define YYDEBUG 0
#define YYMAXDEPTH 10000
-#define YYPARSE_PARAM parserParameter
-#define PARSER static_cast<Parser*>(parserParameter)
using namespace WebCore;
using namespace XPath;
@@ -53,6 +52,7 @@ using namespace XPath;
%}
%pure_parser
+%parse-param { WebCore::XPath::Parser* parser }
%union
{
@@ -71,7 +71,7 @@ using namespace XPath;
%{
static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }
-static void xpathyyerror(const char*) { }
+static void xpathyyerror(void*, const char*) { }
%}
@@ -118,7 +118,7 @@ static void xpathyyerror(const char*) { }
Expr:
OrExpr
{
- PARSER->m_topExpr = $1;
+ parser->m_topExpr = $1;
}
;
@@ -138,7 +138,7 @@ AbsoluteLocationPath:
'/'
{
$$ = new LocationPath;
- PARSER->registerParseNode($$);
+ parser->registerParseNode($$);
}
|
'/' RelativeLocationPath
@@ -150,7 +150,7 @@ AbsoluteLocationPath:
{
$$ = $2;
$$->insertFirstStep($1);
- PARSER->unregisterParseNode($1);
+ parser->unregisterParseNode($1);
}
;
@@ -159,22 +159,22 @@ RelativeLocationPath:
{
$$ = new LocationPath;
$$->appendStep($1);
- PARSER->unregisterParseNode($1);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->registerParseNode($$);
}
|
RelativeLocationPath '/' Step
{
$$->appendStep($3);
- PARSER->unregisterParseNode($3);
+ parser->unregisterParseNode($3);
}
|
RelativeLocationPath DescendantOrSelf Step
{
$$->appendStep($2);
$$->appendStep($3);
- PARSER->unregisterParseNode($2);
- PARSER->unregisterParseNode($3);
+ parser->unregisterParseNode($2);
+ parser->unregisterParseNode($3);
}
;
@@ -183,58 +183,58 @@ Step:
{
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($$);
}
|
NAMETEST OptionalPredicateList
{
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;
}
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($$);
}
|
AxisSpecifier NodeTest OptionalPredicateList
{
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($$);
}
|
AxisSpecifier NAMETEST OptionalPredicateList
{
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;
}
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($$);
}
|
AbbreviatedStep
@@ -259,23 +259,23 @@ NodeTest:
else if (*$1 == "comment")
$$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest);
- PARSER->deleteString($1);
- PARSER->registerNodeTest($$);
+ parser->deleteString($1);
+ parser->registerNodeTest($$);
}
|
PI '(' ')'
{
$$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);
- PARSER->deleteString($1);
- PARSER->registerNodeTest($$);
+ parser->deleteString($1);
+ parser->registerNodeTest($$);
}
|
PI '(' LITERAL ')'
{
$$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace());
- PARSER->deleteString($1);
- PARSER->deleteString($3);
- PARSER->registerNodeTest($$);
+ parser->deleteString($1);
+ parser->deleteString($3);
+ parser->registerNodeTest($$);
}
;
@@ -293,14 +293,14 @@ PredicateList:
{
$$ = new Vector<Predicate*>;
$$->append(new Predicate($1));
- PARSER->unregisterParseNode($1);
- PARSER->registerPredicateVector($$);
+ parser->unregisterParseNode($1);
+ parser->registerPredicateVector($$);
}
|
PredicateList Predicate
{
$$->append(new Predicate($2));
- PARSER->unregisterParseNode($2);
+ parser->unregisterParseNode($2);
}
;
@@ -315,7 +315,7 @@ DescendantOrSelf:
SLASHSLASH
{
$$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
- PARSER->registerParseNode($$);
+ parser->registerParseNode($$);
}
;
@@ -323,13 +323,13 @@ AbbreviatedStep:
'.'
{
$$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
- PARSER->registerParseNode($$);
+ parser->registerParseNode($$);
}
|
DOTDOT
{
$$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
- PARSER->registerParseNode($$);
+ parser->registerParseNode($$);
}
;
@@ -337,8 +337,8 @@ PrimaryExpr:
VARIABLEREFERENCE
{
$$ = new VariableReference(*$1);
- PARSER->deleteString($1);
- PARSER->registerParseNode($$);
+ parser->deleteString($1);
+ parser->registerParseNode($$);
}
|
'(' Expr ')'
@@ -349,15 +349,15 @@ PrimaryExpr:
LITERAL
{
$$ = new StringExpression(*$1);
- PARSER->deleteString($1);
- PARSER->registerParseNode($$);
+ parser->deleteString($1);
+ parser->registerParseNode($$);
}
|
NUMBER
{
$$ = new Number($1->toDouble());
- PARSER->deleteString($1);
- PARSER->registerParseNode($$);
+ parser->deleteString($1);
+ parser->registerParseNode($$);
}
|
FunctionCall
@@ -369,8 +369,8 @@ FunctionCall:
$$ = createFunction(*$1);
if (!$$)
YYABORT;
- PARSER->deleteString($1);
- PARSER->registerParseNode($$);
+ parser->deleteString($1);
+ parser->registerParseNode($$);
}
|
FUNCTIONNAME '(' ArgumentList ')'
@@ -378,9 +378,9 @@ FunctionCall:
$$ = createFunction(*$1, *$3);
if (!$$)
YYABORT;
- PARSER->deleteString($1);
- PARSER->deleteExpressionVector($3);
- PARSER->registerParseNode($$);
+ parser->deleteString($1);
+ parser->deleteExpressionVector($3);
+ parser->registerParseNode($$);
}
;
@@ -389,14 +389,14 @@ ArgumentList:
{
$$ = new Vector<Expression*>;
$$->append($1);
- PARSER->unregisterParseNode($1);
- PARSER->registerExpressionVector($$);
+ parser->unregisterParseNode($1);
+ parser->registerExpressionVector($$);
}
|
ArgumentList ',' Argument
{
$$->append($3);
- PARSER->unregisterParseNode($3);
+ parser->unregisterParseNode($3);
}
;
@@ -412,9 +412,9 @@ UnionExpr:
$$ = new Union;
$$->addSubExpression($1);
$$->addSubExpression($3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -430,9 +430,9 @@ PathExpr:
{
$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($$);
}
|
FilterExpr DescendantOrSelf RelativeLocationPath
@@ -440,10 +440,10 @@ PathExpr:
$3->insertFirstStep($2);
$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($$);
}
;
@@ -453,9 +453,9 @@ FilterExpr:
PrimaryExpr PredicateList
{
$$ = new Filter($1, *$2);
- PARSER->unregisterParseNode($1);
- PARSER->deletePredicateVector($2);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->deletePredicateVector($2);
+ parser->registerParseNode($$);
}
;
@@ -465,9 +465,9 @@ OrExpr:
OrExpr OR AndExpr
{
$$ = new LogicalOp(LogicalOp::OP_Or, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -477,9 +477,9 @@ AndExpr:
AndExpr AND EqualityExpr
{
$$ = new LogicalOp(LogicalOp::OP_And, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -489,9 +489,9 @@ EqualityExpr:
EqualityExpr EQOP RelationalExpr
{
$$ = new EqTestOp($2, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -501,9 +501,9 @@ RelationalExpr:
RelationalExpr RELOP AdditiveExpr
{
$$ = new EqTestOp($2, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -513,17 +513,17 @@ AdditiveExpr:
AdditiveExpr PLUS MultiplicativeExpr
{
$$ = new NumericOp(NumericOp::OP_Add, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
|
AdditiveExpr MINUS MultiplicativeExpr
{
$$ = new NumericOp(NumericOp::OP_Sub, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -533,9 +533,9 @@ MultiplicativeExpr:
MultiplicativeExpr MULOP UnaryExpr
{
$$ = new NumericOp($2, $1, $3);
- PARSER->unregisterParseNode($1);
- PARSER->unregisterParseNode($3);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($1);
+ parser->unregisterParseNode($3);
+ parser->registerParseNode($$);
}
;
@@ -546,8 +546,8 @@ UnaryExpr:
{
$$ = new Negative;
$$->addSubExpression($2);
- PARSER->unregisterParseNode($2);
- PARSER->registerParseNode($$);
+ parser->unregisterParseNode($2);
+ parser->registerParseNode($$);
}
;
diff --git a/Source/WebCore/xml/XPathParser.cpp b/Source/WebCore/xml/XPathParser.cpp
index 62d8ee37fd6ebb74a580a00c59beb6cd40c5a8b7..b5e6a9237593b4aaa2a243f2ff9d86e57f930a97 100644
--- a/Source/WebCore/xml/XPathParser.cpp
+++ b/Source/WebCore/xml/XPathParser.cpp
@@ -32,24 +32,21 @@
#include "XPathEvaluator.h"
#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;
+using namespace XPath;
-namespace WebCore {
-namespace XPath {
-
-class LocationPath;
-
-#include "XPathGrammar.h"
+extern int xpathyyparse(WebCore::XPath::Parser*);
+#include "XPathGrammar.h"
Parser* Parser::currentParser = 0;
-
+
enum XMLCat { NameStart, NameCont, NotPartOfName };
typedef HashMap<String, Step::Axis> AxisNamesMap;
@@ -630,5 +627,3 @@ void Parser::deleteNodeTest(Step::NodeTest* t)
delete t;
}
-}
-}

View file

@ -1,27 +0,0 @@
Index: chrome/browser/extensions/lazy_background_task_queue.cc
diff --git a/chrome/browser/extensions/lazy_background_task_queue.cc b/chrome/browser/extensions/lazy_background_task_queue.cc
index b98d44626be848a3a2db04c60ac4cb11ea981243..49bc2229325ce5ba975de4d76347a388a598e86d 100644
--- a/chrome/browser/extensions/lazy_background_task_queue.cc
+++ b/chrome/browser/extensions/lazy_background_task_queue.cc
@@ -115,14 +115,16 @@ void LazyBackgroundTaskQueue::ProcessPendingTasks(
return;
}
- PendingTasksList* tasks = map_it->second.get();
- for (PendingTasksList::const_iterator it = tasks->begin();
- it != tasks->end(); ++it) {
+ // Swap the pending tasks to a temporary, to avoid problems if the task
+ // list is modified during processing.
+ PendingTasksList tasks;
+ tasks.swap(*map_it->second);
+ for (PendingTasksList::const_iterator it = tasks.begin();
+ it != tasks.end(); ++it) {
it->Run(host);
}
- tasks->clear();
- pending_tasks_.erase(map_it);
+ pending_tasks_.erase(key);
// Balance the keepalive in AddPendingTask. Note we don't do this on a
// failure to load, because the keepalive count is reset in that case.

View file

@ -1,11 +0,0 @@
--- a/build/common.gypi 2013-01-09 07:02:00.000000000 -0700
+++ b/build/common.gypi 2013-01-11 20:09:13.380197474 -0700
@@ -594,7 +594,7 @@
'linux_use_gold_flags%': 0,
# sysroot needs to be an absolute path otherwise it generates
# incorrect results when passed to pkg-config
- 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/arm-sysroot',
+ #'sysroot%': '<!(cd <(DEPTH) && pwd -P)/arm-sysroot',
}], # OS=="linux" and target_arch=="arm" and chromeos==0
],