diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index da1bf7ffb..f4bbfbfc2 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -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 # -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: diff --git a/extra/chromium/arm-webrtc-fix.patch b/extra/chromium/arm-webrtc-fix.patch new file mode 100644 index 000000000..757b5c52d --- /dev/null +++ b/extra/chromium/arm-webrtc-fix.patch @@ -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 ++#ifdef __arm__ ++#include ++#include ++#include ++#include ++#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; diff --git a/extra/chromium/chromium-20.0.1132.57-bison-2.6-fix.patch b/extra/chromium/chromium-20.0.1132.57-bison-2.6-fix.patch deleted file mode 100644 index 7649f8bb5..000000000 --- a/extra/chromium/chromium-20.0.1132.57-bison-2.6-fix.patch +++ /dev/null @@ -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 - -@@ -44,8 +45,6 @@ - #define YYLTYPE_IS_TRIVIAL 1 - #define YYDEBUG 0 - #define YYMAXDEPTH 10000 --#define YYPARSE_PARAM parserParameter --#define PARSER static_cast(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; - $$->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; - $$->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($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($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 - #include - --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 AxisNamesMap; -@@ -630,5 +627,3 @@ void Parser::deleteNodeTest(Step::NodeTest* t) - delete t; - } - --} --} diff --git a/extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch b/extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch deleted file mode 100644 index 081293f29..000000000 --- a/extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch +++ /dev/null @@ -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. diff --git a/extra/chromium/die-sysroot-die.patch b/extra/chromium/die-sysroot-die.patch deleted file mode 100644 index a1282a090..000000000 --- a/extra/chromium/die-sysroot-die.patch +++ /dev/null @@ -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%': '