mozilla-reduce-rust-debuginfo.patch
branchfirefox84
changeset 1152 4cfe46c9a944
parent 1123 7fa561e5d7c7
child 1154 71a92b4d0527
equal deleted inserted replaced
1151:8df86bf11fc1 1152:4cfe46c9a944
     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  83625bab561d09fb68aa2c71cea7cbafd9ec09b4
     6 # Parent  f5e9431a99bb1d122ccd76411f08ac6f3236c19f
     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 --git a/build/moz.configure/toolchain.configure b/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
    13 --- a/build/moz.configure/toolchain.configure
    14 +++ b/build/moz.configure/toolchain.configure
    14 +++ b/build/moz.configure/toolchain.configure
    15 @@ -1823,18 +1823,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
    15 @@ -2138,19 +2138,19 @@ imply_option("RUSTC_OPT_LEVEL", "2", whe
    16  @depends('RUSTC_OPT_LEVEL', moz_optimize)
       
    17  def rustc_opt_level(opt_level_option, moz_optimize):
    16  def rustc_opt_level(opt_level_option, moz_optimize):
    18      if opt_level_option:
    17      if opt_level_option:
    19          return opt_level_option[0]
    18          return opt_level_option[0]
    20      else:
    19      else:
    21          return '1' if moz_optimize.optimize else '0'
    20          return "1" if moz_optimize.optimize else "0"
    22  
    21  
    23  
    22  
    24 -@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers')
    23  @depends(
       
    24 -    rustc_opt_level, debug_rust, "--enable-debug-symbols", "--enable-frame-pointers"
       
    25 +    rustc_opt_level, debug_rust, "--enable-debug-symbols", "--enable-frame-pointers", host
       
    26  )
    25 -def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers):
    27 -def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers):
    26 +@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers', host)
       
    27 +def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host):
    28 +def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host):
    28      # Cargo currently supports only two interesting profiles for building:
    29      # Cargo currently supports only two interesting profiles for building:
    29      # development and release. Those map (roughly) to --enable-debug and
    30      # development and release. Those map (roughly) to --enable-debug and
    30      # --disable-debug in Gecko, respectively.
    31      # --disable-debug in Gecko, respectively.
    31      #
    32      #
    32      # But we'd also like to support an additional axis of control for
    33      # 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      # optimization level. Since Cargo only supports 2 profiles, we're in
    34      # a bit of a bind.
    35      # a bit of a bind.
    35      #
    36      #
    36 @@ -1847,16 +1847,18 @@ def rust_compile_flags(opt_level, debug_
    37 @@ -2163,16 +2163,18 @@ def rust_compile_flags(opt_level, debug_
    37  
    38  
    38      # opt-level=0 implies -C debug-assertions, which may not be desired
    39      # opt-level=0 implies -C debug-assertions, which may not be desired
    39      # unless Rust debugging is enabled.
    40      # unless Rust debugging is enabled.
    40      if opt_level == '0' and not debug_rust:
    41      if opt_level == "0" and not debug_rust:
    41          debug_assertions = False
    42          debug_assertions = False
    42  
    43  
    43      if debug_symbols:
    44      if debug_symbols:
    44          debug_info = '2'
    45          debug_info = "2"
    45 +        if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
    46 +        if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
    46 +            debug_info = '1'
    47 +            debug_info = '1'
    47  
    48  
    48      opts = []
    49      opts = []
    49  
    50  
    50      if opt_level is not None:
    51      if opt_level is not None:
    51          opts.append('opt-level=%s' % opt_level)
    52          opts.append("opt-level=%s" % opt_level)
    52      if debug_assertions is not None:
    53      if debug_assertions is not None:
    53          opts.append('debug-assertions=%s' %
    54          opts.append("debug-assertions=%s" % ("yes" if debug_assertions else "no"))
    54                      ('yes' if debug_assertions else 'no'))
    55      if debug_info is not None: