summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2020-09-26 00:00:17 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2020-09-26 00:00:17 -0700
commit580f5d0e1d053d10b92d5375469724ede7a37846 (patch)
tree699176025046f3277b2862b97da2ddfb30e161f5
parentUpdated to 80.0 (diff)
downloadfirefox-580f5d0e1d053d10b92d5375469724ede7a37846.tar.xz
Updated to 81.0-2
Some test code for pgo
-rw-r--r--0001-Use-remoting-name-for-GDK-application-names.patch13
-rw-r--r--0002-Bug-1660901-Support-the-fstat-like-subset-of-fstatat.patch46
-rw-r--r--0003-Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system.patch31
-rw-r--r--PKGBUILD72
-rw-r--r--arc4_enable-lto-for-gcc.patch15
-rw-r--r--arc4_enable-pgo-for-gcc.patch25
-rw-r--r--mozconfig.in5
-rw-r--r--mozconfig.in.pgo77
8 files changed, 254 insertions, 30 deletions
diff --git a/0001-Use-remoting-name-for-GDK-application-names.patch b/0001-Use-remoting-name-for-GDK-application-names.patch
index 73ae042..b1dcee5 100644
--- a/0001-Use-remoting-name-for-GDK-application-names.patch
+++ b/0001-Use-remoting-name-for-GDK-application-names.patch
@@ -1,4 +1,4 @@
-From 5025aab61517c8608b555ba929c61eb0706bd6bd Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 25 Mar 2019 20:30:11 +0100
Subject: [PATCH] Use remoting name for GDK application names
@@ -9,10 +9,10 @@ Subject: [PATCH] Use remoting name for GDK application names
2 files changed, 5 insertions(+), 12 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
-index da8289200e72..452195b146f3 100644
+index 49e2c73986ab..43ebcac381c7 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3785,11 +3785,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
+@@ -3822,11 +3822,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
// consistently.
// Set program name to the one defined in application.ini.
@@ -26,7 +26,7 @@ index da8289200e72..452195b146f3 100644
// Initialize GTK here for splash.
diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
-index 163a93e2d1a4..4b6d45217671 100644
+index cfe022e65d82..06325264dbb1 100644
--- a/widget/gtk/nsAppShell.cpp
+++ b/widget/gtk/nsAppShell.cpp
@@ -24,6 +24,7 @@
@@ -37,7 +37,7 @@ index 163a93e2d1a4..4b6d45217671 100644
#include "ScreenHelperGTK.h"
#include "HeadlessScreenHelper.h"
#include "mozilla/widget/ScreenManager.h"
-@@ -175,13 +176,9 @@ nsresult nsAppShell::Init() {
+@@ -159,13 +160,9 @@ nsresult nsAppShell::Init() {
// See https://bugzilla.gnome.org/show_bug.cgi?id=747634
//
// Only bother doing this for the parent process, since it's the one
@@ -54,6 +54,3 @@ index 163a93e2d1a4..4b6d45217671 100644
}
}
}
---
-2.26.1
-
diff --git a/0002-Bug-1660901-Support-the-fstat-like-subset-of-fstatat.patch b/0002-Bug-1660901-Support-the-fstat-like-subset-of-fstatat.patch
new file mode 100644
index 0000000..427dfcd
--- /dev/null
+++ b/0002-Bug-1660901-Support-the-fstat-like-subset-of-fstatat.patch
@@ -0,0 +1,46 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jed Davis <jld@mozilla.com>
+Date: Fri, 28 Aug 2020 09:23:58 +0000
+Subject: [PATCH] Bug 1660901 - Support the fstat-like subset of fstatat in the
+ Linux sandbox policies. r=gcp
+
+Differential Revision: https://phabricator.services.mozilla.com/D88499
+---
+ security/sandbox/linux/SandboxFilter.cpp | 6 ++++++
+ security/sandbox/linux/broker/SandboxBrokerUtils.h | 2 ++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
+index e522d61e065c..4087bdc07e01 100644
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -243,6 +243,12 @@ class SandboxPolicyCommon : public SandboxPolicyBase {
+ auto path = reinterpret_cast<const char*>(aArgs.args[1]);
+ auto buf = reinterpret_cast<statstruct*>(aArgs.args[2]);
+ auto flags = static_cast<int>(aArgs.args[3]);
++
++ if (fd != AT_FDCWD && (flags & AT_EMPTY_PATH) != 0 &&
++ strcmp(path, "") == 0) {
++ return ConvertError(fstatsyscall(fd, buf));
++ }
++
+ if (fd != AT_FDCWD && path[0] != '/') {
+ SANDBOX_LOG_ERROR("unsupported fd-relative fstatat(%d, \"%s\", %p, %d)",
+ fd, path, buf, flags);
+diff --git a/security/sandbox/linux/broker/SandboxBrokerUtils.h b/security/sandbox/linux/broker/SandboxBrokerUtils.h
+index 85a006740c2c..db33b5028e77 100644
+--- a/security/sandbox/linux/broker/SandboxBrokerUtils.h
++++ b/security/sandbox/linux/broker/SandboxBrokerUtils.h
+@@ -19,10 +19,12 @@
+ typedef struct stat64 statstruct;
+ # define statsyscall stat64
+ # define lstatsyscall lstat64
++# define fstatsyscall fstat64
+ #elif defined(__NR_stat)
+ typedef struct stat statstruct;
+ # define statsyscall stat
+ # define lstatsyscall lstat
++# define fstatsyscall fstat
+ #else
+ # error Missing stat syscall include.
+ #endif
diff --git a/0003-Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system.patch b/0003-Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system.patch
new file mode 100644
index 0000000..dd5a535
--- /dev/null
+++ b/0003-Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system.patch
@@ -0,0 +1,31 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@mozilla.com>
+Date: Sun, 6 Sep 2020 20:20:39 +0000
+Subject: [PATCH] Bug 1660901 - ignore AT_NO_AUTOMOUNT in fstatat system call.
+ r=jld
+
+Per the manpage "Both stat() and lstat() act as though AT_NO_AUTOMOUNT
+was set.", so don't bail if it's set in a call to fstatat.
+
+Differential Revision: https://phabricator.services.mozilla.com/D89121
+---
+ security/sandbox/linux/SandboxFilter.cpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
+index 4087bdc07e01..c4f6c318ad1c 100644
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -254,9 +254,10 @@ class SandboxPolicyCommon : public SandboxPolicyBase {
+ fd, path, buf, flags);
+ return BlockedSyscallTrap(aArgs, nullptr);
+ }
+- if ((flags & ~AT_SYMLINK_NOFOLLOW) != 0) {
++ if ((flags & ~(AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT)) != 0) {
+ SANDBOX_LOG_ERROR("unsupported flags %d in fstatat(%d, \"%s\", %p, %d)",
+- (flags & ~AT_SYMLINK_NOFOLLOW), fd, path, buf, flags);
++ (flags & ~(AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT)), fd,
++ path, buf, flags);
+ return BlockedSyscallTrap(aArgs, nullptr);
+ }
+ return (flags & AT_SYMLINK_NOFOLLOW) == 0 ? broker->Stat(path, buf)
diff --git a/PKGBUILD b/PKGBUILD
index 00716d5..1a1fdbb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -16,10 +16,11 @@
_modclang=0
#_modclang=1 # FIXME
+_testgcc=0
pkgname=firefox
-pkgver=80.0
-pkgrel=1
+pkgver=81.0
+pkgrel=2
pkgdesc="Standalone web browser from mozilla.org"
arch=(x86_64 aarch64)
license=(MPL GPL LGPL)
@@ -28,7 +29,7 @@ depends=(gtk3 libxt mime-types dbus-glib ffmpeg ttf-font libpulse alsa-lib
bzip2 libffi icu libjpeg-turbo libevent libvpx nspr nss pixman libpng sqlite libwebp zlib)
makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb
autoconf2.13 rust clang llvm jack gtk2 nodejs cbindgen nasm
- python-setuptools python-psutil lld)
+ python-setuptools python-psutil python-zstandard lld)
optdepends=('networkmanager: Location detection via available WiFi networks'
'libnotify: Notification integration'
'alsa-utils: ALSA support'
@@ -43,26 +44,34 @@ conflicts=(firefox-esr)
source=(
"https://archive.mozilla.org/pub/$pkgname/releases/$pkgver/source/$pkgname-$pkgver.source.tar.xz"{,.asc}
0001-Use-remoting-name-for-GDK-application-names.patch
+ 0002-Bug-1660901-Support-the-fstat-like-subset-of-fstatat.patch
+ 0003-Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system.patch
$pkgname.desktop
distribution.ini
mozconfig.in
+ mozconfig.in.pgo
mozconfig.in.clang
mozconfig.in.clang.pgo
mozconfig.common.override
+ arc4_enable-lto-for-gcc.patch
arc4_enable-pgo-for-gcc.patch
arc4_remove-health-reporting.patch
arc4_remove-system-addons.patch
)
-b2sums=('3099426b27cd3c89b63be7d796c8c5a87d0ee9bd8252e5bde23ed3a61f71d611e7427ffee506224e81a88ef109eefe944f2cf3367bd636a6ed46b7351d0a4b1b'
+b2sums=('0546bad15aa89a7e4d2ca0cc000fed2170b9529f8f2cc1c1c4907649ffbcf72e8ee800083b63a767fc07b643cacb298b424ebc1ce827de209f366716e3a5135b'
'SKIP'
- 'e4cf5d0ddd2c7271f1723b5c313f0aa8a7bf2242fb301ceba1ab5a4dca655ca7b9461d0aaebe5eaccf84b2f7a4c4199cbb0c18eab2bdaff273fcb730ec27219e'
+ '870f33f4dcb411e3aa2f94c5068bccad0f07a5c4a6b5356fc55ba363bdc2ff8ba8b76d507618b7349ae190ed09deadf4c0b8b500a6692f76cd01e7f83411a2db'
+ '799ff9c88aafde5c60d852c9c9006090adce002f558985c95d5759e34aec9f6713298d3ff7e9220183053f932d8c7d849d0b715d66315ae58bc21aef891d136a'
+ '32b1b153c3affb5a6b92425813d565124603e09a654f23347206f2cbf6f928377385917312c100b8c19a556fe75066499fb5b2fe15a2fd2cf569963df12ff1c3'
'e18f2c22e394ca3b6758bc130245b254947e4d15921be3da443d6d7c3c4b0d22ead1b39fbc10a4f896edd19e2a1dffbd1cbb34dc4beb0621a6ddb70ccc53b3a7'
'877eda442eb4730600dccf209a6e961ad3122ab456bbfda4ff041e8493ebaaf96224ac218360931259ff4214482f6bf65b3a3052f977ade1a274f38ffd859535'
- '83eb896637669476878c45c68ce5c30da106cc60b41eb4944f39007f6b4a37e6b70e5ca0afedb7dba6e5fc765b4dc10c12960cd4e449a6c4e864e4179bbfb166'
+ 'f8b01cf39b9e149f1acfd1c68ab55028f758a139f972138dbd51a423633f31bdaaa08acf785e81e16a4c2353f322a8917cd07a0fb706093b4019ecca0bd7673f'
+ '08d4e0768c2323b4905b3ba539594e88132b487a4eac2ab61df36020fe6f933c338afba918aea0becd10ecf29795bf94146cefc4f6b111ea658a20fdf6e899cd'
'aa87016dabc182a4da3db1f29f4a6b274095be883febf848ddbe86615639b6a85f12b2c78ce6b18bba18516982330fb775083f4bab330738d95ee26d70f02dfa'
'ffb7ca117004a084b1bd7baed6a11b0914ec391459d662fc8887edc3206eb25c41b09f713e9bfe0ed474333d9537295842b0617dd29e9ce222fde548cd9111aa'
'1c7ac58af8b817067c7d79ffef8d9100f513d77f4fc1a2bce2684ff8d8d3cbc3d37b31865c7e5d873fd71d4649374bbd25ca08166d8afb25ffbd597759655063'
'087ea758132905cab848e3a13a13537b42f70ba3a8bfd1ef4e2933d3e874e94038b50ee583b9e7e0c7b7cc7c2cf570f7f613b661f47121b7bf207f433b939f3d'
+ '1250b2d4a713b241d9768dc386ecf9130d295587efd5070c2e494185436ca9d99a465b97ed80fe23ab14d6d07ecde8537a3a3d11ba843c4e3791b4df52e08f27'
'020695637162ce981929f54ea556100bf17e92931179a5849ca8265dfc0016f1b6599d9f77e9f71f192a1a4bb3b2d1eadbf5d5554e6c33bfa3f9388b0a3c7c6e'
'635a84c64ea9dccf41fbde33b58a72a8123ecd841995ad045bd329e23855f56ffce05670fe2d69a12c4cef7a7399bc6becfc5f40bfd8cea9a4006074672a634d')
validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases
@@ -74,14 +83,27 @@ prepare() {
# https://bugzilla.mozilla.org/show_bug.cgi?id=1530052
patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch
+ # https://bugs.archlinux.org/task/67978
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1660901
+ patch -Np1 -i ../0002-Bug-1660901-Support-the-fstat-like-subset-of-fstatat.patch
+ patch -Np1 -i ../0003-Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system.patch
+
if [ "${_modclang}" != "1" ]; then
# Apply gcc pgo patches
+ patch -p0 $srcdir/${pkgname}-${pkgver}/security/sandbox/linux/moz.build $srcdir/arc4_enable-lto-for-gcc.patch
+ fi
+
+ if [ "${_testgcc}" == "1" ]; then
+ # Apply gcc pgo patches
patch -p0 $srcdir/${pkgname}-${pkgver}/security/sandbox/linux/moz.build $srcdir/arc4_enable-pgo-for-gcc.patch
fi
if [ "${_modclang}" == "1" ]; then
- # Add the custom mozconfig for pgo
+ # Add the custom mozconfig for clang pgo
cp $srcdir/mozconfig.in.clang.pgo $srcdir/${pkgname}-${pkgver}/.mozconfig
+ elif [ "${_testgcc}" == "1" ]; then
+ # Add the custom mozconfig for gcc pgo
+ cp $srcdir/mozconfig.in.pgo $srcdir/${pkgname}-${pkgver}/.mozconfig
else
# Add the custom mozconfig
cp $srcdir/mozconfig.in $srcdir/${pkgname}-${pkgver}/.mozconfig
@@ -115,13 +137,16 @@ build() {
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
+ export MACH_USE_SYSTEM_PYTHON=1
+ # -flto breaks cargo
export CFLAGS="$CFLAGS -O3 -fstack-protector-all -fPIC"
export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -fPIC"
# LTO needs more open files
ulimit -n 4096
+
if [ "${_modclang}" == "1" ]; then
# clang does not support -fstack-clash-protection, so remove it
export CFLAGS="$(echo $CFLAGS | sed 's/ -fstack-clash-protection//' - )"
@@ -156,6 +181,39 @@ ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
END
./mach build
+
+ elif [ "${_testgcc}" == "1" ]; then
+
+ # Do 3-tier PGO
+ echo "Building instrumented browser..."
+ ./mach build
+
+ echo "Profiling instrumented browser..."
+ ./mach package
+ LLVM_PROFDATA=llvm-profdata \
+ JARLOG_FILE="$PWD/jarlog" \
+ xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
+ ./mach python build/pgo/profileserver.py
+
+ stat -c "Profile data found (%s bytes)" merged.profdata
+ test -s merged.profdata
+
+ stat -c "Jar log found (%s bytes)" jarlog
+ test -s jarlog
+
+ echo "Removing instrumented browser..."
+ ./mach clobber
+
+ echo "Building optimized browser..."
+ # Add the custom mozconfig
+ cp $srcdir/mozconfig.in $srcdir/${pkgname}-${pkgver}/.mozconfig
+ cat >.mozconfig - <<END
+ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
+ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
+mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
+END
+ ./mach build
+
else
echo "Building optimized browser..."
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" ./mach build
diff --git a/arc4_enable-lto-for-gcc.patch b/arc4_enable-lto-for-gcc.patch
new file mode 100644
index 0000000..9f149e8
--- /dev/null
+++ b/arc4_enable-lto-for-gcc.patch
@@ -0,0 +1,15 @@
+--- a/security/sandbox/linux/moz.build
++++ b/security/sandbox/linux/moz.build
+@@ -99,9 +99,8 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc')
+ # 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
+ # 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']
++if CONFIG['CC_TYPE'] != 'clang':
++ LDFLAGS += ['--param', 'lto-partitions=1']
+
+ DEFINES['NS_NO_XPCOM'] = True
+ DisableStlWrapping()
+
diff --git a/arc4_enable-pgo-for-gcc.patch b/arc4_enable-pgo-for-gcc.patch
index 9f149e8..d2d0415 100644
--- a/arc4_enable-pgo-for-gcc.patch
+++ b/arc4_enable-pgo-for-gcc.patch
@@ -1,15 +1,12 @@
---- a/security/sandbox/linux/moz.build
-+++ b/security/sandbox/linux/moz.build
-@@ -99,9 +99,8 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc')
- # 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
- # 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']
-+if CONFIG['CC_TYPE'] != 'clang':
-+ LDFLAGS += ['--param', 'lto-partitions=1']
-
- DEFINES['NS_NO_XPCOM'] = True
- DisableStlWrapping()
+--- a/build/moz.configure/lto-pgo.configure
++++ b/build/moz.configure/lto-pgo.configure
+@@ -135,9 +135,6 @@
+ if not want_cross:
+ return
+- if c_compiler.type == 'gcc':
+- die('Cannot use cross-language PGO with GCC.')
+-
+ return True
+
+ set_config('MOZ_PGO_RUST', moz_pgo_rust)
diff --git a/mozconfig.in b/mozconfig.in
index 88f206c..c48e7b7 100644
--- a/mozconfig.in
+++ b/mozconfig.in
@@ -7,7 +7,7 @@ ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --disable-hardening
ac_add_options --enable-rust-simd
-ac_add_options --enable-lto
+ac_add_options --enable-lto=full
ac_add_options --enable-linker=gold
ac_add_options --disable-elf-hack
#ac_add_options --enable-strip
@@ -73,3 +73,6 @@ ac_add_options --disable-webrtc
ac_add_options --disable-webspeech
mk_add_options MOZ_MAKE_FLAGS="-j4"
+
+#ac_add_options --enable-lto=cross
+#ac_add_options --enable-profile-use=cross
diff --git a/mozconfig.in.pgo b/mozconfig.in.pgo
new file mode 100644
index 0000000..257eb68
--- /dev/null
+++ b/mozconfig.in.pgo
@@ -0,0 +1,77 @@
+ac_add_options --enable-application=browser
+export MOZ_APP_REMOTINGNAME=firefox
+
+# Compiler and Linker
+ac_add_options --prefix=/usr
+ac_add_options --enable-release
+ac_add_options --enable-optimize
+ac_add_options --disable-hardening
+ac_add_options --enable-rust-simd
+ac_add_options --enable-lto=full
+ac_add_options --enable-linker=gold
+ac_add_options --disable-elf-hack
+#ac_add_options --enable-strip
+#ac_add_options --enable-install-strip
+export MOZ_PGO=1
+export CC=gcc
+export CXX=g++
+export AR=gcc-ar
+export NM=gcc-nm
+export RANLIB=gcc-ranlib
+
+# Branding
+ac_add_options --enable-official-branding
+ac_add_options --enable-update-channel=release
+ac_add_options --with-distribution-id=org.artixlinux
+ac_add_options --with-unsigned-addon-scopes=app,system
+ac_add_options --allow-addon-sideload
+ac_add_options MOZ_TELEMETRY_REPORTING=
+export MOZILLA_OFFICIAL=1
+export MOZ_REQUIRE_SIGNING=0
+export MOZ_ADDON_SIGNING=0
+
+# System libraries
+#ac_add_options --with-system-bz2
+ac_add_options --with-system-ffi
+ac_add_options --with-system-icu
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --enable-system-pixman
+#ac_add_options --with-system-png
+#ac_add_options --enable-system-sqlite
+ac_add_options --with-system-webp
+ac_add_options --with-system-zlib
+
+# Features
+ac_add_options --enable-alsa
+ac_add_options --enable-av1
+ac_add_options --enable-jack
+
+# Disables
+# accessibility required for ff71+
+ac_add_options --disable-accessibility
+ac_add_options --disable-cdp
+ac_add_options --disable-crashreporter
+ac_add_options --disable-debug
+ac_add_options --disable-debug-symbols
+ac_add_options --disable-eme
+# # marionette required for the xorg tests
+# ac_add_options --disable-marionette
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-parental-controls
+# # precompiled-startupcache must be disabled to optimize for a newer
+# # instruction set target
+#ac_add_options --disable-precompiled-startupcache
+ac_add_options --disable-synth-speechd
+ac_add_options --disable-tests
+ac_add_options --disable-updater
+ac_add_options --disable-webrtc
+# # Disabling webspeech breaks compiling ff67+
+ac_add_options --disable-webspeech
+
+mk_add_options MOZ_MAKE_FLAGS="-j4"
+
+ac_add_options --enable-profile-generate=cross