diff options
author | Rasmus Thomsen <oss@cogitri.dev> | 2020-02-12 19:21:45 +0100 |
---|---|---|
committer | Rasmus Thomsen <oss@cogitri.dev> | 2020-02-13 11:28:20 +0100 |
commit | a5629806fae1b574c63dff3203fdbbe26b83309d (patch) | |
tree | fbdf5c3aab34dfea33725d28d56481a1c79b83e6 /testing/firefox | |
parent | 7b9b439636ef6ed6702e0e3c393782b6c6ec5106 (diff) | |
download | aports-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/APKBUILD | 5 | ||||
-rw-r--r-- | testing/firefox/b3d8b08265b800165d684281d19ac845a8ff9a66.patch | 46 |
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); + |