FS#55914 - [chromium] Exclude unwind tables to reduce binary size

Attached to Project: Arch Linux
Opened by xsmile (xsmile) - Sunday, 08 October 2017, 12:00 GMT
Last edited by Evangelos Foutras (foutrelis) - Wednesday, 18 October 2017, 07:08 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Evangelos Foutras (foutrelis)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Consider excluding unwind tables to reduce binary size. The documentation for the GN flag says: "Omit unwind support in official builds to save space. We can use breakpad for these builds.". See [1] for more information on the impact of the flag for unofficial builds.

Steps to reproduce:
Add 'exclude_unwind_tables=true' to the _flags array in PKGBUILD.

1: https://chromium.googlesource.com/chromium/src/build/config/+/master/compiler/compiler.gni#75
This task depends upon

Closed by  Evangelos Foutras (foutrelis)
Wednesday, 18 October 2017, 07:08 GMT
Reason for closing:  Implemented
Additional comments about closing:  chromium 62.0.3202.62-1
Comment by Evangelos Foutras (foutrelis) - Sunday, 08 October 2017, 18:39 GMT
This seems like a significant size reduction of the main chromium binary (~21 MiB). I can't think of any obvious drawbacks since we strip debug symbols anyway; both versions are useless for getting meaningful backtraces.

Will probably get it in the Chromium 62 package. Thanks.
Comment by Gustavo Alvarez (sl1pkn07) - Tuesday, 10 October 2017, 22:11 GMT
ERROR at the command-line "--args":1:669: Build argument has no effect.
is_debug=false enable_widevine=true enable_hangout_services_extension=false ffmpeg_branding="ChromeOS" proprietary_codecs=true google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" google_default_client_id="413772536636.apps.googleusercontent.com" google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" fieldtrial_testing_like_official_build=false use_gtk3=true use_gconf=false use_gio=false use_gnome_keyring=false link_pulseaudio=true use_sysroot=false use_gold=false linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=true enable_nacl_nonsfi=true use_custom_libcxx=false use_vaapi=true exclude_unwind_tables=true remove_webcore_debug_symbols=true custom_toolchain="//build/toolchain/linux/unbundle:default" host_toolchain="//build/toolchain/linux/unbundle:default" is_clang=true clang_use_chrome_plugins=true
^---
The variable "exclude_unwind_tables" was set as a build argument
but never appeared in a declare_args() block in any buildfile.

To view all possible args, run "gn args --list <builddir>"


the build process continue in this point

maybe need change:

is_chrome_branded && is_official_build

to

!is_chrome_branded && !is_official_build

instead off add the option?
Comment by Evangelos Foutras (foutrelis) - Wednesday, 11 October 2017, 00:05 GMT
Looks like they moved it to a different file but placed it outside of declare_args(). I added a comment to the related issue:

https://bugs.chromium.org/p/chromium/issues/detail?id=762629#c12

Loading...