diff -r 84cdfb476431 -r 8e9195853a32 mozilla-reduce-rust-debuginfo.patch --- /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'))