aboutsummaryrefslogtreecommitdiffstats
path: root/testing/firefox
diff options
context:
space:
mode:
authorRasmus Thomsen <oss@cogitri.dev>2020-02-12 19:21:45 +0100
committerRasmus Thomsen <oss@cogitri.dev>2020-02-13 11:28:20 +0100
commita5629806fae1b574c63dff3203fdbbe26b83309d (patch)
treefbdf5c3aab34dfea33725d28d56481a1c79b83e6 /testing/firefox
parent7b9b439636ef6ed6702e0e3c393782b6c6ec5106 (diff)
downloadaports-a5629806fae1b574c63dff3203fdbbe26b83309d.tar.bz2
aports-a5629806fae1b574c63dff3203fdbbe26b83309d.tar.xz
testing/firefox: fix build on armv7 and aarch64 with upstream patch
Diffstat (limited to 'testing/firefox')
-rw-r--r--testing/firefox/APKBUILD5
-rw-r--r--testing/firefox/b3d8b08265b800165d684281d19ac845a8ff9a66.patch46
2 files changed, 49 insertions, 2 deletions
diff --git a/testing/firefox/APKBUILD b/testing/firefox/APKBUILD
index 887fb0fc4d..02b1b91394 100644
--- a/testing/firefox/APKBUILD
+++ b/testing/firefox/APKBUILD
@@ -6,8 +6,7 @@ pkgver=73.0
pkgrel=0
pkgdesc="Firefox web browser"
url="https://www.firefox.com/"
-arch="all !s390x !armhf !armv7 !aarch64" # limited by rust and cargo, build failure on armhf due to wasm
-# aarch64/armv7: cannot convert 'uint16x8_t' {aka '__vector(8) short unsigned int'} to 'uint8x16_t' {aka '__vector(16) unsigned char'}
+arch="all !s390x !armhf" # limited by rust and cargo, build failure on armhf due to wasm
license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0"
makedepends="
alsa-lib-dev
@@ -65,6 +64,7 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
rust_audio-thread-priority.patch
fd6847c9416f9eebde636e21d794d25d1be8791d.patch
allow-custom-rust-vendor.patch
+ b3d8b08265b800165d684281d19ac845a8ff9a66.patch
x86_64-alpine-linux-musl.json
firefox.desktop
@@ -269,6 +269,7 @@ d35cacb9ede80e6bfbef0709823e536dddfb1c02d776275b0b7adb5969e9927d8c6117df96873569
18098bae18ce9ead6bca0d93d28e634495fa08a4c0707057f72a9e34205a64a0ce5ab98a4cfc2d492412725b14447eb9553b2976d9620c3d71eba2135c6ba211 rust_audio-thread-priority.patch
60845dcb034b2c4459c30f7d5f25c8176cf42df794e2cc0e86c3e2abb6541c24b962f3a16ca70a288d4d6f377b68d00b2904b22463108559612053d835d9bff1 fd6847c9416f9eebde636e21d794d25d1be8791d.patch
8487a7f1936d493f0429ebbf579469471542fccce3a842803ade3fa76200b0e831a176aff9c8072da17932d01923cfc050611041e3e9e429b25995b9a07bd3cf allow-custom-rust-vendor.patch
+81647de16c8d2959068c36d08244a7a067bedf04e18d04da9201aae884ea15948cae1760b6985b4bd9c13e90b03b2ccc89bb10105712382bc728f070e4f780bb b3d8b08265b800165d684281d19ac845a8ff9a66.patch
0dfa633abf3f411c90a030c46ee7f8fdde6fdd9f3a0c493599a58633e09b183d6c04590fc1984256e514c1da4f72f43dde3f5dbceef888b08262952b4f894919 x86_64-alpine-linux-musl.json
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop"
diff --git a/testing/firefox/b3d8b08265b800165d684281d19ac845a8ff9a66.patch b/testing/firefox/b3d8b08265b800165d684281d19ac845a8ff9a66.patch
new file mode 100644
index 0000000000..873f4c3ad4
--- /dev/null
+++ b/testing/firefox/b3d8b08265b800165d684281d19ac845a8ff9a66.patch
@@ -0,0 +1,46 @@
+
+# HG changeset patch
+# User Andrew Osmond <aosmond@mozilla.com>
+# Date 1579706360 0
+# Node ID b3d8b08265b800165d684281d19ac845a8ff9a66
+# Parent 50c371b37a9fcd994a5866db73bd0d078e19f95d
+Bug 1610814 - Fix NEON compile error with gcc and RGB unpacking. r=lsalzman
+
+This patch makes us use the correct intrinsic for loading a uint8x16
+register. It is not entirely clear why clang accepts this without
+complaint but beyond the types, it should be equivalent.
+
+Differential Revision: https://phabricator.services.mozilla.com/D60667
+
+diff --git a/gfx/2d/SwizzleNEON.cpp b/gfx/2d/SwizzleNEON.cpp
+--- a/gfx/2d/SwizzleNEON.cpp
++++ b/gfx/2d/SwizzleNEON.cpp
+@@ -407,25 +407,25 @@ void UnpackRowRGB24_NEON(const uint8_t*
+ }
+
+ uint8x16_t alpha = vreinterpretq_u8_u32(vdupq_n_u32(0xFF000000));
+
+ // Process all 4-pixel chunks as one vector.
+ src -= 4 * 3;
+ dst -= 4 * 4;
+ while (src >= aSrc) {
+- uint8x16_t px = vld1q_u16(reinterpret_cast<const uint16_t*>(src));
++ uint8x16_t px = vld1q_u8(src);
+ // G2R2B1G1 R1B0G0R0 -> X1R1G1B1 X0R0G0B0
+ uint8x8_t pxlo = vtbl1_u8(vget_low_u8(px), masklo);
+ // B3G3R3B2 G2R2B1G1 -> X3R3G3B3 X2R2G2B2
+ uint8x8_t pxhi =
+ vtbl1_u8(vext_u8(vget_low_u8(px), vget_high_u8(px), 4), maskhi);
+ px = vcombine_u8(pxlo, pxhi);
+ px = vorrq_u8(px, alpha);
+- vst1q_u16(reinterpret_cast<uint16_t*>(dst), px);
++ vst1q_u8(dst, px);
+ src -= 4 * 3;
+ dst -= 4 * 4;
+ }
+ }
+
+ // Force instantiation of swizzle variants here.
+ template void UnpackRowRGB24_NEON<false>(const uint8_t*, uint8_t*, int32_t);
+ template void UnpackRowRGB24_NEON<true>(const uint8_t*, uint8_t*, int32_t);
+