mozilla-pgo.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Mon, 13 Feb 2023 22:24:53 +0100
branchfirefox109
changeset 1183 e69790650e3c
parent 1173 56ecd2ae6e61
child 1184 1c3d3217d679
permissions -rw-r--r--
Firefox 109.0.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# User Wolfgang Rosenauer <wr@rosenauer.org>
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
     3
# Parent  855b1f176633af8ae11c0d791c8b33e9a2ae88e0
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
--- a/build/moz.configure/lto-pgo.configure
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
+++ b/build/moz.configure/lto-pgo.configure
1173
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
     8
@@ -242,34 +242,34 @@ def lto(
1169
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
     9
             "configure."
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    10
         )
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    11
 
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    12
     if c_compiler.type == "clang":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    13
         if value == "full":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    14
             cflags.append("-flto")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    15
             ldflags.append("-flto")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    16
         else:
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    17
-            cflags.append("-flto=thin")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    18
-            ldflags.append("-flto=thin")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    19
+            cflags.append("-flto")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    20
+            ldflags.append("-flto")
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
 
1169
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    22
         if target.os == "Android" and value == "cross":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    23
             # Work around https://github.com/rust-lang/rust/issues/90088
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    24
             # by enabling the highest level of SSE the rust targets default
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    25
             # to.
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    26
             # https://github.com/rust-lang/rust/blob/bdfcb88e8b6203ccb46a2fb6649979b773efc8ac/compiler/rustc_target/src/spec/i686_linux_android.rs#L13
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    27
             # https://github.com/rust-lang/rust/blob/8d1083e319841624f64400e1524805a40d725439/compiler/rustc_target/src/spec/x86_64_linux_android.rs#L7
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    28
             if target.cpu == "x86":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    29
                 ldflags.append("-Wl,-plugin-opt=-mattr=+ssse3")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    30
             elif target.cpu == "x86_64":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    31
                 ldflags.append("-Wl,-plugin-opt=-mattr=+sse4.2")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    32
     elif c_compiler.type == "clang-cl":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    33
         if value == "full":
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    34
             cflags.append("-flto")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    35
         else:
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    36
-            cflags.append("-flto=thin")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    37
+            cflags.append("-flto")
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    38
         # With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    39
         # AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    40
         cflags.append("-fuse-ld=lld")
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
 
1169
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    42
         # Explicitly set the CPU to optimize for so the linker doesn't
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    43
         # choose a poor default.  Rust compilation by default uses the
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    44
         # pentium4 CPU on x86:
7481543bab31 Firefox 95.0.2
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1157
diff changeset
    45
         #
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
--- a/build/pgo/profileserver.py
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
+++ b/build/pgo/profileserver.py
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
@@ -6,17 +6,17 @@
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
 
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
    51
 import glob
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
 import json
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
 import os
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
    54
 import subprocess
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
 import sys
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
 import mozcrash
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
    58
-from mozbuild.base import BinaryNotFoundException, MozbuildObject
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
    59
+from mozbuild.base import BinaryNotFoundException, MozbuildObject, BuildEnvironmentNotFoundException
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
 from mozfile import TemporaryDirectory
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
 from mozhttpd import MozHttpd
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
 from mozprofile import FirefoxProfile, Preferences
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
 from mozprofile.permissions import ServerLocations
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
    64
 from mozrunner import CLI, FirefoxRunner
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
 from six import string_types
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
 PORT = 8888
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
@@ -82,19 +82,32 @@ if __name__ == "__main__":
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
         docroot=os.path.join(build.topsrcdir, "build", "pgo"),
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
         path_mappings=path_mappings,
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
     )
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
     httpd.start(block=False)
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
     locations = ServerLocations()
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
     locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
-    old_profraw_files = glob.glob("*.profraw")
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
-    for f in old_profraw_files:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
-        os.remove(f)
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
+    using_gcc = False
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
+    try:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
+        if build.config_environment.substs.get('CC_TYPE') == 'gcc':
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
+            using_gcc = True
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
+    except BuildEnvironmentNotFoundException:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
+        pass
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
+
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
+    if using_gcc:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
+        for dirpath, _, filenames in os.walk('.'):
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
+            for f in filenames:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
+                if f.endswith('.gcda'):
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
+                    os.remove(os.path.join(dirpath, f))
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
+    else:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
+        old_profraw_files = glob.glob('*.profraw')
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
+        for f in old_profraw_files:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
+            os.remove(f)
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
     with TemporaryDirectory() as profilePath:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
         # TODO: refactor this into mozprofile
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
         profile_data_dir = os.path.join(build.topsrcdir, "testing", "profiles")
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
         with open(os.path.join(profile_data_dir, "profiles.json"), "r") as fh:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
             base_profiles = json.load(fh)["profileserver"]
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   102
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
         prefpaths = [
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
   104
@@ -208,16 +221,20 @@ if __name__ == "__main__":
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
         # Try to move the crash reports to the artifacts even if Firefox appears
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   107
         # to exit successfully, in case there's a crash that doesn't set the
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   108
         # return code to non-zero for some reason.
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
         if get_crashreports(profilePath, name="Firefox exited successfully?") != 0:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   110
             print("Firefox exited successfully, but produced a crashreport")
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   111
             sys.exit(1)
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   113
+        print('Copying profile data....')
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   114
+        os.system('pwd');
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
+        os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;');
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116
+
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   117
         llvm_profdata = env.get("LLVM_PROFDATA")
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   118
         if llvm_profdata:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   119
             profraw_files = glob.glob("*.profraw")
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   120
             if not profraw_files:
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   121
                 print(
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   122
                     "Could not find profraw files in the current directory: %s"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   123
                     % os.getcwd()
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   124
                 )
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   125
diff --git a/build/unix/mozconfig.unix b/build/unix/mozconfig.unix
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   126
--- a/build/unix/mozconfig.unix
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   127
+++ b/build/unix/mozconfig.unix
1155
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   128
@@ -1,14 +1,23 @@
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   129
 . "$topsrcdir/build/mozconfig.common"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   130
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   131
 if [ -n "$FORCE_GCC" ]; then
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   132
     CC="$MOZ_FETCHES_DIR/gcc/bin/gcc"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   133
     CXX="$MOZ_FETCHES_DIR/gcc/bin/g++"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   134
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   135
+    if [ -n "$MOZ_PGO" ]; then
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   136
+        if [ -z "$USE_ARTIFACT" ]; then
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   137
+            ac_add_options --enable-lto
1155
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   138
+	fi
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   139
+	export AR="$topsrcdir/gcc/bin/gcc-ar"
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   140
+        export NM="$topsrcdir/gcc/bin/gcc-nm"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   141
+        export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   142
+    fi
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   143
+
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   144
     # We want to make sure we use binutils and other binaries in the tooltool
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   145
     # package.
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   146
     mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$PATH"
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   147
 else
1155
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   148
     # For some builds we don't want to have Clang based static-analysis activated
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   149
     if [ -z "$DISABLE_CLANG_PLUGIN" ]; then
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   150
         export ENABLE_CLANG_PLUGIN=1
b8c834aafde2 Prepare 87.0 branch based on 86.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1154
diff changeset
   151
     fi
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   152
diff --git a/extensions/spellcheck/src/moz.build b/extensions/spellcheck/src/moz.build
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   153
--- a/extensions/spellcheck/src/moz.build
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   154
+++ b/extensions/spellcheck/src/moz.build
1170
f9b2d408b7ef Firefox 96.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1169
diff changeset
   155
@@ -23,8 +23,10 @@ LOCAL_INCLUDES += [
f9b2d408b7ef Firefox 96.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1169
diff changeset
   156
     "../hunspell/glue",
f9b2d408b7ef Firefox 96.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1169
diff changeset
   157
     "../hunspell/src",
f9b2d408b7ef Firefox 96.0.3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1169
diff changeset
   158
     "/dom/base",
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   159
 ]
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   160
 EXPORTS.mozilla += [
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   161
     "mozInlineSpellChecker.h",
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   162
     "mozSpellChecker.h",
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   163
 ]
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   164
+
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   165
+CXXFLAGS += ['-fno-devirtualize']
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   166
diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   167
--- a/toolkit/components/terminator/nsTerminator.cpp
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   168
+++ b/toolkit/components/terminator/nsTerminator.cpp
1183
e69790650e3c Firefox 109.0.1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1173
diff changeset
   169
@@ -455,16 +455,21 @@ void nsTerminator::StartWatchdog() {
1152
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   170
       // Defend against overflow
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   171
       crashAfterMS = INT32_MAX;
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   172
     } else {
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   173
       crashAfterMS *= scaleUp;
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   174
     }
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   175
   }
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   176
 #endif
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   177
 
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   178
+  // Disable watchdog for PGO train builds - writting profile information at
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   179
+  // exit may take time and it is better to make build hang rather than
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   180
+  // silently produce poorly performing binary.
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   181
+  crashAfterMS = INT32_MAX;
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   182
+
4cfe46c9a944 Firefox 84.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   183
   UniquePtr<Options> options(new Options());
1173
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   184
   // crashAfterTicks is guaranteed to be > 0 as
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   185
   // crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   186
   options->crashAfterTicks = crashAfterMS / HEARTBEAT_INTERVAL_MS;
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   187
 
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   188
   DebugOnly<PRThread*> watchdogThread =
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   189
       CreateSystemThread(RunWatchdog, options.release());
56ecd2ae6e61 Firefox 99(.0.1)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1170
diff changeset
   190
   MOZ_ASSERT(watchdogThread);