diff -up firefox-64.0/build/moz.configure/toolchain.configure.1516081 firefox-64.0/build/moz.configure/toolchain.configure --- firefox-64.0/build/moz.configure/toolchain.configure.1516081 2018-12-07 03:56:20.000000000 +0100 +++ firefox-64.0/build/moz.configure/toolchain.configure 2019-01-03 15:30:08.207368056 +0100 @@ -1304,7 +1304,7 @@ def pgo_flags(compiler, build_env, targe if compiler.type == 'gcc': return namespace( - gen_cflags=['-fprofile-generate'], + gen_cflags=['-fprofile-generate', '-DMOZ_PROFILE_INSTRUMENTATION'], gen_ldflags=['-fprofile-generate'], use_cflags=['-fprofile-use', '-fprofile-correction', '-Wcoverage-mismatch'], @@ -1325,7 +1325,8 @@ def pgo_flags(compiler, build_env, targe if gen_ldflags: return namespace( - gen_cflags=['-fprofile-instr-generate'], + gen_cflags=['-fprofile-instr-generate', + '-DMOZ_PROFILE_INSTRUMENTATION'], gen_ldflags=gen_ldflags, use_cflags=['-fprofile-instr-use=%s' % profdata, '-Wno-error=profile-instr-out-of-date', diff -up firefox-64.0/toolkit/components/terminator/nsTerminator.cpp.1516081 firefox-64.0/toolkit/components/terminator/nsTerminator.cpp --- firefox-64.0/toolkit/components/terminator/nsTerminator.cpp.1516081 2019-01-03 15:30:08.207368056 +0100 +++ firefox-64.0/toolkit/components/terminator/nsTerminator.cpp 2019-01-03 15:31:33.445034029 +0100 @@ -419,6 +419,12 @@ } } #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. +#ifdef MOZ_PROFILE_INSTRUMENTATION + crashAfterMS = INT32_MAX; +#endif UniquePtr options(new Options()); const PRIntervalTime ticksDuration = PR_MillisecondsToInterval(1000);