chromium*: set by default debugging symbol level to 1 04/27104/4
authorJose Dapena Paz <jdapena@igalia.com>
Thu, 20 Jan 2022 15:17:12 +0000 (16:17 +0100)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tue, 1 Feb 2022 21:50:48 +0000 (21:50 +0000)
Instead of forcing symbol level to 0, that removes all debugging
information from build, set the default level to 1.

This change adds two new PACKAGECONFIG named "debug" (for setting
the symbol level for the whole build to 2) and "debug-blink" (for
setting the symbol level for blink part to 2). By default, if not
present, symbol level will be set to 1.

Symbol level is equivalent to the -g level (symbol_level=1 means
-g1, symbol_level=2 means -g or -g2).

This is copied from the webOS OSE web runtime Yocto recipe.

Bug-AGL: SPEC-4233
Change-Id: I70a983a04497aefdf9fde7074bbf0cfdf0bb8eab
Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
recipes-wam/chromium/chromium.inc

index e1067ca..c6bc949 100644 (file)
@@ -64,6 +64,12 @@ PACKAGECONFIG[use-upstream-wayland] = " \
     ozone_platform_wayland_external=true ozone_platform_wayland=false \
 "
 
+# Options to enable debug build. Add this PACKAGECONFIG to local.conf
+# to enable debug build. By default debug is completely disabled to
+# speed up build
+PACKAGECONFIG[debug] = "symbol_level=2 use_debug_fission=true,symbol_level=1"
+PACKAGECONFIG[debug-blink] = "blink_symbol_level=2 use_debug_fission=true,blink_symbol_level=1"
+
 GN_ARGS = "\
     enable_memorymanager_webapi=false\
     ffmpeg_branding=\"Chrome\"\
@@ -104,26 +110,6 @@ GN_ARGS += "is_debug=false is_official_build=true"
 #          "is_cfi requires setting is_clang = true in 'gn args'")
 GN_ARGS += "is_cfi=false"
 
-# By default, passing is_official_build=true to GN causes its symbol_level
-# variable to be set to "2". This means the compiler will be passed "-g2" and
-# we will end up with a very large chrome binary (around 5Gb as of M58)
-# regardless of whether DEBUG_BUILD has been set or not. In addition, binutils,
-# file and other utilities are unable to read a 32-bit binary this size, which
-# causes it not to be stripped.
-# The solution is two-fold:
-# 1. Make sure -g is not passed on 32-bit architectures via DEBUG_FLAGS. -g is
-#    the same as -g2. -g1 generates an 800MB binary, which is a lot more
-#    manageable.
-# 2. Explicitly pass symbol_level=0 to GN. This causes -g0 to be passed
-#    instead, so that if DEBUG_BUILD is not set GN will not create a huge debug
-#    binary anyway. Since our compiler flags are passed after GN's, -g0 does
-#    not cause any issues if DEBUG_BUILD is set, as -g1 will be passed later.
-DEBUG_FLAGS:remove:arm = "-g"
-DEBUG_FLAGS:append:arm = "-g1"
-DEBUG_FLAGS:remove:x86 = "-g"
-DEBUG_FLAGS:append:x86 = "-g1"
-GN_ARGS += "symbol_level=0"
-
 # We do not want to use Chromium's own Debian-based sysroots, it is easier to
 # just let Chromium's build system assume we are not using a sysroot at all and
 # let Yocto handle everything.