mozilla-reduce-rust-debuginfo.patch
branchfirefox70
changeset 1112 8a4f5aea2475
parent 1097 840132a4a9b3
child 1123 7fa561e5d7c7
equal deleted inserted replaced
1111:97a6da6d7e29 1112:8a4f5aea2475
     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'))