MozillaFirefox/mozilla-reduce-rust-debuginfo.patch

55 lines
2.1 KiB
Diff
Raw Normal View History

# HG changeset patch
# User msirringhaus@suse.de
# Date 1560754926 -7200
# Mon Jun 17 09:02:06 2019 +0200
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
# Parent 2a004fe4d56123f6e73a9436d1a290bbfc5e0b6b
#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
# firefox 63 it started happening frequently on arm64 and ppc64el too.
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
@@ -2145,18 +2145,19 @@ def rustc_opt_level(opt_level_option, mo
@depends(
rustc_opt_level,
debug_rust,
target,
"--enable-debug-symbols",
"--enable-frame-pointers",
+ host,
)
-def rust_compile_flags(opt_level, debug_rust, target, debug_symbols, frame_pointers):
+def rust_compile_flags(opt_level, debug_rust, target, debug_symbols, frame_pointers, host):
# Cargo currently supports only two interesting profiles for building:
# development and release. Those map (roughly) to --enable-debug and
# --disable-debug in Gecko, respectively.
#
# But we'd also like to support an additional axis of control for
# optimization level. Since Cargo only supports 2 profiles, we're in
# a bit of a bind.
#
@@ -2169,16 +2170,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:
debug_assertions = False
if debug_symbols:
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)
if debug_assertions is not None:
opts.append("debug-assertions=%s" % ("yes" if debug_assertions else "no"))
if debug_info is not None: