From patchwork Mon Dec 22 14:53:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxu Jia X-Patchwork-Id: 77136 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8221AE674BC for ; Mon, 22 Dec 2025 14:54:22 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.81374.1766415254412862121 for ; Mon, 22 Dec 2025 06:54:14 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=WeoIB6vg; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=44517665e1=hongxu.jia@windriver.com) Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BMBObYt060767; Mon, 22 Dec 2025 14:54:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=PPS06212021; bh=sGHLu+YdcfnlNvOc5zP+ bOCcatGosqI1gN6x/NKKlns=; b=WeoIB6vgPbfiiHy+O2mn+Khq5NldJsw1JYVM Ws8p4zu+e7GUNzzE21ybjcIGmywB+Bdpn2yJ3Bc3fYX+VjcgctFtbTFZ3pyJmw8s w8agAOTDw8+6bcbXBAmSW+X259ABTKXJEgT73w4VfDdfXzzYbo7XRb4F+oVHHnDp eNms7YQfS7NIjRaNWWljK1a8V/ejHzJpV8vmGs2NIoRf1ejNW4wrW72Z1AhYZPpP ss0EXGA0t8KREt9LVcbw4t2keDhAXhVK4H3R0rU3rCoA5K3jJ9XhDcUR9C41EXWZ ctrrykMNMKn3KUctceW5NSxwCOFIfzbLE7n2cVnx6j63bQUYVw== Received: from ala-exchng01.corp.ad.wrs.com ([128.224.246.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4b5h0vhws8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 22 Dec 2025 14:54:10 +0000 (GMT) Received: from ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) by ala-exchng01.corp.ad.wrs.com (10.11.224.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Mon, 22 Dec 2025 06:54:09 -0800 Received: from pek-lpg-core5.wrs.com (10.11.232.110) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server id 15.1.2507.61 via Frontend Transport; Mon, 22 Dec 2025 06:54:08 -0800 From: Hongxu Jia To: , , Subject: [PATCH v7 1/6] distro/include: rework debug friendly optimization Date: Mon, 22 Dec 2025 22:53:58 +0800 Message-ID: <20251222145403.3688113-1-hongxu.jia@windriver.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: jpTyHPa6tlxcc-4GxzulCHll6Wf4eGfH X-Authority-Analysis: v=2.4 cv=I6Fohdgg c=1 sm=1 tr=0 ts=69495b92 cx=c_pps a=AbJuCvi4Y3V6hpbCNWx0WA==:117 a=AbJuCvi4Y3V6hpbCNWx0WA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=69wJf7TsAAAA:8 a=3-RhneuVAAAA:8 a=ag1SF4gXAAAA:8 a=t7CeM3EgAAAA:8 a=PvFB28OBcufTlglzE9IA:9 a=JjNjme-Jjdp7XvkV:21 a=STXwoKBC1RUA:10 a=Fg1AiH1G6rFz08G2ETeA:22 a=VLVLkjT_5ZicWzSuYqSo:22 a=Yupwre4RP9_Eg_Bd0iYG:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: jpTyHPa6tlxcc-4GxzulCHll6Wf4eGfH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIyMDEzNSBTYWx0ZWRfX936CrJiOhoip m55cmuPnRIDZf0E6clCCZHg0KqduiW61d2h6+24AUT2NXfUQwrymFaimyzuY64VHTkTCpYh+06m F8MRGTC9gm1IzHDlOpL8IfjEnbRu1IOLeP15Qi/pUw6jqKh8mmzjMscjhrrl18rZLrQmG7k+QII vAwKmvzIKOtJY/RnruZzKjBREvw3mMdlqChpuThp7k80k3SYUJe4OwlOeXc6CAjoRJW4rUh87iB TwfozyMWlhiGKQnZPHeTDJao6Y+NagZ7Qa/ajqGTwAK5rhpsb1RcdpCxnugQUjVG/UJhJQcUnbG EQAuYC2qnNCd4PS4BQ2/CHZxAsXA506LJ6DTzd8i3WN7uHczRTDh/aFEDXjbKF6Q6bjxMJUQAr1 zozGfVsjOsAOQB+6HsbtHhg4ZJ9acaRlAuT7c9tCY8VAAa1k5x/W77DbBuQfM3AUf4g6vHuFXma 9rjW7PCBxB0kEGv4tPg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-22_01,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 adultscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512220135 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Dec 2025 14:54:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/228304 The problem with DEBUG_BUILD is that we have a lot of debug information in builds anyway and this is now unclear what it means. The documentation.conf entry mentions packages which is now incorrect too. The variable is a very old one and the interface is poorly designed compared to other areas now. This commit drop DEBUG_BUILD, use DEBUG_OPTIMIZE to instead, add debug-optimize.bbclass and debug-optimize.inc. Use variable DEBUG_OPTIMIZE to defer inherit debug-optimize.bbclass conditionally. Make a config fragment core/yocto/debug-optimize to set DEBUG_OPTIMIZE ?= 1 to enable debug friendly optimize. For the recipe (such as qemu) which doesn't work with debug optimization, set DEBUG_OPTIMIZE = "0" to disable it for a given recipe even though config fragment core/yocto/debug-optimize is enabled In bitbake.conf, use ??= to set *_OPTIMIZATION, in debug-optimize.inc to use ?= to override *_OPTIMIZATION In debug-optimize.bbclass, include_all debug-optimize.inc to allow other layers to add their own debug optimization configurations. User should use the following ways to enable debug optimize $ bitbake-config-build enable-fragment core/yocto/debug-optimize Or $ echo 'OE_FRAGMENTS += "core/yocto/debug-optimize"' >> conf/local.conf NOTE: we do not encourage user to enable debug friendly optimization by setting DEBUG_OPTIMIZE = '1' directly, because the variable override is not certainty, which is affected by the order of configuration parsing Suggested-by: Peter Kjellerstedt Suggested-by: Richard Purdie Signed-off-by: Hongxu Jia --- meta/classes-global/base.bbclass | 3 +++ meta/classes/debug-optimize.bbclass | 8 ++++++++ meta/conf/bitbake.conf | 9 +++------ meta/conf/distro/include/debug-optimize.inc | 5 +++++ meta/conf/documentation.conf | 4 ++-- meta/conf/fragments/yocto/debug-optimize.conf | 7 +++++++ meta/conf/templates/default/local.conf.sample.extended | 2 +- meta/recipes-devtools/qemu/qemu.inc | 4 ++-- 8 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 meta/classes/debug-optimize.bbclass create mode 100644 meta/conf/distro/include/debug-optimize.inc create mode 100644 meta/conf/fragments/yocto/debug-optimize.conf diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index cf303c237a..3c9488cd45 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_OPTIMIZE ??= "0" +inherit_defer ${@oe.utils.vartrue('DEBUG_OPTIMIZE', 'debug-optimize', '',d)} + def lsb_distro_identifier(d): adjust = d.getVar('LSB_DISTRO_ADJUST') adjust_func = None diff --git a/meta/classes/debug-optimize.bbclass b/meta/classes/debug-optimize.bbclass new file mode 100644 index 0000000000..8d26d03c2c --- /dev/null +++ b/meta/classes/debug-optimize.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-optimize.inc diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 88f4d0df69..653d396c79 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -659,13 +659,10 @@ DEBUG_PREFIX_MAP ?= "${DEBUG_PREFIX_MAP_EXTRA} \ " 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-optimize.inc b/meta/conf/distro/include/debug-optimize.inc new file mode 100644 index 0000000000..b5fb3bbf78 --- /dev/null +++ b/meta/conf/distro/include/debug-optimize.inc @@ -0,0 +1,5 @@ +# Override SELECTED_OPTIMIZATION and BUILD_OPTIMIZATION when fragment 'core/yocto/debug-optimize' 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..956d4a79a6 100644 --- a/meta/conf/documentation.conf +++ b/meta/conf/documentation.conf @@ -129,8 +129,8 @@ 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_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-Og ${DEBUG_LEVELFLAG}'." +DEBUG_OPTIMIZE[doc] = "Specifies to build recipe with debugging friendly optimization. This influences the value of the SELECTED_OPTIMIZATION variable." 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)." DEPLOY_DIR[doc] = "Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system." @@ -370,7 +370,7 @@ SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creat SDKIMAGE_FEATURES[doc] = "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'." SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items." SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable." -SELECTED_OPTIMIZATION[doc] = "The variable takes the value of FULL_OPTIMIZATION unless DEBUG_BUILD = '1'. In this case, the value of DEBUG_OPTIMIZATION is used." +SELECTED_OPTIMIZATION[doc] = "The variable takes the value of FULL_OPTIMIZATION unless fragment 'core/yocto/debug-optimize' is enabled. In this case, the value of DEBUG_OPTIMIZATION is used." SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty." SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS[doc] = "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe." SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change." diff --git a/meta/conf/fragments/yocto/debug-optimize.conf b/meta/conf/fragments/yocto/debug-optimize.conf new file mode 100644 index 0000000000..000b5a50cd --- /dev/null +++ b/meta/conf/fragments/yocto/debug-optimize.conf @@ -0,0 +1,7 @@ +BB_CONF_FRAGMENT_SUMMARY = "Specifies to build recipes with debugging friendly optimization. \ +This influences the value of the SELECTED_OPTIMIZATION variable." +BB_CONF_FRAGMENT_DESCRIPTION = "Enables full debug and backtrace capabilities for all programs \ +and libraries in the image, by modifying the SELECTED_OPTIMIZATION variable, \ +setting it to "DEBUG_OPTIMIZATION"." + +DEBUG_OPTIMIZE ?= "1" diff --git a/meta/conf/templates/default/local.conf.sample.extended b/meta/conf/templates/default/local.conf.sample.extended index a898b18d59..ecf1855d2a 100644 --- a/meta/conf/templates/default/local.conf.sample.extended +++ b/meta/conf/templates/default/local.conf.sample.extended @@ -67,7 +67,7 @@ # # Uncomment this to change the optimization to make debugging easer, at the # possible cost of performance. -# DEBUG_BUILD = "1" +# OE_FRAGMENTS += "core/yocto/debug-optimize" # # Uncomment this to disable the stripping of the installed binaries # INHIBIT_PACKAGE_STRIP = "1" diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 63414196fa..b3c5be11d6 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -60,8 +60,8 @@ COMPATIBLE_HOST:mipsarchn64 = "null" COMPATIBLE_HOST:riscv32 = "null" # Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html -# upstream states qemu doesn't work without optimization -DEBUG_BUILD = "0" +# upstream states qemu doesn't work with debug friendly optimization +DEBUG_OPTIMIZE = "0" do_install:append() { # Prevent QA warnings about installed ${localstatedir}/run From patchwork Mon Dec 22 14:53:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxu Jia X-Patchwork-Id: 77139 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E661E677E3 for ; Mon, 22 Dec 2025 14:54:22 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.81376.1766415256759111852 for ; Mon, 22 Dec 2025 06:54:16 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=nZYvegyL; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=44517665e1=hongxu.jia@windriver.com) Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BMBxBG6116512; Mon, 22 Dec 2025 14:54:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=PPS06212021; bh=B/DsSw9mVpnHpWhnHdhqx8+lhJQZ1mS5lhj7tAUW6p8=; b=nZYvegyL1oaH 95toNpvELRa9we/ok5YEz8mF+w+tnvxsb3eI+BFbrJJMM/WX4Xls2B4CQ80s59ln 5EJwA+gFhQgTvkYVxCPjd5MZjTck0FmAGWZzZtG06HbRR0gBJswFY7kKidna9b/C j/8aOYrx6ddNvjdd21z8b6uQUCiqyz1mgXMzqdXne7gfPNqg5NzJfhdRPZzB1yL7 +uU6BP4yFmf0+hdGD1UJd6BWmzGFbUvNkqY2SqQ561yf4xV+gklTHrW8WeK2O6Gt 4DDOy3fUEqm7cMW5WiynyehMrjHVI+PCRUnzG4Iuln9CaWnDgCtSNCpy6YHipdEB 9p6LNZFbjQ== Received: from ala-exchng01.corp.ad.wrs.com ([128.224.246.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4b5h0vhws9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 22 Dec 2025 14:54:11 +0000 (GMT) Received: from ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) by ala-exchng01.corp.ad.wrs.com (10.11.224.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Mon, 22 Dec 2025 06:54:10 -0800 Received: from pek-lpg-core5.wrs.com (10.11.232.110) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server id 15.1.2507.61 via Frontend Transport; Mon, 22 Dec 2025 06:54:09 -0800 From: Hongxu Jia To: , , Subject: [PATCH v7 2/6] debug-optimize.inc: collect debug optimization tuning configuration Date: Mon, 22 Dec 2025 22:53:59 +0800 Message-ID: <20251222145403.3688113-2-hongxu.jia@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251222145403.3688113-1-hongxu.jia@windriver.com> References: <20251222145403.3688113-1-hongxu.jia@windriver.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: lRcyy_NgM8miEtf4z32q98iRvRm9Hr2Z X-Authority-Analysis: v=2.4 cv=I6Fohdgg c=1 sm=1 tr=0 ts=69495b93 cx=c_pps a=AbJuCvi4Y3V6hpbCNWx0WA==:117 a=AbJuCvi4Y3V6hpbCNWx0WA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=iGHA9ds3AAAA:8 a=3-RhneuVAAAA:8 a=t7CeM3EgAAAA:8 a=p_J065krOJSGb3ilSzMA:9 a=IDjme54_S0fX3SJZ:21 a=nM-MV4yxpKKO9kiQg6Ot:22 a=VLVLkjT_5ZicWzSuYqSo:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: lRcyy_NgM8miEtf4z32q98iRvRm9Hr2Z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIyMDEzNSBTYWx0ZWRfX9grMw3EkjSln KVFgQDPwz45If4NrUxpqvudP28Pcwvb/C/Bnt1T1IQMv6yAuBYG1q9pk9Vvy6sgOuvz65r2vaug OE3HgIgE3FgxnjEnio7f3/OS5wvveNlHQ3QvX/xNs11FAzzyBi2qsFVw/VluMPQNgkPeq02adhS FnenmKPm1cwuZe8q+gRN0VVlZSj71IX4MiUCEgLzIrD1Zt322+xZZYT2sqKXaNst+kUwYZfPB/r hyh/XuhF1+086MKbQbGW1MHLFQpAPO9MT2QrM7XKt64pUG8eXmxVD37c8yEuAJl5HBJfb1be5hi MGJGGEftzo53Q0y+xOLRoBel2AIVgKMxEqir8VkHxXR+0nR8I3xwE4MAT0zBa0Nn+eHvaG0cfse bxrq2JE2z4PJTNsNaQR+Svo2pXbsf9sLaMWbrITFsQalWCC0MqZANksnu+l+aX1PbIErXWrjY8p pHZVL+VfeovA1wlXlPg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-22_01,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 adultscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512220135 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Dec 2025 14:54:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/228305 The modern compilers and code seem to require extra steps to avoid DEBUG errors, Move debug tuning configuration from recipes to an include file to address these errors. Drop `:remove' operation on variable, override variables directly Suggested-by: Peter Kjellerstedt Signed-off-by: Hongxu Jia --- meta/conf/distro/include/debug-optimize.inc | 37 +++++++++++++++++++ meta/recipes-connectivity/kea/kea_3.0.1.bb | 10 ----- .../debugedit/debugedit_5.2.bb | 2 - meta/recipes-devtools/gcc/gcc-sanitizers.inc | 3 -- .../python/python3-lxml_6.0.2.bb | 12 ------ meta/recipes-extended/bash/bash_5.3.bb | 3 -- meta/recipes-extended/mdadm/mdadm_4.4.bb | 2 - .../jpeg/libjpeg-turbo_3.1.2.bb | 3 -- .../vulkan-validation-layers_1.4.328.1.bb | 2 - meta/recipes-kernel/lttng/lttng-ust_2.14.0.bb | 1 - meta/recipes-kernel/perf/perf.bb | 2 - meta/recipes-sato/webkit/webkitgtk_2.50.0.bb | 3 +- meta/recipes-support/vim/vim_9.1.bb | 2 +- 13 files changed, 40 insertions(+), 42 deletions(-) diff --git a/meta/conf/distro/include/debug-optimize.inc b/meta/conf/distro/include/debug-optimize.inc index b5fb3bbf78..c11d792094 100644 --- a/meta/conf/distro/include/debug-optimize.inc +++ b/meta/conf/distro/include/debug-optimize.inc @@ -3,3 +3,40 @@ DEBUG_OPTIMIZATION ?= "-Og ${DEBUG_LEVELFLAG}" SELECTED_OPTIMIZATION ?= "${DEBUG_OPTIMIZATION}" # compiler flags for native/nativesdk BUILD_OPTIMIZATION ?= "-Og -g" + +# The modern compilers and code seem to require extra steps to avoid DEBUG errors, +# this file collects debug tuning configuration to address DEBUG errors. + +DEBUG_OPTIMIZATION:append:pn-perf = " -Wno-error=maybe-uninitialized" +DEBUG_OPTIMIZATION:append:armv4:pn-libjpeg-turbo = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION:append:armv5:pn-libjpeg-turbo = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION:append:armv4:pn-bash = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION:append:armv5:pn-bash = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION:append:pn-mdadm = " -Wno-error" +DEBUG_OPTIMIZATION:mips:pn-kea = "-O ${DEBUG_LEVELFLAG}" +DEBUG_OPTIMIZATION:mipsel:pn-kea = "-O ${DEBUG_LEVELFLAG}" +# {standard input}: Assembler messages: +# {standard input}:1488805: Error: branch out of range +DEBUG_OPTIMIZATION:mips:pn-python3-lxml = "-O ${DEBUG_LEVELFLAG}" +DEBUG_OPTIMIZATION:mipsel:pn-python3-lxml = "-O ${DEBUG_LEVELFLAG}" +# used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] +DEBUG_OPTIMIZATION:append:pn-gcc-sanitizers = " -Wno-error" + +BUILD_OPTIMIZATION:mips:pn-kea = "-O -g" +BUILD_OPTIMIZATION:mipsel:pn-kea = "-O -g" +# {standard input}: Assembler messages: +# {standard input}:1488805: Error: branch out of range +BUILD_OPTIMIZATION:mips:pn-python3-lxml = "-O -g" +BUILD_OPTIMIZATION:mipsel:pn-python3-lxml = "-O -g" + +CPPFLAGS:append:arm:pn-lttng-ust = " -DUATOMIC_NO_LINK_ERROR" + +OECMAKE_WEBKIT_NO_INLINE_HINTS:pn-webkitgtk = "-DWEBKIT_NO_INLINE_HINTS=ON" + +EXTRA_OECONF:append:pn-debugedit = " --disable-inlined-xxhash" +EXTRA_OECONF:append:pn-debugedit-native = " --disable-inlined-xxhash" +EXTRA_OECONF:append:pn-nativesdk-debugedit = " --disable-inlined-xxhash" + +lcl_maybe_fortify:pn-vim = "" + +CXXFLAGS:append:pn-vulkan-validation-layers = " -DXXH_NO_INLINE_HINTS=1" diff --git a/meta/recipes-connectivity/kea/kea_3.0.1.bb b/meta/recipes-connectivity/kea/kea_3.0.1.bb index 2fdfe27f77..6771953b9e 100644 --- a/meta/recipes-connectivity/kea/kea_3.0.1.bb +++ b/meta/recipes-connectivity/kea/kea_3.0.1.bb @@ -35,16 +35,6 @@ INITSCRIPT_PARAMS = "defaults 30" SYSTEMD_SERVICE:${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service" SYSTEMD_AUTO_ENABLE = "disable" -DEBUG_OPTIMIZATION:remove:mips = " -Og" -DEBUG_OPTIMIZATION:append:mips = " -O" -BUILD_OPTIMIZATION:remove:mips = " -Og" -BUILD_OPTIMIZATION:append:mips = " -O" - -DEBUG_OPTIMIZATION:remove:mipsel = " -Og" -DEBUG_OPTIMIZATION:append:mipsel = " -O" -BUILD_OPTIMIZATION:remove:mipsel = " -Og" -BUILD_OPTIMIZATION:append:mipsel = " -O" - CXXFLAGS:remove = "-fvisibility-inlines-hidden" do_configure:prepend() { diff --git a/meta/recipes-devtools/debugedit/debugedit_5.2.bb b/meta/recipes-devtools/debugedit/debugedit_5.2.bb index 76c54ba63d..4ac6cab559 100644 --- a/meta/recipes-devtools/debugedit/debugedit_5.2.bb +++ b/meta/recipes-devtools/debugedit/debugedit_5.2.bb @@ -22,8 +22,6 @@ inherit pkgconfig autotools multilib_script RDEPENDS:${PN} += "bash elfutils-binutils" -EXTRA_OECONF = "${@oe.utils.vartrue('DEBUG_BUILD', '--disable-inlined-xxhash', '', d)}" - BBCLASSEXTEND = "native nativesdk" MULTILIB_SCRIPTS = "${PN}:${bindir}/find-debuginfo" diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/meta/recipes-devtools/gcc/gcc-sanitizers.inc index 6c81d30243..f4727ee6db 100644 --- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc @@ -54,9 +54,6 @@ INHIBIT_DEFAULT_DEPS = "1" ALLOW_EMPTY:${PN} = "1" DEPENDS = "virtual/crypt gcc-runtime virtual/cross-cc" -# used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] -DEBUG_OPTIMIZATION:append = " -Wno-error" - BBCLASSEXTEND = "nativesdk" PACKAGES = "${PN} ${PN}-dbg" diff --git a/meta/recipes-devtools/python/python3-lxml_6.0.2.bb b/meta/recipes-devtools/python/python3-lxml_6.0.2.bb index 876fda93b6..178908e3b2 100644 --- a/meta/recipes-devtools/python/python3-lxml_6.0.2.bb +++ b/meta/recipes-devtools/python/python3-lxml_6.0.2.bb @@ -23,18 +23,6 @@ SRC_URI[sha256sum] = "cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96 SRC_URI += "${PYPI_SRC_URI}" inherit pkgconfig pypi setuptools3 -# {standard input}: Assembler messages: -# {standard input}:1488805: Error: branch out of range -DEBUG_OPTIMIZATION:remove:mips = " -Og" -DEBUG_OPTIMIZATION:append:mips = " -O" -BUILD_OPTIMIZATION:remove:mips = " -Og" -BUILD_OPTIMIZATION:append:mips = " -O" - -DEBUG_OPTIMIZATION:remove:mipsel = " -Og" -DEBUG_OPTIMIZATION:append:mipsel = " -O" -BUILD_OPTIMIZATION:remove:mipsel = " -Og" -BUILD_OPTIMIZATION:append:mipsel = " -O" - BBCLASSEXTEND = "native nativesdk" RDEPENDS:${PN} += "libxml2 libxslt python3-compression" diff --git a/meta/recipes-extended/bash/bash_5.3.bb b/meta/recipes-extended/bash/bash_5.3.bb index b50a48d28c..74671f5a56 100644 --- a/meta/recipes-extended/bash/bash_5.3.bb +++ b/meta/recipes-extended/bash/bash_5.3.bb @@ -15,9 +15,6 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \ SRC_URI[tarball.sha256sum] = "0d5cd86965f869a26cf64f4b71be7b96f90a3ba8b3d74e27e8e9d9d5550f31ba" -DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" - CFLAGS += "-std=gnu17" # mkbuiltins.c is built with native toolchain and needs gnu17 as well: # http://errors.yoctoproject.org/Errors/Details/853016/ diff --git a/meta/recipes-extended/mdadm/mdadm_4.4.bb b/meta/recipes-extended/mdadm/mdadm_4.4.bb index 26a60e4c1a..e81b8fdf3c 100644 --- a/meta/recipes-extended/mdadm/mdadm_4.4.bb +++ b/meta/recipes-extended/mdadm/mdadm_4.4.bb @@ -39,8 +39,6 @@ EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CWFLAGS="" CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${sys BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev" LDFLAGS="${LDFLAGS}" \ SYSROOT="${STAGING_DIR_TARGET}" STRIP=' -DEBUG_OPTIMIZATION:append = " -Wno-error" - do_install() { oe_runmake 'DESTDIR=${D}' install install-systemd install -d ${D}/${sysconfdir}/ diff --git a/meta/recipes-graphics/jpeg/libjpeg-turbo_3.1.2.bb b/meta/recipes-graphics/jpeg/libjpeg-turbo_3.1.2.bb index d4877bb92b..bc9d803f6b 100644 --- a/meta/recipes-graphics/jpeg/libjpeg-turbo_3.1.2.bb +++ b/meta/recipes-graphics/jpeg/libjpeg-turbo_3.1.2.bb @@ -44,9 +44,6 @@ EXTRA_OECMAKE:append:class-target:powerpc = " ${@bb.utils.contains("TUNE_FEATURE EXTRA_OECMAKE:append:class-target:powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" EXTRA_OECMAKE:append:class-target:powerpc64le = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" -DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" - # libjpeg-turbo-2.0.2/simd/mips/jsimd_dspr2.S # :13:5: error: invalid token in expression # .if $17 != 0 diff --git a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.328.1.bb b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.328.1.bb index 76a87398c4..84d75b8f7f 100644 --- a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.328.1.bb +++ b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.328.1.bb @@ -26,8 +26,6 @@ EXTRA_OECMAKE = "\ -DSPIRV_HEADERS_INSTALL_DIR=${STAGING_EXECPREFIXDIR} \ " -CXXFLAGS:append = " ${@oe.utils.vartrue('DEBUG_BUILD', '-DXXH_NO_INLINE_HINTS=1', '', d)}" - PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr" PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" diff --git a/meta/recipes-kernel/lttng/lttng-ust_2.14.0.bb b/meta/recipes-kernel/lttng/lttng-ust_2.14.0.bb index 1a15c5b420..0d4c67f0fa 100644 --- a/meta/recipes-kernel/lttng/lttng-ust_2.14.0.bb +++ b/meta/recipes-kernel/lttng/lttng-ust_2.14.0.bb @@ -16,7 +16,6 @@ inherit autotools lib_package manpages python3native pkgconfig include lttng-platforms.inc EXTRA_OECONF = "--disable-numa" -CPPFLAGS:append:arm = "${@oe.utils.vartrue('DEBUG_BUILD', '-DUATOMIC_NO_LINK_ERROR', '', d)}" DEPENDS = "liburcu util-linux" RDEPENDS:${PN}-bin = "python3-core" diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index b69ba2ac12..3319ed5c78 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -422,8 +422,6 @@ FILES:${PN}-python = " \ " FILES:${PN}-perl = "${libexecdir}/perf-core/scripts/perl" -DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized" - PACKAGESPLITFUNCS =+ "perf_fix_sources" perf_fix_sources () { diff --git a/meta/recipes-sato/webkit/webkitgtk_2.50.0.bb b/meta/recipes-sato/webkit/webkitgtk_2.50.0.bb index a8d0a094b3..b4173c08dd 100644 --- a/meta/recipes-sato/webkit/webkitgtk_2.50.0.bb +++ b/meta/recipes-sato/webkit/webkitgtk_2.50.0.bb @@ -86,11 +86,12 @@ PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette" PACKAGECONFIG[sysprof-capture] = "-DUSE_SYSTEM_SYSPROF_CAPTURE=YES,-DUSE_SYSTEM_SYSPROF_CAPTURE=NO,sysprof" PACKAGECONFIG[speech] = "-DENABLE_SPEECH_SYNTHESIS=ON,-DENABLE_SPEECH_SYNTHESIS=OFF,flite" +OECMAKE_WEBKIT_NO_INLINE_HINTS ??= "-DWEBKIT_NO_INLINE_HINTS=OFF" EXTRA_OECMAKE = " \ -DPORT=GTK \ ${@oe.utils.vartrue('GI_DATA_ENABLED', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ ${@oe.utils.vartrue('GIDOCGEN_ENABLED', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \ - ${@oe.utils.vartrue('DEBUG_BUILD', '-DWEBKIT_NO_INLINE_HINTS=ON', '-DWEBKIT_NO_INLINE_HINTS=OFF', d)} \ + ${OECMAKE_WEBKIT_NO_INLINE_HINTS} \ -DENABLE_MINIBROWSER=ON \ -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ -DUSE_GTK4=ON \ diff --git a/meta/recipes-support/vim/vim_9.1.bb b/meta/recipes-support/vim/vim_9.1.bb index fee9f055e9..a24a863ba5 100644 --- a/meta/recipes-support/vim/vim_9.1.bb +++ b/meta/recipes-support/vim/vim_9.1.bb @@ -20,4 +20,4 @@ ALTERNATIVE_LINK_NAME[xxd] = "${bindir}/xxd" # We override the default in security_flags.inc because vim (not vim-tiny!) will abort # in many places for _FORTIFY_SOURCE=2. Security flags become part of CC. # -lcl_maybe_fortify = "${@oe.utils.conditional('DEBUG_BUILD','1','','-D_FORTIFY_SOURCE=1',d)}" +lcl_maybe_fortify = "-D_FORTIFY_SOURCE=1" From patchwork Mon Dec 22 14:54:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxu Jia X-Patchwork-Id: 77137 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FB16E674BE for ; Mon, 22 Dec 2025 14:54:22 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.81397.1766415258283006823 for ; Mon, 22 Dec 2025 06:54:18 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=Xnhm4UeI; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=44517665e1=hongxu.jia@windriver.com) Received: from pps.filterd (m0250812.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BMCoGxJ2808429; Mon, 22 Dec 2025 14:54:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=PPS06212021; bh=Kv51HrqQvV3UT5LeHkBSPq0Xv8AEVM10N+WsTmavwOA=; b=Xnhm4UeITYrW /LiyFkQ6Cdlvb9fkmOYLEsBklLXzXGrDlHtBeGie902PRgrhtyN34XlaN111CloJ 6NUAILeH3X/6Ade/FZLANXEOnf0WcS11IGkZGGRXPdl8ejhdxxshZ8abW5pQBz2C V+jp0p5Ncx6KsNDSV2mAH1KsrOg7rbvpqCCYJow1Pd3iDRu8tjmGik0EKJamdT5m ElcSroKZEw9H19F1MFTJmiDtDpOby5A2TGAZjzR1VwkYozDmSpp2f0cZe5aXcIJ5 wg4+dGcZgqgISFDlBBvuq0dIYy8EJenL/WDSJgCf3o2ZqSzfz2GdEHhWOsi1qnbe Dj9g3PW3gw== Received: from ala-exchng01.corp.ad.wrs.com ([128.224.246.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4b5js71u6v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 22 Dec 2025 14:54:13 +0000 (GMT) Received: from ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) by ala-exchng01.corp.ad.wrs.com (10.11.224.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Mon, 22 Dec 2025 06:54:12 -0800 Received: from pek-lpg-core5.wrs.com (10.11.232.110) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server id 15.1.2507.61 via Frontend Transport; Mon, 22 Dec 2025 06:54:11 -0800 From: Hongxu Jia To: , , Subject: [PATCH v7 3/6] debug-optimize.inc: override MESON_BUILDTYPE for target Date: Mon, 22 Dec 2025 22:54:00 +0800 Message-ID: <20251222145403.3688113-3-hongxu.jia@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251222145403.3688113-1-hongxu.jia@windriver.com> References: <20251222145403.3688113-1-hongxu.jia@windriver.com> MIME-Version: 1.0 X-Proofpoint-GUID: 7y8D_wpRuKyVZwAOch4kPOPW66muBuQk X-Authority-Analysis: v=2.4 cv=To7rRTXh c=1 sm=1 tr=0 ts=69495b95 cx=c_pps a=AbJuCvi4Y3V6hpbCNWx0WA==:117 a=AbJuCvi4Y3V6hpbCNWx0WA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=ag1SF4gXAAAA:8 a=t7CeM3EgAAAA:8 a=rv3B5ZEdiUnhOF910woA:9 a=Yupwre4RP9_Eg_Bd0iYG:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: 7y8D_wpRuKyVZwAOch4kPOPW66muBuQk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIyMDEzNSBTYWx0ZWRfX17H+WvDgeOcB 9C+P0E9t6i+9Lo9yMHB5rMMBjOrI6n5qjATqonK47h8rYtxAXT/iPudtGdLzYT0JePm2cqD/SZ9 3hKkyigkHdQHa0ei9CPdtz4zFmPz1Koe/DYRw6/nb8HHZBp/U/oJnsXeid3PyrWk7810CDiFBY1 i4WEA9UycCIv0v2bAGAXTfmHh91aA8y0/LZUgWacyrivu/TY7kbC3+8C9EuHwVc/nu+miay9OEA wOQtuD5hqDJ1Eyhl9dQzV1pvRcFwcGyCq5XWFTv3QwVyEMGtaNyfXBZy8RpRn4K7VH8TfeVBIlv jeFxyVjPe1PYuDGhXWdzThOluZ9Vl5wWYcdGYKmVVnteVGNOnagpgu566eyz6mbgPpEmooC5gNq dyvqBOQ2iL4isVJC+Qx7ZbMOaVuxr253tpuQZtWzSy7bpmWmaViuDaBL+zgcHuxy213Tc1NSoYz h1CS7Vq7jw4wYvL5QtQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-22_01,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512220135 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Dec 2025 14:54:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/228306 The debug-optimize.inc is used to collect debug optimization configuration, override MESON_BUILDTYPE for target when debug optimization is enabled (fragment core/yocto/debug-optimize) Suggested-by: Richard Purdie Signed-off-by: Hongxu Jia --- meta/classes-recipe/meson.bbclass | 3 +-- meta/conf/distro/include/debug-optimize.inc | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/meson.bbclass b/meta/classes-recipe/meson.bbclass index 2c098771fe..0b857ef22a 100644 --- a/meta/classes-recipe/meson.bbclass +++ b/meta/classes-recipe/meson.bbclass @@ -25,8 +25,7 @@ MESON_TARGET ?= "" # Since 0.60.0 you can specify custom tags to install MESON_INSTALL_TAGS ?= "" -MESON_BUILDTYPE ?= "${@oe.utils.vartrue('DEBUG_BUILD', 'debug', 'plain', d)}" -MESON_BUILDTYPE[vardeps] += "DEBUG_BUILD" +MESON_BUILDTYPE ??= "plain" MESONOPTS = " --buildtype ${MESON_BUILDTYPE} \ --prefix ${prefix} \ diff --git a/meta/conf/distro/include/debug-optimize.inc b/meta/conf/distro/include/debug-optimize.inc index c11d792094..3f22aebbab 100644 --- a/meta/conf/distro/include/debug-optimize.inc +++ b/meta/conf/distro/include/debug-optimize.inc @@ -40,3 +40,6 @@ EXTRA_OECONF:append:pn-nativesdk-debugedit = " --disable-inlined-xxhash" lcl_maybe_fortify:pn-vim = "" CXXFLAGS:append:pn-vulkan-validation-layers = " -DXXH_NO_INLINE_HINTS=1" + +# For meson.bbclass +MESON_BUILDTYPE:class-target ?= "debug" From patchwork Mon Dec 22 14:54:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxu Jia X-Patchwork-Id: 77138 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FB55E677E1 for ; Mon, 22 Dec 2025 14:54:22 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.81399.1766415259532598632 for ; Mon, 22 Dec 2025 06:54:19 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=SLQczafX; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=44517665e1=hongxu.jia@windriver.com) Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BMD94Ci230444; Mon, 22 Dec 2025 14:54:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=PPS06212021; bh=jXplIXIH0s28hcljIoaOfbt4WbbiiES0KRxQaFn/i/4=; b=SLQczafX1HVf jyTktr52QB/iF1RhTZalLVZJKddvnQxOuyASVO6maJb2lsDn3bU3F2DaKK7sILQ9 PhkkXv1jtGYKeMEFlaoIJ2xR0+qSWodZ+isieFhGQMdkrZEtkNPxGc+8Z3V6DR7s 72stH1IR2xLxscHU2uR7sAVzFeUkN1FDFJxNX78VRQ9tFdC8wXDuIHae8DiASM3s i32ecoR+LmegiG8fq7IiglTvuCPdZohicRjaocBUxzLXObNSUimUAHsdcMtfiN0C OYIP4AVz1CIfGa+LKM9Qc0WiEGgR/259Wq+tcWby7YRosVbnmVjYzaKNlsVu/nzO 1BIsRLL4cg== Received: from ala-exchng01.corp.ad.wrs.com ([128.224.246.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4b5h0vhwsb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 22 Dec 2025 14:54:14 +0000 (GMT) Received: from ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) by ala-exchng01.corp.ad.wrs.com (10.11.224.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Mon, 22 Dec 2025 06:54:13 -0800 Received: from pek-lpg-core5.wrs.com (10.11.232.110) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server id 15.1.2507.61 via Frontend Transport; Mon, 22 Dec 2025 06:54:12 -0800 From: Hongxu Jia To: , , Subject: [PATCH v7 4/6] debug-optimize.inc: override CARGO_BUILD_MODE and CARGO_BUILD_DIR for target Date: Mon, 22 Dec 2025 22:54:01 +0800 Message-ID: <20251222145403.3688113-4-hongxu.jia@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251222145403.3688113-1-hongxu.jia@windriver.com> References: <20251222145403.3688113-1-hongxu.jia@windriver.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: D6de5w4mvnMAtCJ7HgZgfi1XOsFPJR3v X-Authority-Analysis: v=2.4 cv=I6Fohdgg c=1 sm=1 tr=0 ts=69495b96 cx=c_pps a=AbJuCvi4Y3V6hpbCNWx0WA==:117 a=AbJuCvi4Y3V6hpbCNWx0WA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=ag1SF4gXAAAA:8 a=t7CeM3EgAAAA:8 a=Z1FrW6rxTDoSltceh7wA:9 a=Yupwre4RP9_Eg_Bd0iYG:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: D6de5w4mvnMAtCJ7HgZgfi1XOsFPJR3v X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIyMDEzNSBTYWx0ZWRfX/d0kbaGyTxy1 7D1u/eKW3UODxKhh8Pp7M1LtGHJLj9whdu5vhUCExgJ1g1/z084eKGBzgLMZjyGhssnaViZBzPf d6wVwLVPLZk/4lrBcwP+Zchy/GMLK0Ryv4+r+jQSO6KUdAgl19axEKd73ij1w1QyHYavoIQZtOL dBvBBbhCOBCUIwkWXFMyZXILNa7ZaRTjdroAtuHcMuTCusoRfIZomU2ACn+1P56xj2rPz/xyNth GIt4JsrymiFrHOZZOpBST96N3swXDg1RP6lXNcYjfvt2gbW4cX7rdJY2Fhy9FS2wDLhSy+VBP0c xTe0XGiYbXIPy68qjPR+uYwuRQh33bIK/MHHZWVHZjXA+H5xRqoI9YTeWrih6crHJtGjk095dQ3 9Mxa9ogrAg2D8MDSsXluA1zC4lCk7Ahx7P2xVx/kLBFR6KkvwyATUXuVGojY0oPs0Y/yB0kQDsa xPfkQ23mPK62I/giZTQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-22_01,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 adultscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512220135 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Dec 2025 14:54:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/228307 Rename BUILD_MODE and BUILD_DIR with CARGO prefix, then in debug-optimize.inc, override CARGO_BUILD_MODE and CARGO_BUILD_DIR for target when debug optimization is enabled (fragment core/yocto/debug-optimize) Suggested-by: Richard Purdie Signed-off-by: Hongxu Jia --- meta/classes-recipe/cargo.bbclass | 8 ++++---- meta/conf/distro/include/debug-optimize.inc | 4 ++++ meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.9.0.bb | 4 ++-- meta/recipes-devtools/rust/libstd-rs_1.91.1.bb | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/meta/classes-recipe/cargo.bbclass b/meta/classes-recipe/cargo.bbclass index 2dd28e95d3..eff28b323a 100644 --- a/meta/classes-recipe/cargo.bbclass +++ b/meta/classes-recipe/cargo.bbclass @@ -31,18 +31,18 @@ B = "${WORKDIR}/build" export RUST_BACKTRACE = "1" RUSTFLAGS ??= "" -BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}" +CARGO_BUILD_MODE ??= "--release" # --frozen flag will prevent network access (which is required since only # the do_fetch step is authorized to access network) # and will require an up to date Cargo.lock file. # This force the package being built to already ship a Cargo.lock, in the end # this is what we want, at least, for reproducibility of the build. -CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} ${BUILD_MODE} --manifest-path=${CARGO_MANIFEST_PATH}" +CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} ${CARGO_BUILD_MODE} --manifest-path=${CARGO_MANIFEST_PATH}" # This is based on the content of CARGO_BUILD_FLAGS and generally will need to # change if CARGO_BUILD_FLAGS changes. -BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}" -CARGO_TARGET_SUBDIR = "${RUST_HOST_SYS}/${BUILD_DIR}" +CARGO_BUILD_DIR ??= "release" +CARGO_TARGET_SUBDIR = "${RUST_HOST_SYS}/${CARGO_BUILD_DIR}" oe_cargo_build () { export RUSTFLAGS="${RUSTFLAGS}" bbnote "Using rust targets from ${RUST_TARGET_PATH}" diff --git a/meta/conf/distro/include/debug-optimize.inc b/meta/conf/distro/include/debug-optimize.inc index 3f22aebbab..55f35dd7c6 100644 --- a/meta/conf/distro/include/debug-optimize.inc +++ b/meta/conf/distro/include/debug-optimize.inc @@ -43,3 +43,7 @@ CXXFLAGS:append:pn-vulkan-validation-layers = " -DXXH_NO_INLINE_HINTS=1" # For meson.bbclass MESON_BUILDTYPE:class-target ?= "debug" + +# For cargo.bbclass +CARGO_BUILD_MODE:class-target ?= "" +CARGO_BUILD_DIR:class-target ?= "debug" diff --git a/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.9.0.bb b/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.9.0.bb index 577acfdc86..9de4a07aeb 100644 --- a/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.9.0.bb +++ b/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.9.0.bb @@ -27,7 +27,7 @@ CARGO_INSTALL_LIBRARIES = "1" do_compile:prepend () { # rpm-sequoia.pc is generated in the source directory # but the target directory does not exist there. - mkdir -p ${S}/target/${BUILD_DIR} + mkdir -p ${S}/target/${CARGO_BUILD_DIR} # From rpm-sequoia's README.md: # @@ -59,7 +59,7 @@ do_install:append () { # rpm-sequoia does not install its pkgconfig file. Do it manually. mkdir -p ${D}${libdir}/pkgconfig - install -m644 ${S}/target/${BUILD_DIR}/rpm-sequoia.pc ${D}${libdir}/pkgconfig + install -m644 ${S}/target/${CARGO_BUILD_DIR}/rpm-sequoia.pc ${D}${libdir}/pkgconfig } do_install_ptest:append () { diff --git a/meta/recipes-devtools/rust/libstd-rs_1.91.1.bb b/meta/recipes-devtools/rust/libstd-rs_1.91.1.bb index 8af93bec57..30875200e4 100644 --- a/meta/recipes-devtools/rust/libstd-rs_1.91.1.bb +++ b/meta/recipes-devtools/rust/libstd-rs_1.91.1.bb @@ -44,8 +44,8 @@ do_install () { # With the incremental build support added in 1.24, the libstd deps directory also includes dependency # files that get installed. Those are really only needed to incrementally rebuild the libstd library # itself and don't need to be installed. - rm -f ${B}/target/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/*.d - cp ${B}/target/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir} + rm -f ${B}/target/${RUST_TARGET_SYS}/${CARGO_BUILD_DIR}/deps/*.d + cp ${B}/target/${RUST_TARGET_SYS}/${CARGO_BUILD_DIR}/deps/* ${D}${rustlibdir} } BBCLASSEXTEND = "nativesdk" From patchwork Mon Dec 22 14:54:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxu Jia X-Patchwork-Id: 77135 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8321CE674BD for ; Mon, 22 Dec 2025 14:54:22 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.81402.1766415261085232929 for ; Mon, 22 Dec 2025 06:54:21 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=ig/lmPGX; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=44517665e1=hongxu.jia@windriver.com) Received: from pps.filterd (m0250812.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BMBwGu92725326; Mon, 22 Dec 2025 14:54:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=PPS06212021; bh=0F/QRtawVJpycIyZgSg63wqqVbSFSCeupW+HAYZ0J/Q=; b=ig/lmPGXYyqv cFyRUpkIWsSFHXgncEOfN3YuTHBIGbedVNP9bvgoin4cfK2rpfyoFvy5uT/T0aqm 8Wd1bU0rQ5Y2F6SvHtNRI4b0rdd3Racpm5UA4Z0JFoWXFgANSaTXVYbNj2iuorM5 U0ZjD+jHGL/kNgpbxQLeksDFEoZCYbADLepRqqK2ySEktaGmeC/al7waopvOAtFv Z7G0WkkxImIxF0oGNn7q6bRb6o6ooEWGJpSNFuEvbs35KxueLZ98YKhgtTxVIJ3O s8XoWDwtK7RgDtaAZIVjJeRGus8wfFU50rFZaro/9x736aYlH4uEi5e2V15372HN guJ8z8F0sA== Received: from ala-exchng01.corp.ad.wrs.com ([128.224.246.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4b5js71u6x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 22 Dec 2025 14:54:16 +0000 (GMT) Received: from ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) by ala-exchng01.corp.ad.wrs.com (10.11.224.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Mon, 22 Dec 2025 06:54:15 -0800 Received: from pek-lpg-core5.wrs.com (10.11.232.110) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server id 15.1.2507.61 via Frontend Transport; Mon, 22 Dec 2025 06:54:14 -0800 From: Hongxu Jia To: , , Subject: [PATCH v7 5/6] Clean up compiler optimization variable FULL_OPTIMIZATION Date: Mon, 22 Dec 2025 22:54:02 +0800 Message-ID: <20251222145403.3688113-5-hongxu.jia@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251222145403.3688113-1-hongxu.jia@windriver.com> References: <20251222145403.3688113-1-hongxu.jia@windriver.com> MIME-Version: 1.0 X-Proofpoint-GUID: FUwDH-33DDcnlWBeM0FskvHxlYFX0P_o X-Authority-Analysis: v=2.4 cv=To7rRTXh c=1 sm=1 tr=0 ts=69495b98 cx=c_pps a=AbJuCvi4Y3V6hpbCNWx0WA==:117 a=AbJuCvi4Y3V6hpbCNWx0WA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=t7CeM3EgAAAA:8 a=Ijn1RKaX0nAUqlVouMsA:9 a=X5K9hatliZlWjnsT:21 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: FUwDH-33DDcnlWBeM0FskvHxlYFX0P_o X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIyMDEzNSBTYWx0ZWRfX+MzuykP3bHfG oGYEbaKK4TlZopxL6uGfA0xgH6jIIzr12/vNeEOTuCprIQV6t4ZGnirHlSVbdYlVv+zMVpPfpLj 4AL3tNhD3D1Q/7xYaN6iLjQJNvsZmvk9spfnyy0Yd+195tBTl0Cyz19ERdrHRdrxUV9mmD88UaE APD/vtKMlzfQwQ8avm27L5s3tpFWnexR5Z7eDQK+vk2zXjY0LgLldJ9Nrcovmej2WSUqL3GUntu lAk+GY/LokxEUEYq1CL49/AFJw7PuQTqSdy3irotn3di01ZjGYpYlpS7oM5St9KAMutx1tlI7Lz kXm9rvKT0DCSUsN9AJGcXghEV+26Xtjdi8MphsuqbL+RYykc7nTF8ytWGckh4K2jg2lU0UuyELx wwANclAexzvG67p1ikl1DYzLjPPjuO+FCfLU6iIbPmxLJt2C2BiFbIR7CfJ/CYIR8piMJsCbrOO Rxd5PMSUqh0tI7C1g5w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-22_01,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512220135 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Dec 2025 14:54:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/228308 In bitbake.conf, remove FULL_OPTIMIZATION, set "-O2 ${DEBUG_LEVELFLAG}" to SELECTED_OPTIMIZATION directly In mesa.inc, due to llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2), set -fno-omit-frame-pointer to TARGET_CFLAGS only if option -O2 existed Correct typo in clang.patch In recipe harfbuzz, use SELECTED_OPTIMIZATION to instead of FULL_OPTIMIZATION Signed-off-by: Hongxu Jia --- meta/conf/bitbake.conf | 3 +-- meta/conf/documentation.conf | 3 +-- meta/recipes-graphics/harfbuzz/harfbuzz_11.5.1.bb | 2 +- meta/recipes-graphics/mesa/mesa.inc | 2 +- meta/recipes-multimedia/lame/lame/clang.patch | 2 +- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 653d396c79..c4e9b60ac3 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -659,8 +659,7 @@ DEBUG_PREFIX_MAP ?= "${DEBUG_PREFIX_MAP_EXTRA} \ " DEBUG_LEVELFLAG ?= "-g" -FULL_OPTIMIZATION ??= "-O2 ${DEBUG_LEVELFLAG}" -SELECTED_OPTIMIZATION ??= "${FULL_OPTIMIZATION}" +SELECTED_OPTIMIZATION ??= "-O2 ${DEBUG_LEVELFLAG}" # compiler flags for native/nativesdk BUILD_OPTIMIZATION ??= "-O2" diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf index 956d4a79a6..7d2163bae0 100644 --- a/meta/conf/documentation.conf +++ b/meta/conf/documentation.conf @@ -178,7 +178,6 @@ FILESPATH[doc] = "The default set of directories the OpenEmbedded build system u FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process." FONT_EXTRA_RDEPENDS[doc] = "When a recipe inherits the fontcache class, this variable specifies runtime dependencies for font packages. This variable defaults to 'fontconfig-utils'." FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig." -FULL_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimized system. This variable defaults to '-O2 ${DEBUG_LEVELFLAG}'." #G @@ -370,7 +369,7 @@ SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creat SDKIMAGE_FEATURES[doc] = "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'." SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items." SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable." -SELECTED_OPTIMIZATION[doc] = "The variable takes the value of FULL_OPTIMIZATION unless fragment 'core/yocto/debug-optimize' is enabled. In this case, the value of DEBUG_OPTIMIZATION is used." +SELECTED_OPTIMIZATION[doc] = "The variable takes the value of '-O2 ${DEBUG_LEVELFLAG}' unless fragment 'core/yocto/debug-optimize' is enabled. In this case, the value of DEBUG_OPTIMIZATION is used." SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty." SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS[doc] = "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe." SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change." diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_11.5.1.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_11.5.1.bb index dd30c1237d..72840417f2 100644 --- a/meta/recipes-graphics/harfbuzz/harfbuzz_11.5.1.bb +++ b/meta/recipes-graphics/harfbuzz/harfbuzz_11.5.1.bb @@ -21,7 +21,7 @@ GTKDOC_MESON_ENABLE_FLAG = 'enabled' GTKDOC_MESON_DISABLE_FLAG = 'disabled' # As per upstream CONFIG.md, it is recommended to always build with -Os. -FULL_OPTIMIZATION = "-Os ${DEBUG_LEVELFLAG}" +SELECTED_OPTIMIZATION ?= "-Os ${DEBUG_LEVELFLAG}" EXTRA_OEMESON = "-Dtests=disabled" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 835e4d46ea..24d2435f00 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -221,7 +221,7 @@ PACKAGECONFIG[video-codecs] = "-Dvideo-codecs=${VIDEO_CODECS}, -Dvideo-codecs='' PACKAGECONFIG[teflon] = "-Dteflon=true, -Dteflon=false" # llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2) -FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer" +TARGET_CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-O2', '-fno-omit-frame-pointer', '', d)}" CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS" CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS" diff --git a/meta/recipes-multimedia/lame/lame/clang.patch b/meta/recipes-multimedia/lame/lame/clang.patch index 116000c577..183a9d3212 100644 --- a/meta/recipes-multimedia/lame/lame/clang.patch +++ b/meta/recipes-multimedia/lame/lame/clang.patch @@ -9,7 +9,7 @@ and target hardware aligns, and leads to some amusing errors: unknown target CPU 'neoverse-n1' note: valid target CPU values are: i386, i486, ... -Move the HAVE_CLANG block up into the FULL_OPTIMIZATION case, alongside +Move the HAVE_CLANG block up into the OPTIMIZATION case, alongside HAVE_GCC. This option is never enabled (as it's basically "use native") so resolves the build failure. From patchwork Mon Dec 22 14:54:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxu Jia X-Patchwork-Id: 77140 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98866E677E1 for ; Mon, 22 Dec 2025 14:54:32 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.81379.1766415262531539201 for ; Mon, 22 Dec 2025 06:54:22 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=JRx5TXW2; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=44517665e1=hongxu.jia@windriver.com) Received: from pps.filterd (m0250812.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BMBwGuA2725326; Mon, 22 Dec 2025 14:54:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=PPS06212021; bh=h77pyXTwla2bCsbEe0K8PTr3hZSgrNRB+PrgiGxKC1Y=; b=JRx5TXW2k2GV xg+F65W1n6xHgIOiy+Sah/woh6GujH3uxpqwU8zRz/0kSld7dceXKUWv3EgKh7UV F1cEA4inylQcFnV8k2GSNfPurHPxd7gDHBez0r/wtA9ohjObMMaNNEplGpqY0qON BbyzA4vWl548AAAh8OOrytJkRhVuHs64lTnzUUfNXTR2yJP2S8DkNH4ibm/VKdEg 3VkRhnzzd/zI63uIiDEkGhP7LktjTQ8bG+sCl/naEx55tEoE68KUcwu25hbNoO0G xFkf65tAp0hvVLDWiAT8xrIKuoX72FxnqMxkIX5/bPTjlW4z2PnEWUWrO6uchw3W WspBP6PvDA== Received: from ala-exchng02.corp.ad.wrs.com ([128.224.246.37]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4b5js71u70-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 22 Dec 2025 14:54:19 +0000 (GMT) Received: from ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Mon, 22 Dec 2025 06:54:16 -0800 Received: from pek-lpg-core5.wrs.com (10.11.232.110) by ALA-EXCHNG02.corp.ad.wrs.com (10.11.224.122) with Microsoft SMTP Server id 15.1.2507.61 via Frontend Transport; Mon, 22 Dec 2025 06:54:15 -0800 From: Hongxu Jia To: , , Subject: [PATCH v7 6/6] Clean up compiler optimization variable DEBUG_OPTIMIZATION Date: Mon, 22 Dec 2025 22:54:03 +0800 Message-ID: <20251222145403.3688113-6-hongxu.jia@windriver.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251222145403.3688113-1-hongxu.jia@windriver.com> References: <20251222145403.3688113-1-hongxu.jia@windriver.com> MIME-Version: 1.0 X-Proofpoint-GUID: 3zQUDCpyVF_zg4zyJYSx1_WSxZZPPW3I X-Authority-Analysis: v=2.4 cv=To7rRTXh c=1 sm=1 tr=0 ts=69495b9b cx=c_pps a=Lg6ja3A245NiLSnFpY5YKQ==:117 a=Lg6ja3A245NiLSnFpY5YKQ==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=t7CeM3EgAAAA:8 a=WYqJZ4mwHZK2OaCqjwEA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: 3zQUDCpyVF_zg4zyJYSx1_WSxZZPPW3I X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIyMDEzNSBTYWx0ZWRfXwwDyPSC49ntX akyKwXwqTmUgZsOCYWuAEfPo7LnH5X+UwAJQtF+Rb6lxNJxi/1leertn5nj4NngUJKVK+dKLZvA xa+t3wPnUqyz52DdJKB/u1URLh7wBLB1x2rBE0RZJtLPX0ySeKI9cQ95fyeln/kXFeSBXxJ8Poj PMXW7MraPLlan8iH89vvWhZTTe4YMilxs08pWsUCloPTHvrHj1FoED9eAK/vRYmzVtWSVFT5rXY Mu5IL7fWLg9oEgyxJNTjUbwAxB0RrgZJ/T/H8n1pYSiuemfyzbw8PrX3U6i62fcsLZ5raPaqmHw YaG1uoHVPh4cwIpJkpmcGJbRxhPCoKpv2BqgaWjPtKv5jJN/H4s0q6qT51fhPkHJL88w/pI1YEv zELVV1e0ZHkQ6o/CGWvd5AmGzi3qkWoi9X4CR8kiCHfzlLpO/+YJFYrlME9l9/vHnt6plnbGMZ7 N3/bLlmg8m9gG1BaHdQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-22_01,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512220135 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Dec 2025 14:54:32 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/228309 Remove DEBUG_OPTIMIZATION, set "-Og ${DEBUG_LEVELFLAG}" to SELECTED_OPTIMIZATION when debug optimization is enabled (fragment core/yocto/debug-optimize) Use SELECTED_OPTIMIZATION to instead of DEBUG_OPTIMIZATION for debug optimization tuning configuration Signed-off-by: Hongxu Jia --- meta/conf/distro/include/debug-optimize.inc | 25 +++++++++---------- meta/conf/documentation.conf | 3 +-- meta/conf/fragments/yocto/debug-optimize.conf | 2 +- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/meta/conf/distro/include/debug-optimize.inc b/meta/conf/distro/include/debug-optimize.inc index 55f35dd7c6..587c12721a 100644 --- a/meta/conf/distro/include/debug-optimize.inc +++ b/meta/conf/distro/include/debug-optimize.inc @@ -1,26 +1,25 @@ # Override SELECTED_OPTIMIZATION and BUILD_OPTIMIZATION when fragment 'core/yocto/debug-optimize' is enabled. -DEBUG_OPTIMIZATION ?= "-Og ${DEBUG_LEVELFLAG}" -SELECTED_OPTIMIZATION ?= "${DEBUG_OPTIMIZATION}" +SELECTED_OPTIMIZATION ?= "-Og ${DEBUG_LEVELFLAG}" # compiler flags for native/nativesdk BUILD_OPTIMIZATION ?= "-Og -g" # The modern compilers and code seem to require extra steps to avoid DEBUG errors, # this file collects debug tuning configuration to address DEBUG errors. -DEBUG_OPTIMIZATION:append:pn-perf = " -Wno-error=maybe-uninitialized" -DEBUG_OPTIMIZATION:append:armv4:pn-libjpeg-turbo = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION:append:armv5:pn-libjpeg-turbo = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION:append:armv4:pn-bash = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION:append:armv5:pn-bash = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION:append:pn-mdadm = " -Wno-error" -DEBUG_OPTIMIZATION:mips:pn-kea = "-O ${DEBUG_LEVELFLAG}" -DEBUG_OPTIMIZATION:mipsel:pn-kea = "-O ${DEBUG_LEVELFLAG}" +SELECTED_OPTIMIZATION:append:pn-perf = " -Wno-error=maybe-uninitialized" +SELECTED_OPTIMIZATION:append:armv4:pn-libjpeg-turbo = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +SELECTED_OPTIMIZATION:append:armv5:pn-libjpeg-turbo = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +SELECTED_OPTIMIZATION:append:armv4:pn-bash = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +SELECTED_OPTIMIZATION:append:armv5:pn-bash = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +SELECTED_OPTIMIZATION:append:pn-mdadm = " -Wno-error" +SELECTED_OPTIMIZATION:mips:pn-kea = "-O ${DEBUG_LEVELFLAG}" +SELECTED_OPTIMIZATION:mipsel:pn-kea = "-O ${DEBUG_LEVELFLAG}" # {standard input}: Assembler messages: # {standard input}:1488805: Error: branch out of range -DEBUG_OPTIMIZATION:mips:pn-python3-lxml = "-O ${DEBUG_LEVELFLAG}" -DEBUG_OPTIMIZATION:mipsel:pn-python3-lxml = "-O ${DEBUG_LEVELFLAG}" +SELECTED_OPTIMIZATION:mips:pn-python3-lxml = "-O ${DEBUG_LEVELFLAG}" +SELECTED_OPTIMIZATION:mipsel:pn-python3-lxml = "-O ${DEBUG_LEVELFLAG}" # used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] -DEBUG_OPTIMIZATION:append:pn-gcc-sanitizers = " -Wno-error" +SELECTED_OPTIMIZATION:append:pn-gcc-sanitizers = " -Wno-error" BUILD_OPTIMIZATION:mips:pn-kea = "-O -g" BUILD_OPTIMIZATION:mipsel:pn-kea = "-O -g" diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf index 7d2163bae0..94441416cd 100644 --- a/meta/conf/documentation.conf +++ b/meta/conf/documentation.conf @@ -129,7 +129,6 @@ 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_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-Og ${DEBUG_LEVELFLAG}'." DEBUG_OPTIMIZE[doc] = "Specifies to build recipe with debugging friendly optimization. This influences the value of the SELECTED_OPTIMIZATION variable." 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)." @@ -369,7 +368,7 @@ SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creat SDKIMAGE_FEATURES[doc] = "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'." SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items." SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable." -SELECTED_OPTIMIZATION[doc] = "The variable takes the value of '-O2 ${DEBUG_LEVELFLAG}' unless fragment 'core/yocto/debug-optimize' is enabled. In this case, the value of DEBUG_OPTIMIZATION is used." +SELECTED_OPTIMIZATION[doc] = "The variable takes the value of '-O2 ${DEBUG_LEVELFLAG}' unless fragment 'core/yocto/debug-optimize' is enabled. In this case, the value of '-Og ${DEBUG_LEVELFLAG}' is used." SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty." SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS[doc] = "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe." SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change." diff --git a/meta/conf/fragments/yocto/debug-optimize.conf b/meta/conf/fragments/yocto/debug-optimize.conf index 000b5a50cd..afdb877479 100644 --- a/meta/conf/fragments/yocto/debug-optimize.conf +++ b/meta/conf/fragments/yocto/debug-optimize.conf @@ -2,6 +2,6 @@ BB_CONF_FRAGMENT_SUMMARY = "Specifies to build recipes with debugging friendly o This influences the value of the SELECTED_OPTIMIZATION variable." BB_CONF_FRAGMENT_DESCRIPTION = "Enables full debug and backtrace capabilities for all programs \ and libraries in the image, by modifying the SELECTED_OPTIMIZATION variable, \ -setting it to "DEBUG_OPTIMIZATION"." +setting it to '-Og ${DEBUG_LEVELFLAG}'." DEBUG_OPTIMIZE ?= "1"