Accepting request 856849 from mozilla:Factory

- Mozilla Firefox 84.0
  * Firefox 84 is the final release to support Adobe Flash
  * WebRender is enabled by default when run on GNOME-based X11
    Linux desktops
  MFSA 2020-54 (bsc#1180039))
  * CVE-2020-16042 (bmo#1679003)
    Operations on a BigInt could have caused uninitialized memory
    to be exposed
  * CVE-2020-26971 (bmo#1663466)
    Heap buffer overflow in WebGL
  * CVE-2020-26972 (bmo#1671382)
    Use-After-Free in WebGL
  * CVE-2020-26973 (bmo#1680084)
    CSS Sanitizer performed incorrect sanitization
  * CVE-2020-26974 (bmo#1681022)
    Incorrect cast of StyleGenericFlexBasis resulted in a heap
    use-after-free
  * CVE-2020-26975 (bmo#1661071)
    Malicious applications on Android could have induced Firefox
    for Android into sending arbitrary attacker-specified headers
  * CVE-2020-26976 (bmo#1674343)
    HTTPS pages could have been intercepted by a registered
    service worker when they should not have been
  * CVE-2020-26977 (bmo#1676311)
    URL spoofing via unresponsive port in Firefox for Android
  * CVE-2020-26978 (bmo#1677047)
    Internal network hosts could have been probed by a malicious
    webpage
  * CVE-2020-26979 (bmo#1641287, bmo#1673299)
    When entering an address in the address or search bars, a

OBS-URL: https://build.opensuse.org/request/show/856849
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaFirefox?expand=0&rev=323
This commit is contained in:
Dominique Leuenberger 2020-12-24 18:40:19 +00:00 committed by Git OBS Bridge
commit bf6ac788a8
20 changed files with 674 additions and 1222 deletions

View File

@ -1,3 +1,59 @@
-------------------------------------------------------------------
Sun Dec 13 18:18:58 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
- Mozilla Firefox 84.0
* Firefox 84 is the final release to support Adobe Flash
* WebRender is enabled by default when run on GNOME-based X11
Linux desktops
MFSA 2020-54 (bsc#1180039))
* CVE-2020-16042 (bmo#1679003)
Operations on a BigInt could have caused uninitialized memory
to be exposed
* CVE-2020-26971 (bmo#1663466)
Heap buffer overflow in WebGL
* CVE-2020-26972 (bmo#1671382)
Use-After-Free in WebGL
* CVE-2020-26973 (bmo#1680084)
CSS Sanitizer performed incorrect sanitization
* CVE-2020-26974 (bmo#1681022)
Incorrect cast of StyleGenericFlexBasis resulted in a heap
use-after-free
* CVE-2020-26975 (bmo#1661071)
Malicious applications on Android could have induced Firefox
for Android into sending arbitrary attacker-specified headers
* CVE-2020-26976 (bmo#1674343)
HTTPS pages could have been intercepted by a registered
service worker when they should not have been
* CVE-2020-26977 (bmo#1676311)
URL spoofing via unresponsive port in Firefox for Android
* CVE-2020-26978 (bmo#1677047)
Internal network hosts could have been probed by a malicious
webpage
* CVE-2020-26979 (bmo#1641287, bmo#1673299)
When entering an address in the address or search bars, a
website could have redirected the user before they were
navigated to the intended url
* CVE-2020-35111 (bmo#1657916)
The proxy.onRequest API did not catch view-source URLs
* CVE-2020-35112 (bmo#1661365)
Opening an extension-less download may have inadvertently
launched an executable instead
* CVE-2020-35113 (bmo#1664831, bmo#1673589)
Memory safety bugs fixed in Firefox 84 and Firefox ESR 78.6
* CVE-2020-35114 (bmo#1607449, bmo#1640416, bmo#1656459,
bmo#1669914, bmo#1673567)
Memory safety bugs fixed in Firefox 84
- requires
NSS >= 3.59
rust >= 1.44
rust-cbindgen >= 0.15.0
- remove revert-795c8762b16b.patch and replace with mozilla-pgo.patch
-------------------------------------------------------------------
Sat Nov 21 08:12:17 UTC 2020 - Kirill Kirillov <kkirill@opensuse.org>
- Add/Enable GNOME search provider
-------------------------------------------------------------------
Sun Nov 15 12:16:53 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
@ -82,6 +138,11 @@ Mon Nov 2 09:00:13 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
- Mozilla Firefox 82.0.2
* few bugfixes for introduced regressions
-------------------------------------------------------------------
Sun Nov 1 20:15:17 UTC 2020 - Kirill Kirillov <kkirill@opensuse.org>
- Enable GNOME search provider
-------------------------------------------------------------------
Thu Oct 15 20:44:47 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>

View File

@ -29,15 +29,15 @@
# orig_suffix b3
# major 69
# mainver %major.99
%define major 83
%define major 84
%define mainver %major.0
%define orig_version 83.0
%define orig_version 84.0
%define orig_suffix %{nil}
%define update_channel release
%define branding 1
%define devpkg 1
# PGO builds do not work in TW currently (bmo#1642410)
# PGO builds do not work in TW currently (bmo#1680306)
%define do_profiling 0
# upstream default is clang (to use gcc for large parts set to 0)
@ -92,7 +92,7 @@ BuildRequires: gcc9-c++
%else
BuildRequires: gcc-c++
%endif
BuildRequires: cargo >= 1.43
BuildRequires: cargo >= 1.44
BuildRequires: ccache
BuildRequires: libXcomposite-devel
BuildRequires: libcurl-devel
@ -101,7 +101,7 @@ BuildRequires: libiw-devel
BuildRequires: libproxy-devel
BuildRequires: makeinfo
BuildRequires: mozilla-nspr-devel >= 4.29
BuildRequires: mozilla-nss-devel >= 3.58
BuildRequires: mozilla-nss-devel >= 3.59
BuildRequires: nasm >= 2.14
BuildRequires: nodejs10 >= 10.22.1
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
@ -111,8 +111,8 @@ BuildRequires: python36
BuildRequires: python3 >= 3.5
BuildRequires: python3-devel
%endif
BuildRequires: rust >= 1.43
BuildRequires: rust-cbindgen >= 0.14.3
BuildRequires: rust >= 1.44
BuildRequires: rust-cbindgen >= 0.15.0
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libXt-devel
@ -178,6 +178,7 @@ Source13: spellcheck.js
Source14: https://github.com/openSUSE/firefox-scripts/raw/5e54f4a/create-tar.sh
Source15: firefox-appdata.xml
Source16: %{name}.changes
Source17: firefox-search-provider.ini
# Set up API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for the openSUSE Firefox builds ONLY. For your own distribution,
# please get your own set of keys.
@ -194,6 +195,7 @@ Patch6: mozilla-sandbox-fips.patch
Patch7: mozilla-fix-aarch64-libopus.patch
Patch8: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
Patch9: mozilla-s390-context.patch
Patch10: mozilla-pgo.patch
Patch11: mozilla-reduce-rust-debuginfo.patch
Patch13: mozilla-bmo1005535.patch
Patch14: mozilla-bmo1568145.patch
@ -211,7 +213,6 @@ Patch25: mozilla-bmo998749.patch
Patch26: mozilla-bmo1626236.patch
Patch27: mozilla-s390x-skia-gradient.patch
Patch28: mozilla-libavcodec58_91.patch
Patch29: revert-795c8762b16b.patch
# Firefox/browser
Patch101: firefox-kde.patch
Patch102: firefox-branded-icons.patch
@ -334,6 +335,7 @@ cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch13 -p1
%patch14 -p1
@ -353,7 +355,6 @@ cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1 -R
# Firefox
%patch101 -p1
%patch102 -p1
@ -508,8 +509,7 @@ ac_add_options --enable-optimize="-O1"
%endif
%ifarch x86_64
# LTO needs newer toolchain stack only (at least GCC 8.2.1 (r268506)
# TW's gcc is currently also broken with LTO https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93951
%if 0%{?suse_version} > 1500 && 0%{?suse_version} < 1550
%if 0%{?suse_version} > 1500
ac_add_options --enable-lto
%if 0%{?do_profiling}
ac_add_options MOZ_PGO=1
@ -536,7 +536,6 @@ xvfb-run --server-args="-screen 0 1920x1080x24" \
# build additional locales
%if %localize
mkdir -p %{buildroot}%{progdir}/browser/extensions
truncate -s 0 %{_tmppath}/translations.{common,other}
# langpack-build can not be done in parallel easily (see https://bugzilla.mozilla.org/show_bug.cgi?id=1660943)
# Therefore, we have to have a separate obj-dir for each language
@ -562,6 +561,7 @@ EOF
%else
%define njobs 0%{?jobs:%jobs}
%endif
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
| xargs -n 1 %{?njobs:-P %njobs} -I {} /bin/sh -c '
locale=$1
@ -571,10 +571,7 @@ sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig
# nsinstall is needed for langpack-build. It is already built by `./mach build`, but building it again is very fast
./mach build config/nsinstall langpack-$locale
cp -L ../obj_$locale/dist/linux-*/xpi/firefox-%{orig_version}.$locale.langpack.xpi \
%{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org.xpi
# remove prefs, profile defaults, and hyphenation from langpack
#rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults
#rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation
$RPM_BUILD_DIR/langpacks_artifacts/langpack-$locale@firefox.mozilla.org.xpi
# check against the fixed common list and sort into the right filelist
_matched=0
for _match in ar ca cs da de el en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
@ -604,6 +601,8 @@ grep amazondotcom dist/firefox/browser/omni.ja
# copy tree into RPM_BUILD_ROOT
mkdir -p %{buildroot}%{progdir}
cp -rf $RPM_BUILD_DIR/obj/dist/%{srcname}/* %{buildroot}%{progdir}
mkdir -p %{buildroot}%{progdir}/browser/extensions
cp -rf $RPM_BUILD_DIR/langpacks_artifacts/* %{buildroot}%{progdir}/browser/extensions/
mkdir -p %{buildroot}%{progdir}/distribution/extensions
mkdir -p %{buildroot}%{progdir}/browser/defaults/preferences/
# renaming executables (for regular vs. ESR)
@ -655,6 +654,9 @@ sed "s:firefox.desktop:%{desktop_file_name}:g" \
# install man-page
mkdir -p %{buildroot}%{_mandir}/man1/
cp %{SOURCE11} %{buildroot}%{_mandir}/man1/%{progname}.1
# install GNOME Shell search provider
mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers
cp %{SOURCE17} %{buildroot}%{_datadir}/gnome-shell/search-providers
##########
# ADDONS
#
@ -775,6 +777,9 @@ exit 0
%endif
%{_datadir}/applications/%{desktop_file_name}.desktop
%{_datadir}/mime/packages/%{progname}.xml
%dir %{_datadir}/gnome-shell
%dir %{_datadir}/gnome-shell/search-providers
%{_datadir}/gnome-shell/search-providers/*.ini
%dir %{_datadir}/mozilla
%dir %{_datadir}/mozilla/extensions
%dir %{_datadir}/mozilla/extensions/%{firefox_appid}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398
size 351331940

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl+tfCIACgkQ8aZmj7t9
Vy53Kg/7Brg/Ii6J/Gcj8HFS6qvKIMQchM0jZwuqIHUr5IxSH8py2Y69Mvv8oFDG
xJdoLFzDmY6+sIOzrkE82iZ+ZJanCwm7eHqol7eGDFp++CXCo/0hUeGfp3w6uIEF
ypczVW8K6Z4008BzD3BN982zKjLG+IhK1whWoowzXp4oWHsJzqhs2XY2V5QNV0T8
6bI+t9O2CXjKg7aJ0eIf9+mgYUi2llnKUNj92mY0LDvhCuRihehXXn+2aSE0XzAG
G1l19TXlWkkdlkkYNCEEi0UKRJlg61UVXdX932vEFWDZT3iVkcrTqG+ExIKpzTO3
HvUy/y1zbXZKH3LDfzpx+vi6zk+Ve/PFv51xphY0iRKAOQGE3tCY9rmpnXeClrPX
5dc0WmelkQrK09WY1Gi2Doh0x+pE5BmOuOCCHizb34WnJ1Jiyjzo1z61iOEB+X+t
QQ4/iowKOMPs4mqHvYVmnWmVxGBbTYQ3D19ErYZPLWrm+37tM6t/o/jQPpOtUiW/
23pTXrTVsC8FJdmpNWXuUY2pgvL61LIntDKBMqbiswG2I1/EZ9TzKl9UTZ5NdaBk
OIGctLIKFFNsAhFMUzjYz8ihwi0weBgOKuUa7dfxOHHzekitH1aKriss0IHI+iaK
u6hf66T6e3V/w8suqOz7hI+TvM6PaMdJH3EdXCtS2Ln14U0wliI=
=HFQx
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:23273ef0165b243f5d0908c38e7854d38070282c9b526e8d93b7503cd5f69138
size 366395172

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl/UEmMACgkQ8aZmj7t9
Vy6eUA/+MnjreNJs3uU+Xx/sLzAnUMAUXgrUhcyxXaTLciDwr4ZWYMmXuM+O+1+m
bj6LKDZlUjEhW81FS8ALZXlz4aZHBw+alh+XpjWTSdnTRW9RBXIfewSs4QljAyDE
YsT1zFWeacEKag6kF1GxzyH9yM3Hh5giil7wKLbPaEJ+R+8UY+VYdG1VQ3U18DPL
tC92GUexs4V8G86KauMXFWgX9VynKRbj3W41SujIq3MwoRFQCDUXjW80Oo1ldlqt
MLxFDYJSCrY9r9bbXJ29CS+EeJQgxBQiR/0Y9YplNvDQOHCaPc/Zg4jS6aqEJrsd
kKH3qudKWYJ25KJTMMSejROUMEHqYU5MOJKtKJ8jFS3dxp6DguWvID4BKC60KIeO
7fs1NuHFL1hVb7vrz1Vmk7v+5qhubki97J47ZKz+hhg3VIpAOc01idRRltFejgPa
bGK6IDR8zYeSZrHQoTrVqmcdllrV9XL7k3W/YGe343NQjzz159tSvQI9lB6hdrU9
6MN83NCu4ayl9pvkimGlEyPyVrZ5LWnBQuhJkKrvg/Lzv0xrnXH/7abEK+GDAJjg
llwpzD3PfXcmpStF6KX6kunul22NoB14Nk4iMKRNLe50TaO7CiZytidHwpQQsl2m
1tFR97h4wLmjE7y1faB1/Gy0MDRaGTwQXBHM4cyoIPaNQyHWQpA=
=FYid
-----END PGP SIGNATURE-----

View File

@ -3,7 +3,7 @@
# Date 1559300151 -7200
# Fri May 31 12:55:51 2019 +0200
# Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
# Parent 3804871eac4171b99e9049dbc881b5304b5ac207
# Parent 8310cc1a162e9dd066a20f6a3bbd271993b67fc6
How to apply this patch:
1. Import and apply it
2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
@ -14,7 +14,7 @@ How to apply this patch:
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
--- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js
@@ -335,16 +335,23 @@ var gMainPane = {
@@ -347,16 +347,23 @@ var gMainPane = {
}, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
};
@ -38,7 +38,7 @@ diff --git a/browser/components/preferences/main.js b/browser/components/prefere
);
let performanceSettingsUrl =
Services.urlFormatter.formatURLPref("app.support.baseURL") +
@@ -1291,16 +1298,27 @@ var gMainPane = {
@@ -1326,16 +1333,27 @@ var gMainPane = {
this._backoffIndex = 0;
let shellSvc = getShellService();
@ -69,24 +69,24 @@ diff --git a/browser/components/preferences/main.js b/browser/components/prefere
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
--- a/browser/components/shell/moz.build
+++ b/browser/components/shell/moz.build
@@ -34,16 +34,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
@@ -32,16 +32,18 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "coco
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
XPIDL_SOURCES += [
'nsIGNOMEShellService.idl',
"nsIGNOMEShellService.idl",
]
SOURCES += [
'nsGNOMEShellService.cpp',
+ 'nsKDEShellService.cpp',
+ 'nsUnixShellService.cpp',
"nsGNOMEShellService.cpp",
+ "nsKDEShellService.cpp",
+ "nsUnixShellService.cpp",
]
if CONFIG['MOZ_ENABLE_DBUS']:
if CONFIG["MOZ_ENABLE_DBUS"]:
SOURCES += [
'nsGNOMEShellDBusHelper.cpp',
'nsGNOMEShellSearchProvider.cpp',
"nsGNOMEShellDBusHelper.cpp",
"nsGNOMEShellSearchProvider.cpp",
]
include('/ipc/chromium/chromium-config.mozbuild')
include("/ipc/chromium/chromium-config.mozbuild")
diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
new file mode 100644

View File

@ -0,0 +1,5 @@
[Shell Search Provider]
DesktopId=firefox.desktop
BusName=org.mozilla.Firefox.SearchProvider
ObjectPath=/org/mozilla/Firefox/SearchProvider
Version=2

View File

@ -6,3 +6,5 @@ pref("network.trr.mode", 5);
pref("extensions.autoDisableScopes", 0);
pref("extensions.shownSelectionUI", true);
pref("extensions.langpacks.signatures.required", false);
// enable D-Bus inteface for Gnome Shell search
pref("browser.gnome-search-provider.enabled", true);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3345251de218fd1c84373318f8ddc342eaf98a8bdd53ab8403b07cd5b007f022
size 49220644

3
l10n-84.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8391819e8c9d72260077e8d0a3538bb98f6938064916180ca64dc064397c047
size 49373248

View File

@ -1,12 +1,12 @@
# HG changeset patch
# Parent e42a036a5533ea6a60ebc22fd2a150c384d42fda
# Parent f9f5af4c88f2f3172a4f30d7e42bd2131bf24146
This fixes a broken build for gcc < 9 on ppc64le.
This patch can be removed for newer gcc-versions.
diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp
--- a/js/xpconnect/src/XPCWrappedNative.cpp
+++ b/js/xpconnect/src/XPCWrappedNative.cpp
@@ -1080,17 +1080,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
@@ -1072,17 +1072,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
uint32_t* result);
MOZ_ALWAYS_INLINE bool GetInterfaceTypeFromParam(const nsXPTType& type,
@ -29,7 +29,7 @@ diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrapped
paramIndex += 1;
}
if (paramIndex >= mOptArgcIndex) {
@@ -1127,17 +1131,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
@@ -1119,17 +1123,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
{
// Success checked later.

View File

@ -28,12 +28,12 @@ diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbu
ManifestLocale,
parse_manifest,
)
@@ -94,17 +95,17 @@ def get_dt_from_hg(path):
@@ -100,17 +101,17 @@ def get_dt_from_hg(path):
# ts == "20170914215617"
###
def get_timestamp_for_locale(path):
dt = None
if os.path.isdir(os.path.join(path, '.hg')):
if os.path.isdir(os.path.join(path, ".hg")):
dt = get_dt_from_hg(path)
if dt is None:

View File

@ -8,28 +8,50 @@ Subject: [PATCH] Fix top-level asm issue.
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
index aae85843e9f6..208368dfd189 100644
--- a/security/sandbox/linux/moz.build
+++ b/security/sandbox/linux/moz.build
@@ -61,7 +61,6 @@ UNIFIED_SOURCES += [
'../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc',
'../chromium/sandbox/linux/bpf_dsl/syscall_set.cc',
'../chromium/sandbox/linux/seccomp-bpf/die.cc',
- '../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
'broker/SandboxBrokerCommon.cpp',
'Sandbox.cpp',
'SandboxBrokerClient.cpp',
@@ -77,6 +76,7 @@ UNIFIED_SOURCES += [
SOURCES += [
'../chromium/base/strings/safe_sprintf.cc',
'../chromium/base/third_party/icu/icu_utf.cc',
+ '../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
'../chromium/sandbox/linux/seccomp-bpf/trap.cc',
'../chromium/sandbox/linux/services/syscall_wrappers.cc',
@@ -66,32 +66,32 @@ UNIFIED_SOURCES += [
"../chromium/base/time/time_now_posix.cc",
"../chromium/sandbox/linux/bpf_dsl/bpf_dsl.cc",
"../chromium/sandbox/linux/bpf_dsl/codegen.cc",
"../chromium/sandbox/linux/bpf_dsl/dump_bpf.cc",
"../chromium/sandbox/linux/bpf_dsl/policy.cc",
"../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc",
"../chromium/sandbox/linux/bpf_dsl/syscall_set.cc",
"../chromium/sandbox/linux/seccomp-bpf/die.cc",
- "../chromium/sandbox/linux/seccomp-bpf/syscall.cc",
"broker/SandboxBrokerCommon.cpp",
"Sandbox.cpp",
"SandboxBrokerClient.cpp",
"SandboxFilter.cpp",
"SandboxFilterUtil.cpp",
"SandboxHooks.cpp",
"SandboxInfo.cpp",
"SandboxLogging.cpp",
"SandboxOpenedFiles.cpp",
"SandboxReporterClient.cpp",
]
@@ -96,6 +96,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
SOURCES['../chromium/sandbox/linux/services/syscall_wrappers.cc'].flags += [
'-Wno-empty-body',
SOURCES += [
"../chromium/base/strings/safe_sprintf.cc",
"../chromium/base/third_party/icu/icu_utf.cc",
+ "../chromium/sandbox/linux/seccomp-bpf/syscall.cc",
"../chromium/sandbox/linux/seccomp-bpf/trap.cc",
"../chromium/sandbox/linux/services/syscall_wrappers.cc",
]
# This copy of SafeSPrintf doesn't need to avoid the Chromium logging
# dependency like the one in libxul does, but this way the behavior is
# consistent. See also the comment in SandboxLogging.h.
SOURCES["../chromium/base/strings/safe_sprintf.cc"].flags += ["-DNDEBUG"]
@@ -105,16 +105,19 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc")
"-Wno-unreachable-code-return"
]
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
CXXFLAGS += ["-Wno-shadow"]
SOURCES["../chromium/sandbox/linux/services/syscall_wrappers.cc"].flags += [
"-Wno-empty-body",
]
+ SOURCES['../chromium/sandbox/linux/seccomp-bpf/syscall.cc'].flags += [
+ '-fno-lto'
@ -37,6 +59,8 @@ index aae85843e9f6..208368dfd189 100644
# gcc lto likes to put the top level asm in syscall.cc in a different partition
# from the function using it which breaks the build. Work around that by
--
2.23.0
# forcing there to be only one partition.
for f in CONFIG["OS_CXXFLAGS"]:
if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
LDFLAGS += ["--param lto-partitions=1"]

View File

@ -3,7 +3,7 @@
# Date 1559294891 -7200
# Fri May 31 11:28:11 2019 +0200
# Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
# Parent e89d21ead66fbb34b6349edda42748a3ad9e6136
# Parent 4b9aa59b15c3247d263cc32804786b3a6bff7912
Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com>
@ -13,7 +13,7 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
--- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp
@@ -83,16 +83,17 @@
@@ -82,16 +82,17 @@
#include "nsXPCOM.h"
#include "nsXULAppAPI.h"
#include "nsZipArchive.h"
@ -31,7 +31,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
#ifdef MOZ_MEMORY
# include "mozmemory.h"
#endif
@@ -4536,25 +4537,37 @@ nsresult Preferences::InitInitialObjects
@@ -4459,25 +4460,37 @@ nsresult Preferences::InitInitialObjects
// application pref files for backwards compatibility.
static const char* specialFiles[] = {
#if defined(XP_MACOSX)
@ -69,7 +69,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
// Load jar:$app/omni.jar!/defaults/preferences/*.js
// or jar:$gre/omni.jar!/defaults/preferences/*.js.
@@ -4600,17 +4613,17 @@ nsresult Preferences::InitInitialObjects
@@ -4523,17 +4536,17 @@ nsresult Preferences::InitInitialObjects
}
nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@ -91,13 +91,13 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
--- a/modules/libpref/moz.build
+++ b/modules/libpref/moz.build
@@ -118,16 +118,20 @@ EXPORTS.mozilla += [
@@ -116,16 +116,20 @@ EXPORTS.mozilla += [
]
EXPORTS.mozilla += sorted(['!' + g for g in gen_h])
EXPORTS.mozilla += sorted(["!" + g for g in gen_h])
UNIFIED_SOURCES += [
'Preferences.cpp',
'SharedPrefMap.cpp',
"Preferences.cpp",
"SharedPrefMap.cpp",
]
+LOCAL_INCLUDES += [
@ -106,52 +106,52 @@ diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
+
gen_all_tuple = tuple(gen_h + gen_cpp + gen_rs)
GeneratedFile(*gen_all_tuple, script='init/generate_static_pref_list.py',
entry_point='emit_code', inputs=['init/StaticPrefList.yaml'])
PYTHON_UNITTEST_MANIFESTS += [
'test/python.ini',
]
GeneratedFile(
*gen_all_tuple,
script="init/generate_static_pref_list.py",
entry_point="emit_code",
inputs=["init/StaticPrefList.yaml"]
)
diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
--- a/python/mozbuild/mozpack/chrome/flags.py
+++ b/python/mozbuild/mozpack/chrome/flags.py
@@ -227,16 +227,17 @@ class Flags(OrderedDict):
'contentaccessible': Flag,
'os': StringFlag,
'osversion': VersionFlag,
'abi': StringFlag,
'platform': Flag,
'xpcnativewrappers': Flag,
'tablet': Flag,
'process': StringFlag,
+ 'desktop': StringFlag,
@@ -228,16 +228,17 @@ class Flags(OrderedDict):
"contentaccessible": Flag,
"os": StringFlag,
"osversion": VersionFlag,
"abi": StringFlag,
"platform": Flag,
"xpcnativewrappers": Flag,
"tablet": Flag,
"process": StringFlag,
+ "desktop": StringFlag,
}
RE = re.compile(r'([!<>=]+)')
RE = re.compile(r"([!<>=]+)")
def __init__(self, *flags):
'''
"""
Initialize a set of flags given in string form.
flags = Flags('contentaccessible=yes', 'appversion>=3.5')
'''
"""
diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
--- a/python/mozbuild/mozpack/chrome/manifest.py
+++ b/python/mozbuild/mozpack/chrome/manifest.py
@@ -37,16 +37,17 @@ class ManifestEntry(object):
'platformversion',
'os',
'osversion',
'abi',
'xpcnativewrappers',
'tablet',
'process',
'contentaccessible',
+ 'desktop',
@@ -38,16 +38,17 @@ class ManifestEntry(object):
"platformversion",
"os",
"osversion",
"abi",
"xpcnativewrappers",
"tablet",
"process",
"contentaccessible",
+ "desktop",
]
def __init__(self, base, *flags):
'''
"""
Initialize a manifest entry with the given base path and flags.
'''
"""
self.base = base
self.flags = Flags(*flags)
diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
@ -159,23 +159,23 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
+++ b/toolkit/components/downloads/moz.build
@@ -45,10 +45,14 @@ XPCOM_MANIFESTS += [
if CONFIG['MOZ_PLACES']:
if CONFIG["MOZ_PLACES"]:
EXTRA_JS_MODULES += [
'DownloadHistory.jsm',
"DownloadHistory.jsm",
]
FINAL_LIBRARY = 'xul'
FINAL_LIBRARY = "xul"
+LOCAL_INCLUDES += [
+ '/toolkit/xre'
+]
+
with Files('**'):
BUG_COMPONENT = ('Toolkit', 'Downloads API')
with Files("**"):
BUG_COMPONENT = ("Toolkit", "Downloads API")
diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm
--- a/toolkit/mozapps/downloads/HelperAppDlg.jsm
+++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm
@@ -1239,36 +1239,66 @@ nsUnknownContentTypeDialog.prototype = {
@@ -1243,36 +1243,66 @@ nsUnknownContentTypeDialog.prototype = {
params.handlerApp &&
params.handlerApp.executable &&
params.handlerApp.executable.isFile()
@ -356,26 +356,26 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
--- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build
@@ -90,17 +90,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
'../components/printingui',
@@ -91,17 +91,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
"../components/printingui",
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "uikit":
UNIFIED_SOURCES += [
'nsNativeAppSupportDefault.cpp',
'UIKitDirProvider.mm',
"nsNativeAppSupportDefault.cpp",
"UIKitDirProvider.mm",
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+ EXPORTS += ['nsKDEUtils.h']
UNIFIED_SOURCES += [
+ 'nsKDEUtils.cpp',
'nsNativeAppSupportUnix.cpp',
+ "nsKDEUtils.cpp",
"nsNativeAppSupportUnix.cpp",
]
else:
UNIFIED_SOURCES += [
'nsNativeAppSupportDefault.cpp',
"nsNativeAppSupportDefault.cpp",
]
if CONFIG['MOZ_HAS_REMOTE']:
if CONFIG["MOZ_HAS_REMOTE"]:
diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
new file mode 100644
--- /dev/null
@ -841,44 +841,44 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
--- a/uriloader/exthandler/moz.build
+++ b/uriloader/exthandler/moz.build
@@ -85,17 +85,19 @@ else:
@@ -86,17 +86,19 @@ else:
SOURCES += [
osdir + '/nsOSHelperAppService.cpp',
osdir + "/nsOSHelperAppService.cpp",
]
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CXXFLAGS += ['-Wno-error=shadow']
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
CXXFLAGS += ["-Wno-error=shadow"]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
UNIFIED_SOURCES += [
+ 'unix/nsCommonRegistry.cpp',
'unix/nsGNOMERegistry.cpp',
+ 'unix/nsKDERegistry.cpp',
'unix/nsMIMEInfoUnix.cpp',
+ "unix/nsCommonRegistry.cpp",
"unix/nsGNOMERegistry.cpp",
+ "unix/nsKDERegistry.cpp",
"unix/nsMIMEInfoUnix.cpp",
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
UNIFIED_SOURCES += [
'android/nsAndroidHandlerApp.cpp',
'android/nsExternalURLHandlerService.cpp',
'android/nsMIMEInfoAndroid.cpp',
"android/nsAndroidHandlerApp.cpp",
"android/nsExternalURLHandlerService.cpp",
"android/nsMIMEInfoAndroid.cpp",
]
@@ -135,16 +137,17 @@ include('/ipc/chromium/chromium-config.m
FINAL_LIBRARY = 'xul'
@@ -136,16 +138,17 @@ include("/ipc/chromium/chromium-config.m
FINAL_LIBRARY = "xul"
LOCAL_INCLUDES += [
'/docshell/base',
'/dom/base',
'/dom/ipc',
'/netwerk/base',
'/netwerk/protocol/http',
+ '/toolkit/xre',
"/docshell/base",
"/dom/base",
"/dom/ipc",
"/netwerk/base",
"/netwerk/protocol/http",
+ "/toolkit/xre",
]
if CONFIG['MOZ_ENABLE_DBUS']:
CXXFLAGS += CONFIG['TK_CFLAGS']
CXXFLAGS += CONFIG['MOZ_DBUS_CFLAGS']
if CONFIG["MOZ_ENABLE_DBUS"]:
CXXFLAGS += CONFIG["TK_CFLAGS"]
CXXFLAGS += CONFIG["MOZ_DBUS_CFLAGS"]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
CXXFLAGS += CONFIG['TK_CFLAGS']
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["TK_CFLAGS"]
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
new file mode 100644
--- /dev/null
@ -1293,23 +1293,23 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
--- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build
@@ -134,16 +134,17 @@ FINAL_LIBRARY = 'xul'
@@ -138,16 +138,17 @@ FINAL_LIBRARY = "xul"
LOCAL_INCLUDES += [
'/layout/base',
'/layout/forms',
'/layout/generic',
'/layout/xul',
'/other-licenses/atk-1.0',
'/third_party/cups/include',
+ '/toolkit/xre',
'/widget',
'/widget/headless',
"/layout/base",
"/layout/forms",
"/layout/generic",
"/layout/xul",
"/other-licenses/atk-1.0",
"/third_party/cups/include",
+ "/toolkit/xre",
"/widget",
"/widget/headless",
]
if CONFIG['MOZ_X11']:
if CONFIG["MOZ_X11"]:
LOCAL_INCLUDES += [
'/widget/x11',
"/widget/x11",
]
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
--- a/widget/gtk/nsFilePicker.cpp
@ -1816,28 +1816,28 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
--- a/xpcom/components/moz.build
+++ b/xpcom/components/moz.build
@@ -62,16 +62,17 @@ LOCAL_INCLUDES += [
'!..',
'../base',
'../build',
'../ds',
'/chrome',
'/js/xpconnect/loader',
'/layout/build',
'/modules/libjar',
+ '/toolkit/xre',
@@ -66,16 +66,17 @@ LOCAL_INCLUDES += [
"!..",
"../base",
"../build",
"../ds",
"/chrome",
"/js/xpconnect/loader",
"/layout/build",
"/modules/libjar",
+ "/toolkit/xre",
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
CXXFLAGS += CONFIG['TK_CFLAGS']
if CONFIG['MOZ_ENABLE_DBUS']:
CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS']
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["TK_CFLAGS"]
if CONFIG["MOZ_ENABLE_DBUS"]:
CXXFLAGS += CONFIG["MOZ_DBUS_GLIB_CFLAGS"]
include('/ipc/chromium/chromium-config.mozbuild')
include("/ipc/chromium/chromium-config.mozbuild")
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -46,16 +46,17 @@
@@ -49,16 +49,17 @@
#include "prproces.h"
#include "nsIDirectoryEnumerator.h"
#include "nsSimpleEnumerator.h"
@ -1855,7 +1855,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
# include "prmem.h"
# include "plbase64.h"
@@ -1898,62 +1899,77 @@ nsLocalFile::SetPersistentDescriptor(con
@@ -1968,62 +1969,77 @@ nsLocalFile::SetPersistentDescriptor(con
NS_IMETHODIMP
nsLocalFile::Reveal() {

225
mozilla-pgo.patch Normal file
View File

@ -0,0 +1,225 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent 431962e810598b34327620fb99e06768e9a29c38
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
--- a/build/moz.configure/lto-pgo.configure
+++ b/build/moz.configure/lto-pgo.configure
@@ -223,23 +223,23 @@ def lto(value, c_compiler, ld64_known_go
"configure."
)
if c_compiler.type == "clang":
if len(value) and value[0].lower() == "full":
cflags.append("-flto")
ldflags.append("-flto")
else:
- cflags.append("-flto=thin")
- ldflags.append("-flto=thin")
+ cflags.append("-flto")
+ ldflags.append("-flto")
elif c_compiler.type == "clang-cl":
if len(value) and value[0].lower() == "full":
cflags.append("-flto")
else:
- cflags.append("-flto=thin")
+ cflags.append("-flto")
# With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
# AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
cflags.append("-fuse-ld=lld")
# Explicitly set the CPU to optimize for so the linker doesn't
# choose a poor default. Rust compilation by default uses the
# pentium4 CPU on x86:
#
@@ -263,17 +263,17 @@ def lto(value, c_compiler, ld64_known_go
ldflags.append("-mllvm:-mcpu=x86-64")
# We do not need special flags for arm64. Hooray for fixed-length
# instruction sets.
else:
num_cores = multiprocessing.cpu_count()
if len(value) and value[0].lower() == "full":
cflags.append("-flto")
else:
- cflags.append("-flto=thin")
+ cflags.append("-flto")
cflags.append("-flifetime-dse=1")
ldflags.append("-flto=%s" % num_cores)
ldflags.append("-flifetime-dse=1")
# Tell LTO not to inline functions above a certain size, to mitigate
# binary size growth while still getting good performance.
# (For hot functions, PGO will put a multiplier on this limit.)
diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
--- a/build/pgo/profileserver.py
+++ b/build/pgo/profileserver.py
@@ -6,17 +6,17 @@
import json
import os
import sys
import glob
import subprocess
import mozcrash
-from mozbuild.base import MozbuildObject, BinaryNotFoundException
+from mozbuild.base import MozbuildObject, BinaryNotFoundException, BuildEnvironmentNotFoundException
from mozfile import TemporaryDirectory
from mozhttpd import MozHttpd
from mozprofile import FirefoxProfile, Preferences
from mozprofile.permissions import ServerLocations
from mozrunner import FirefoxRunner, CLI
from six import string_types
PORT = 8888
@@ -82,19 +82,32 @@ if __name__ == "__main__":
docroot=os.path.join(build.topsrcdir, "build", "pgo"),
path_mappings=path_mappings,
)
httpd.start(block=False)
locations = ServerLocations()
locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
- old_profraw_files = glob.glob("*.profraw")
- for f in old_profraw_files:
- os.remove(f)
+ using_gcc = False
+ try:
+ if build.config_environment.substs.get('CC_TYPE') == 'gcc':
+ using_gcc = True
+ except BuildEnvironmentNotFoundException:
+ pass
+
+ if using_gcc:
+ for dirpath, _, filenames in os.walk('.'):
+ for f in filenames:
+ if f.endswith('.gcda'):
+ os.remove(os.path.join(dirpath, f))
+ else:
+ old_profraw_files = glob.glob('*.profraw')
+ for f in old_profraw_files:
+ os.remove(f)
with TemporaryDirectory() as profilePath:
# TODO: refactor this into mozprofile
profile_data_dir = os.path.join(build.topsrcdir, "testing", "profiles")
with open(os.path.join(profile_data_dir, "profiles.json"), "r") as fh:
base_profiles = json.load(fh)["profileserver"]
prefpaths = [
@@ -207,16 +220,20 @@ if __name__ == "__main__":
# Try to move the crash reports to the artifacts even if Firefox appears
# to exit successfully, in case there's a crash that doesn't set the
# return code to non-zero for some reason.
if get_crashreports(profilePath, name="Firefox exited successfully?") != 0:
print("Firefox exited successfully, but produced a crashreport")
sys.exit(1)
+ print('Copying profile data....')
+ os.system('pwd');
+ os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;');
+
llvm_profdata = env.get("LLVM_PROFDATA")
if llvm_profdata:
profraw_files = glob.glob("*.profraw")
if not profraw_files:
print(
"Could not find profraw files in the current directory: %s"
% os.getcwd()
)
diff --git a/build/unix/mozconfig.unix b/build/unix/mozconfig.unix
--- a/build/unix/mozconfig.unix
+++ b/build/unix/mozconfig.unix
@@ -1,16 +1,25 @@
. "$topsrcdir/build/mozconfig.common"
TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
if [ -n "$FORCE_GCC" ]; then
CC="$MOZ_FETCHES_DIR/gcc/bin/gcc"
CXX="$MOZ_FETCHES_DIR/gcc/bin/g++"
+ if [ -n "$MOZ_PGO" ]; then
+ if [ -z "$USE_ARTIFACT" ]; then
+ ac_add_options --enable-lto
+ fi
+ export AR="$topsrcdir/gcc/bin/gcc-ar"
+ export NM="$topsrcdir/gcc/bin/gcc-nm"
+ export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib"
+ fi
+
# We want to make sure we use binutils and other binaries in the tooltool
# package.
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$PATH"
ac_add_options --with-clang-path=$MOZ_FETCHES_DIR/clang/bin/clang
else
CC="$MOZ_FETCHES_DIR/clang/bin/clang"
CXX="$MOZ_FETCHES_DIR/clang/bin/clang++"
diff --git a/extensions/spellcheck/src/moz.build b/extensions/spellcheck/src/moz.build
--- a/extensions/spellcheck/src/moz.build
+++ b/extensions/spellcheck/src/moz.build
@@ -26,8 +26,10 @@ LOCAL_INCLUDES += [
]
EXPORTS.mozilla += [
"mozInlineSpellChecker.h",
"mozSpellChecker.h",
]
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
CXXFLAGS += ["-Wno-error=shadow"]
+
+CXXFLAGS += ['-fno-devirtualize']
diff --git a/python/mozbuild/mozbuild/build_commands.py b/python/mozbuild/mozbuild/build_commands.py
--- a/python/mozbuild/mozbuild/build_commands.py
+++ b/python/mozbuild/mozbuild/build_commands.py
@@ -121,19 +121,18 @@ class Build(MachCommandBase):
silent=not verbose,
ensure_exit_code=False,
append_env=append_env,
)
if status != 0:
return status
pgo_env = os.environ.copy()
- pgo_env["LLVM_PROFDATA"] = instr.config_environment.substs.get(
- "LLVM_PROFDATA"
- )
+ if instr.config_environment.substs.get('CC_TYPE') != 'gcc':
+ pgo_env["LLVM_PROFDATA"] = instr.config_environment.substs.get("LLVM_PROFDATA")
pgo_env["JARLOG_FILE"] = mozpath.join(orig_topobjdir, "jarlog/en-US.log")
pgo_cmd = [
instr.virtualenv_manager.python_path,
mozpath.join(self.topsrcdir, "build/pgo/profileserver.py"),
]
subprocess.check_call(
pgo_cmd, cwd=instr.topobjdir, env=ensure_subprocess_env(pgo_env)
)
diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
--- a/toolkit/components/terminator/nsTerminator.cpp
+++ b/toolkit/components/terminator/nsTerminator.cpp
@@ -413,16 +413,21 @@ void nsTerminator::StartWatchdog() {
// Defend against overflow
crashAfterMS = INT32_MAX;
} else {
crashAfterMS *= scaleUp;
}
}
#endif
+ // Disable watchdog for PGO train builds - writting profile information at
+ // exit may take time and it is better to make build hang rather than
+ // silently produce poorly performing binary.
+ crashAfterMS = INT32_MAX;
+
UniquePtr<Options> options(new Options());
const PRIntervalTime ticksDuration = PR_MillisecondsToInterval(1000);
options->crashAfterTicks = crashAfterMS / ticksDuration;
// Handle systems where ticksDuration is greater than crashAfterMS.
if (options->crashAfterTicks == 0) {
options->crashAfterTicks = crashAfterMS / 1000;
}

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
# Date 1560754926 -7200
# Mon Jun 17 09:02:06 2019 +0200
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
# Parent 83625bab561d09fb68aa2c71cea7cbafd9ec09b4
# Parent f5e9431a99bb1d122ccd76411f08ac6f3236c19f
#Description: reduce the rust debuginfo level on selected architectures where
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
# launchpad builders. Initially this was only on 32 bit architectures, but with
@ -12,18 +12,19 @@
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -1823,18 +1823,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
@depends('RUSTC_OPT_LEVEL', moz_optimize)
@@ -2138,19 +2138,19 @@ imply_option("RUSTC_OPT_LEVEL", "2", whe
def rustc_opt_level(opt_level_option, moz_optimize):
if opt_level_option:
return opt_level_option[0]
else:
return '1' if moz_optimize.optimize else '0'
return "1" if moz_optimize.optimize else "0"
-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers')
@depends(
- rustc_opt_level, debug_rust, "--enable-debug-symbols", "--enable-frame-pointers"
+ rustc_opt_level, debug_rust, "--enable-debug-symbols", "--enable-frame-pointers", host
)
-def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers):
+@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers', host)
+def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host):
# Cargo currently supports only two interesting profiles for building:
# development and release. Those map (roughly) to --enable-debug and
@ -33,22 +34,22 @@ diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolc
# optimization level. Since Cargo only supports 2 profiles, we're in
# a bit of a bind.
#
@@ -1847,16 +1847,18 @@ def rust_compile_flags(opt_level, debug_
@@ -2163,16 +2163,18 @@ def rust_compile_flags(opt_level, debug_
# opt-level=0 implies -C debug-assertions, which may not be desired
# unless Rust debugging is enabled.
if opt_level == '0' and not debug_rust:
if opt_level == "0" and not debug_rust:
debug_assertions = False
if debug_symbols:
debug_info = '2'
debug_info = "2"
+ if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
+ debug_info = '1'
opts = []
if opt_level is not None:
opts.append('opt-level=%s' % opt_level)
opts.append("opt-level=%s" % opt_level)
if debug_assertions is not None:
opts.append('debug-assertions=%s' %
('yes' if debug_assertions else 'no'))
opts.append("debug-assertions=%s" % ("yes" if debug_assertions else "no"))
if debug_info is not None:

View File

@ -1,25 +0,0 @@
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
--- a/build/moz.configure/lto-pgo.configure
+++ b/build/moz.configure/lto-pgo.configure
@@ -224,17 +224,20 @@ def lto(value, c_compiler, ld64_known_go
#
# https://github.com/llvm/llvm-project/blob/e7694f34ab6a12b8bb480cbfcb396d0a64fe965f/llvm/lib/Target/X86/X86.td#L1165-L1187
if target.cpu == 'x86_64':
ldflags.append('-mllvm:-mcpu=x86-64')
# We do not need special flags for arm64. Hooray for fixed-length
# instruction sets.
else:
num_cores = multiprocessing.cpu_count()
- cflags.append("-flto")
+ if len(value) and value[0].lower() == 'full':
+ cflags.append("-flto")
+ else:
+ cflags.append("-flto=thin")
cflags.append("-flifetime-dse=1")
ldflags.append("-flto=%s" % num_cores)
ldflags.append("-flifetime-dse=1")
# Tell LTO not to inline functions above a certain size, to mitigate
# binary size growth while still getting good performance.
# (For hot functions, PGO will put a multiplier on this limit.)

View File

@ -1,11 +1,11 @@
PRODUCT="firefox"
CHANNEL="release"
VERSION="83.0"
VERSION="84.0"
VERSION_SUFFIX=""
PREV_VERSION="82.0.3"
PREV_VERSION="83.0"
PREV_VERSION_SUFFIX=""
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
RELEASE_TAG="55359edc5d1cb8addecf9d2e7151782da543f67b"
RELEASE_TIMESTAMP="20201112153044"
RELEASE_TAG="98507f230e7442065b287ced065ac77d4d8ea35d"
RELEASE_TIMESTAMP="20201211215739"