Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH v5 1/5] distro/include: Add debug_build.inc when DEBUG_BUILD is enabled
@ 2025-10-10  7:52 Hongxu Jia
  2025-10-10  7:52 ` [PATCH v5 2/5] debug_build.inc: collect debug build tuning configuration Hongxu Jia
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Hongxu Jia @ 2025-10-10  7:52 UTC (permalink / raw)
  To: peter.kjellerstedt, randy.macleod, raj.khem, openembedded-core,
	mathieu.dubois-briand

In bitbake.conf, use ??= to set *_OPTIMIZATION, add a new include
file debug_build.inc to use ?= to override *_OPTIMIZATION when
DEBUG_BUILD is enabled

When DEBUG_BUILD is enabled:
- Defer inherit bblcass debug_build, while setting DEBUG_BUILD = "1" in
  local.conf, the debug build is enabled globally. For the recipe (such
  as qemu) which doesn't work without optimization, set DEBUG_BUILD = "0"
  to disable it for a given recipe

- Use include_all to allow other layers to add their own debug build
  configurations

Suggested-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta/classes-global/base.bbclass         | 3 +++
 meta/classes-recipe/debug_build.bbclass  | 8 ++++++++
 meta/conf/bitbake.conf                   | 9 +++------
 meta/conf/distro/include/debug_build.inc | 5 +++++
 meta/conf/documentation.conf             | 2 +-
 5 files changed, 20 insertions(+), 7 deletions(-)
 create mode 100644 meta/classes-recipe/debug_build.bbclass
 create mode 100644 meta/conf/distro/include/debug_build.inc

diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass
index 6de17d1bb5..0f4398e26f 100644
--- a/meta/classes-global/base.bbclass
+++ b/meta/classes-global/base.bbclass
@@ -35,6 +35,9 @@ TOOLCHAIN_NATIVE ??= "${PREFERRED_TOOLCHAIN_NATIVE}"
 inherit_defer toolchain/${TOOLCHAIN_NATIVE}-native
 inherit_defer toolchain/${TOOLCHAIN}
 
+DEBUG_BUILD ??= "0"
+inherit_defer ${@oe.utils.vartrue('DEBUG_BUILD', 'debug_build', '', d)}
+
 def lsb_distro_identifier(d):
     adjust = d.getVar('LSB_DISTRO_ADJUST')
     adjust_func = None
diff --git a/meta/classes-recipe/debug_build.bbclass b/meta/classes-recipe/debug_build.bbclass
new file mode 100644
index 0000000000..a917e9cbc9
--- /dev/null
+++ b/meta/classes-recipe/debug_build.bbclass
@@ -0,0 +1,8 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+# Allow other layers to add their own debug build configurations
+include_all conf/distro/include/debug_build.inc
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 5406e542db..52ceb76bbb 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -658,13 +658,10 @@ DEBUG_PREFIX_MAP ?= "\
 "
 DEBUG_LEVELFLAG ?= "-g"
 
-FULL_OPTIMIZATION = "-O2 ${DEBUG_LEVELFLAG}"
-DEBUG_OPTIMIZATION = "-Og ${DEBUG_LEVELFLAG}"
-SELECTED_OPTIMIZATION = "${@d.getVar(oe.utils.vartrue('DEBUG_BUILD', 'DEBUG_OPTIMIZATION', 'FULL_OPTIMIZATION', d))}"
-SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION DEBUG_BUILD"
+FULL_OPTIMIZATION ??= "-O2 ${DEBUG_LEVELFLAG}"
+SELECTED_OPTIMIZATION ??= "${FULL_OPTIMIZATION}"
 # compiler flags for native/nativesdk
-BUILD_OPTIMIZATION = "${@oe.utils.vartrue('DEBUG_BUILD', '-Og -g', '-O2', d)}"
-BUILD_OPTIMIZATION[vardeps] += "DEBUG_BUILD"
+BUILD_OPTIMIZATION ??= "-O2"
 
 ##################################################################
 # Reproducibility
diff --git a/meta/conf/distro/include/debug_build.inc b/meta/conf/distro/include/debug_build.inc
new file mode 100644
index 0000000000..95e09e64f5
--- /dev/null
+++ b/meta/conf/distro/include/debug_build.inc
@@ -0,0 +1,5 @@
+# Override SELECTED_OPTIMIZATION and BUILD_OPTIMIZATION when DEBUG_BUILD is enabled.
+DEBUG_OPTIMIZATION ?= "-Og ${DEBUG_LEVELFLAG}"
+SELECTED_OPTIMIZATION ?= "${DEBUG_OPTIMIZATION}"
+# compiler flags for native/nativesdk
+BUILD_OPTIMIZATION ?= "-Og -g"
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index 741130a392..2a7418ccb3 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -129,7 +129,7 @@ CVE_CHECK_LAYER_INCLUDELIST[doc] = "Defines which layers to include during cve-c
 D[doc] = "The destination directory."
 DATE[doc] = "The date the build was started using YMD format."
 DATETIME[doc] = "The date and time the build was started."
-DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
+DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable and includes file conf/distro/include/debug_build.inc"
 DEBUG_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-Og ${DEBUG_LEVELFLAG}'."
 DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
 DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2025-12-17 20:43 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-10  7:52 [PATCH v5 1/5] distro/include: Add debug_build.inc when DEBUG_BUILD is enabled Hongxu Jia
2025-10-10  7:52 ` [PATCH v5 2/5] debug_build.inc: collect debug build tuning configuration Hongxu Jia
2025-10-10  7:52 ` [PATCH v5 3/5] debug_build.inc: override INHIBIT_SYSROOT_STRIP for cross and native Hongxu Jia
2025-12-15 12:02   ` [OE-core] " Richard Purdie
2025-12-16  9:07     ` Hongxu Jia
2025-10-10  7:52 ` [PATCH v5 4/5] debug_build.inc: override MESON_BUILDTYPE for meson.bbclass Hongxu Jia
2025-12-15 12:02   ` [OE-core] " Richard Purdie
2025-12-16  9:08     ` Hongxu Jia
2025-10-10  7:52 ` [PATCH v5 5/5] debug_build.inc: override BUILD_MODE and BUILD_DIR for cargo.bbclass Hongxu Jia
2025-12-15 12:04   ` [OE-core] " Richard Purdie
2025-12-16  9:08     ` Hongxu Jia
2025-12-15 12:00 ` [OE-core] [PATCH v5 1/5] distro/include: Add debug_build.inc when DEBUG_BUILD is enabled Richard Purdie
2025-12-15 12:30   ` Khem Raj
2025-12-16  9:06   ` Hongxu Jia
2025-12-17 20:43   ` Peter Kjellerstedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox