summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrew Childs <lorne@cons.org.nz>2018-03-16 00:51:20 +0900
committerTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2018-03-20 00:20:42 +0200
commit3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4 (patch)
tree66df4fdce94f5a4ca4a5c868fa9ce2c565342264
parentbca15c5331490149f9788498f08ceba417e327a6 (diff)
downloadnixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.tar
nixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.tar.gz
nixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.tar.bz2
nixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.tar.lz
nixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.tar.xz
nixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.tar.zst
nixlib-3928fd90814fb8d7ef0bab19f40b6a619c7cd8c4.zip
Chromium: fix skia build on aarch64
Patch imported from Arch Linux ARM
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix5
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch22
2 files changed, 26 insertions, 1 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index def771c2f720..44310b054628 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -176,7 +176,10 @@ let
       (githubPatch "ba4141e451f4e0b1b19410b1b503bd32e150df06" "1cjxw1f9fin6z12b0mcxnxf2mdjb0n3chwz7mgvmp9yij8qhqnxj")
       (githubPatch "b34ed1e6524479d61ee944ebf6ca7389ea47e563" "1s13zw93nsyr259dzck6gbhg4x46qg5sg14djf4bvrrc6hlkiczw")
       (githubPatch "4f2b52281ce1649ea8347489443965ad33262ecc" "1g59izkicn9cpcphamdgrijs306h5b9i7i4pmy134asn1ifiax5z")
-    ] ++ optional enableWideVine ./patches/widevine.patch;
+    ] ++ optional enableWideVine ./patches/widevine.patch
+      ++ optionals (stdenv.isAarch64 && versionRange "65" "66") [
+        ./patches/skia_buildfix.patch
+    ];
 
     postPatch = ''
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
diff --git a/pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch b/pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch
new file mode 100644
index 000000000000..5348b9ac905b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch
@@ -0,0 +1,22 @@
+Index: chromium-browser-65.0.3325.73/third_party/skia/src/jumper/SkJumper_stages.cpp
+===================================================================
+--- chromium-browser-65.0.3325.73.orig/third_party/skia/src/jumper/SkJumper_stages.cpp
++++ chromium-browser-65.0.3325.73/third_party/skia/src/jumper/SkJumper_stages.cpp
+@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) {
+ }
+ 
+ SI F from_half(U16 h) {
+-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
++#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
+     return vcvt_f32_f16(h);
+ 
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
+@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
+ }
+ 
+ SI U16 to_half(F f) {
+-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
++#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
+     return vcvt_f16_f32(f);
+ 
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)