From 4a8f66fc962eebee7dac8934c6af3f30b1d6fb5b Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Mon, 24 Feb 2020 21:45:56 +0100 Subject: Enabled aarch64, thanks to Gabriel Hojda --- ...-Fix-NEON-compile-error-with-gcc-and-RGB-.patch | 36 ++++++++++++++++++++++ firefox.spec | 8 +++-- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 Bug-1610814-Fix-NEON-compile-error-with-gcc-and-RGB-.patch diff --git a/Bug-1610814-Fix-NEON-compile-error-with-gcc-and-RGB-.patch b/Bug-1610814-Fix-NEON-compile-error-with-gcc-and-RGB-.patch new file mode 100644 index 0000000..fc35ae4 --- /dev/null +++ b/Bug-1610814-Fix-NEON-compile-error-with-gcc-and-RGB-.patch @@ -0,0 +1,36 @@ +From: Andrew Osmond +Date: Wed, 22 Jan 2020 15:19:20 +0000 +Subject: 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 +--- + gfx/2d/SwizzleNEON.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gfx/2d/SwizzleNEON.cpp b/gfx/2d/SwizzleNEON.cpp +index 6b34f76cab1..63f211ff294 100644 +--- a/gfx/2d/SwizzleNEON.cpp ++++ b/gfx/2d/SwizzleNEON.cpp +@@ -412,7 +412,7 @@ void UnpackRowRGB24_NEON(const uint8_t* aSrc, uint8_t* aDst, int32_t aLength) { + src -= 4 * 3; + dst -= 4 * 4; + while (src >= aSrc) { +- uint8x16_t px = vld1q_u16(reinterpret_cast(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 +@@ -420,7 +420,7 @@ void UnpackRowRGB24_NEON(const uint8_t* aSrc, uint8_t* aDst, int32_t aLength) { + 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(dst), px); ++ vst1q_u8(dst, px); + src -= 4 * 3; + dst -= 4 * 4; + } diff --git a/firefox.spec b/firefox.spec index b947b82..a50fa71 100644 --- a/firefox.spec +++ b/firefox.spec @@ -9,7 +9,7 @@ # Disabled due to https://pagure.io/fedora-infrastructure/issue/7581 ExcludeArch: s390x # Disabled due to neon build error -ExcludeArch: aarch64 +# ExcludeArch: aarch64 %global enable_mozilla_crashreporter 0 %ifarch x86_64 %{ix86} @@ -113,7 +113,7 @@ ExcludeArch: aarch64 Summary: Mozilla Firefox Web browser Name: firefox Version: 73.0.1 -Release: 3%{?dist} +Release: 4%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz @@ -157,6 +157,7 @@ Patch46: firefox-nss-version.patch Patch47: fedora-shebang-build.patch Patch48: build-arm-wasm.patch Patch49: build-arm-libaom.patch +Patch50: Bug-1610814-Fix-NEON-compile-error-with-gcc-and-RGB-.patch # Fedora specific patches Patch215: firefox-enable-addons.patch @@ -357,6 +358,7 @@ This package contains results of tests executed during build. %patch47 -p1 -b .fedora-shebang %patch48 -p1 -b .build-arm-wasm %patch49 -p1 -b .build-arm-libaom +%patch50 -p1 -b .build-arm-SwizzleNEON # Fedora patches %patch215 -p1 -b .addons @@ -969,7 +971,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog -* Mon Feb 24 2020 Martin Stransky - 73.0.1-3 +* Mon Feb 24 2020 Martin Stransky - 73.0.1-4 - Update pipewire patch for Fedora 32 - Added armv7hl fixes by Gabriel Hojda -- cgit