Added ARM fixes by Gabriel Hojda

This commit is contained in:
Martin Stransky 2022-07-13 14:54:04 +02:00
parent 72a660f091
commit d3ebfe3ad7
3 changed files with 72 additions and 2 deletions

View File

@ -0,0 +1,18 @@
diff -up firefox-102.0/widget/gtk/DMABufLibWrapper.cpp.vaapi firefox-102.0/widget/gtk/DMABufLibWrapper.cpp
--- firefox-102.0/widget/gtk/DMABufLibWrapper.cpp.vaapi 2022-07-01 09:49:50.215536872 +0200
+++ firefox-102.0/widget/gtk/DMABufLibWrapper.cpp 2022-07-01 09:50:43.036306610 +0200
@@ -283,10 +283,11 @@ bool nsDMABufDevice::IsDMABufTexturesEna
bool nsDMABufDevice::IsDMABufVAAPIEnabled() {
LOGDMABUF(
("nsDMABufDevice::IsDMABufVAAPIEnabled: EGL %d "
- "media_ffmpeg_vaapi_enabled %d CanUseHardwareVideoDecoding %d "
+ "CanUseHardwareVideoDecoding %d "
"XRE_IsRDDProcess %d\n",
- gfx::gfxVars::UseEGL(), StaticPrefs::media_ffmpeg_vaapi_enabled(),
- gfx::gfxVars::CanUseHardwareVideoDecoding(), XRE_IsRDDProcess()));
+ gfx::gfxVars::UseEGL(),
+ gfx::gfxVars::CanUseHardwareVideoDecoding(),
+ XRE_IsRDDProcess()));
return gfx::gfxVars::UseVAAPI() && XRE_IsRDDProcess() &&
gfx::gfxVars::CanUseHardwareVideoDecoding();
}

View File

@ -18,6 +18,7 @@
%global debug_build 0
%global system_nss 1
%global system_libevent 1
%global build_with_asan 0
%global test_on_wayland 1
@ -34,7 +35,7 @@ ExcludeArch: s390x
# Disabled due to
# https://bugzilla.redhat.com/show_bug.cgi?id=1966949
%if 0%{?fedora} > 33
%if 0%{?fedora} > 36
ExcludeArch: armv7hl
%endif
@ -169,7 +170,7 @@ ExcludeArch: aarch64
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 102.0
Release: 2%{?pre_tag}%{?dist}
Release: 3%{?pre_tag}%{?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
@ -262,11 +263,15 @@ Patch444: D148946.diff
Patch445: D149238.diff
Patch446: mozilla-1758948.patch
Patch447: mozilla-1774271.patch
Patch448: firefox-102.0-pref-print.patch
# PGO/LTO patches
Patch600: pgo.patch
Patch602: mozilla-1516803.patch
# a patch for compiling with gcc on arm (from debian)
Patch990: work-around-GCC-ICE-on-arm.patch
# Backported WebRTC changes for PipeWire/Wayland screen sharing support
Patch1000: libwebrtc-screen-cast-sync.patch
@ -336,6 +341,9 @@ Requires: pciutils-libs
Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
%if %{?system_libevent}
BuildRequires: pkgconfig(libevent)
%endif
BuildRequires: python3-devel
BuildRequires: python3-setuptools
%if !0%{?flatpak}
@ -533,6 +541,7 @@ This package contains results of tests executed during build.
%patch445 -p1 -b .D149238.diff
%patch446 -p1 -b .mozbz#1758948
%patch447 -p1 -b .mozbz#1774271
%patch448 -p1 -b .pref-print
# PGO patches
%if %{build_with_pgo}
@ -542,6 +551,8 @@ This package contains results of tests executed during build.
%endif
%endif
%patch990 -p1 -b .work-around-GCC-ICE-on-arm
%patch1000 -p1 -b .libwebrtc-screen-cast-sync
%{__rm} -f .mozconfig
@ -565,6 +576,10 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig
echo "ac_add_options --without-system-nss" >> .mozconfig
%endif
%if %{?system_libevent}
echo "ac_add_options --with-system-libevent" >> .mozconfig
%endif
%if %{?system_ffi}
echo "ac_add_options --enable-system-ffi" >> .mozconfig
%endif
@ -724,6 +739,27 @@ MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fsanitize=address -Dxmalloc=myxmalloc"
MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address -ldl"
%endif
%ifarch %{arm}
# disable hard-coded LTO due to RAM constraints
%{__sed} -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk
%{__sed} -i '/RUSTFLAGS += -Cembed-bitcode=yes/d' config/makefiles/rust.mk
%{__sed} -i 's/codegen-units=1/codegen-units=16/' config/makefiles/rust.mk
# make sure "-g0" is the last flag so there's no debug info
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -g0"
# https://bugzilla.mozilla.org/show_bug.cgi?id=1738845
# should not be needed anymore with firefox 103
echo "ac_add_options --disable-webrtc" >> .mozconfig
# personal preferences
echo "ac_add_options --disable-webspeech" >> .mozconfig
echo "ac_add_options --disable-synth-speechd" >> .mozconfig
echo "ac_add_options --disable-accessibility" >> .mozconfig
echo "ac_add_options --disable-parental-controls" >> .mozconfig
echo "ac_add_options --disable-printing" >> .mozconfig
%endif
# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT"
@ -1112,6 +1148,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
* Wed Jul 13 2022 Martin Stransky <stransky@redhat.com>- 102.0-3
- Update preference logging.
- Added ARM fixes by Gabriel Hojda.
* Mon Jul 11 2022 Jan Grulich <jgrulich@redhat.com> - 102.0-2
- Backport upstream fixes to WebRTC for screensharing on Wayland

View File

@ -0,0 +1,12 @@
diff -ur a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
--- a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2022-05-27 08:37:14.642698922 +0300
+++ b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2022-05-27 12:23:43.592185545 +0300
@@ -683,7 +683,7 @@
// GCC 7.2.0 hits an internal compiler error with -finline-functions (or -O3)
// when targeting MIPS 64, i386, or s390x, I think attempting to inline clut() into exec_ops().
#if 1 && defined(__GNUC__) && !defined(__clang__) \
- && (defined(__mips64) || defined(__i386) || defined(__s390x__))
+ && (defined(__arm__) || defined(__mips64) || defined(__i386) || defined(__s390x__))
#define MAYBE_NOINLINE __attribute__((noinline))
#else
#define MAYBE_NOINLINE