2019-07-09 23:21:11 +02:00
|
|
|
# HG changeset patch
|
|
|
|
# User msirringhaus@suse.de
|
|
|
|
# Date 1560754926 -7200
|
|
|
|
# Mon Jun 17 09:02:06 2019 +0200
|
|
|
|
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
|
2020-03-12 20:14:24 +01:00
|
|
|
# Parent 83625bab561d09fb68aa2c71cea7cbafd9ec09b4
|
2019-07-09 23:21:11 +02:00
|
|
|
#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.
|
|
|
|
|
2019-10-25 11:13:30 +02:00
|
|
|
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
|
2020-03-12 20:14:24 +01:00
|
|
|
@@ -1823,18 +1823,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
|
2019-10-25 11:13:30 +02:00
|
|
|
@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:
|
2019-07-09 23:21:11 +02:00
|
|
|
return '1' if moz_optimize.optimize else '0'
|
|
|
|
|
|
|
|
|
2019-10-25 11:13:30 +02:00
|
|
|
-@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):
|
2019-07-09 23:21:11 +02:00
|
|
|
# Cargo currently supports only two interesting profiles for building:
|
|
|
|
# development and release. Those map (roughly) to --enable-debug and
|
|
|
|
# --disable-debug in Gecko, respectively.
|
2019-10-25 11:13:30 +02:00
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
#
|
2020-03-12 20:14:24 +01:00
|
|
|
@@ -1847,16 +1847,18 @@ def rust_compile_flags(opt_level, debug_
|
2019-10-25 11:13:30 +02:00
|
|
|
|
|
|
|
# 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
|
2019-07-09 23:21:11 +02:00
|
|
|
|
|
|
|
if debug_symbols:
|
|
|
|
debug_info = '2'
|
|
|
|
+ if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
|
|
|
|
+ debug_info = '1'
|
|
|
|
|
|
|
|
opts = []
|
|
|
|
|
2019-10-25 11:13:30 +02:00
|
|
|
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'))
|