mozilla-reduce-rust-debuginfo.patch
changeset 1113 8e9195853a32
parent 1112 8a4f5aea2475
child 1123 7fa561e5d7c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-reduce-rust-debuginfo.patch	Tue Nov 19 22:54:22 2019 +0100
@@ -0,0 +1,54 @@
+# HG changeset patch
+# User msirringhaus@suse.de
+# Date 1560754926 -7200
+#      Mon Jun 17 09:02:06 2019 +0200
+# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
+# Parent  fa1cf8b9cb4efdf89fe19e543fb54272b726a353
+#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
+@@ -1861,18 +1861,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
+ @depends('RUSTC_OPT_LEVEL', moz_optimize)
+ 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'
+ 
+ 
+-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers')
+-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
+     # --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.
+     #
+@@ -1885,16 +1885,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'))