1 # HG changeset patch |
1 # HG changeset patch |
2 # User msirringhaus@suse.de |
2 # User msirringhaus@suse.de |
3 # Date 1560754926 -7200 |
3 # Date 1560754926 -7200 |
4 # Mon Jun 17 09:02:06 2019 +0200 |
4 # Mon Jun 17 09:02:06 2019 +0200 |
5 # Node ID 428161c3b9599083e1b8710eda1760f1f707ab11 |
5 # Node ID 428161c3b9599083e1b8710eda1760f1f707ab11 |
6 # Parent 6cd963b6c82ea6629aaf4050851789b78f310338 |
6 # Parent fa1cf8b9cb4efdf89fe19e543fb54272b726a353 |
7 #Description: reduce the rust debuginfo level on selected architectures where |
7 #Description: reduce the rust debuginfo level on selected architectures where |
8 # compiling with debuginfo=2 causes the OOM killer to interrupt the build on |
8 # compiling with debuginfo=2 causes the OOM killer to interrupt the build on |
9 # launchpad builders. Initially this was only on 32 bit architectures, but with |
9 # launchpad builders. Initially this was only on 32 bit architectures, but with |
10 # firefox 63 it started happening frequently on arm64 and ppc64el too. |
10 # firefox 63 it started happening frequently on arm64 and ppc64el too. |
11 |
11 |
12 diff -r 6cd963b6c82e -r 428161c3b959 build/moz.configure/toolchain.configure |
12 diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure |
13 --- a/build/moz.configure/toolchain.configure Tue May 21 17:26:58 2019 +0200 |
13 --- a/build/moz.configure/toolchain.configure |
14 +++ b/build/moz.configure/toolchain.configure Mon Jun 17 09:02:06 2019 +0200 |
14 +++ b/build/moz.configure/toolchain.configure |
15 @@ -1865,8 +1865,8 @@ |
15 @@ -1861,18 +1861,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe |
|
16 @depends('RUSTC_OPT_LEVEL', moz_optimize) |
|
17 def rustc_opt_level(opt_level_option, moz_optimize): |
|
18 if opt_level_option: |
|
19 return opt_level_option[0] |
|
20 else: |
16 return '1' if moz_optimize.optimize else '0' |
21 return '1' if moz_optimize.optimize else '0' |
17 |
22 |
18 |
23 |
19 -@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols') |
24 -@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers') |
20 -def rust_compile_flags(opt_level, debug_rust, debug_symbols): |
25 -def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers): |
21 +@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', host) |
26 +@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers', host) |
22 +def rust_compile_flags(opt_level, debug_rust, debug_symbols, host): |
27 +def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host): |
23 # Cargo currently supports only two interesting profiles for building: |
28 # Cargo currently supports only two interesting profiles for building: |
24 # development and release. Those map (roughly) to --enable-debug and |
29 # development and release. Those map (roughly) to --enable-debug and |
25 # --disable-debug in Gecko, respectively. |
30 # --disable-debug in Gecko, respectively. |
26 @@ -1889,6 +1889,8 @@ |
31 # |
|
32 # But we'd also like to support an additional axis of control for |
|
33 # optimization level. Since Cargo only supports 2 profiles, we're in |
|
34 # a bit of a bind. |
|
35 # |
|
36 @@ -1885,16 +1885,18 @@ def rust_compile_flags(opt_level, debug_ |
|
37 |
|
38 # opt-level=0 implies -C debug-assertions, which may not be desired |
|
39 # unless Rust debugging is enabled. |
|
40 if opt_level == '0' and not debug_rust: |
|
41 debug_assertions = False |
27 |
42 |
28 if debug_symbols: |
43 if debug_symbols: |
29 debug_info = '2' |
44 debug_info = '2' |
30 + if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64': |
45 + if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64': |
31 + debug_info = '1' |
46 + debug_info = '1' |
32 |
47 |
33 opts = [] |
48 opts = [] |
34 |
49 |
|
50 if opt_level is not None: |
|
51 opts.append('opt-level=%s' % opt_level) |
|
52 if debug_assertions is not None: |
|
53 opts.append('debug-assertions=%s' % |
|
54 ('yes' if debug_assertions else 'no')) |