diff mbox series

[4/8] debug_build.inc: collect debug build tuning configuration

Message ID 20250916040927.103722-4-hongxu.jia@windriver.com
State New
Headers show
Series [1/8] yocto-space-optimize.inc: move space optimize from recipe webkitgtk | expand

Commit Message

Hongxu Jia Sept. 16, 2025, 4:09 a.m. UTC
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.

Introduce separate variables to avoid the :remove operations, such DEBUG_OPTLEVEL,
BUILD_OPTLEVEL and OECMAKE_WEBKIT_NO_INLINE_HINTS

Suggested-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta/conf/distro/include/debug_build.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.1.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.321.0.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.48.5.bb  |  3 +-
 meta/recipes-support/vim/vim_9.1.bb           |  2 +-
 13 files changed, 40 insertions(+), 42 deletions(-)

Comments

Mathieu Dubois-Briand Sept. 17, 2025, 11:24 a.m. UTC | #1
On Tue Sep 16, 2025 at 6:09 AM CEST, hongxu via lists.openembedded.org wrote:
> 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.
>
> Introduce separate variables to avoid the :remove operations, such DEBUG_OPTLEVEL,
> BUILD_OPTLEVEL and OECMAKE_WEBKIT_NO_INLINE_HINTS
>
> Suggested-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---

Just a note about this patches: I had perf reproducibility issues [1][2]
after taking this series and I believe this is linked with this patch. I
suspect this is not directly related with it, but more with the issue we
have had with perf reproducibility last week.

So I dropped this patch for now, but I will take it a bit later this
week and try to go further. I still wanted to provide some feedback
here. Also, if anyone believes this issue IS related with this series,
please share your thoughts.

[1] https://autobuilder.yoctoproject.org/valkyrie/#/builders/37/builds/2505
[2] http://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250916-0ss72vce/

Thanks,
Mathieu
hongxu Sept. 17, 2025, 12:15 p.m. UTC | #2
On Wed, Sep 17, 2025 at 04:24 AM, Mathieu Dubois-Briand wrote:

> 
> Just a note about this patches: I had perf reproducibility issues [1][2]
> after taking this series and I believe this is linked with this patch. I
> suspect this is not directly related with it, but more with the issue we
> have had with perf reproducibility last week.
> 
> So I dropped this patch for now, but I will take it a bit later this
> week and try to go further. I still wanted to provide some feedback
> here.

Got it, I will have a look

//Hongxu

> 
> Also, if anyone believes this issue IS related with this series,
> please share your thoughts.
> 
> [1] https://autobuilder.yoctoproject.org/valkyrie/#/builders/37/builds/2505
> 
> [2] http://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250916-0ss72vce/
> 
> 
> Thanks,
> Mathieu
Hongxu Jia Sept. 19, 2025, 3:08 a.m. UTC | #3
On 9/17/25 19:24, Mathieu Dubois-Briand via lists.openembedded.org wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Tue Sep 16, 2025 at 6:09 AM CEST, hongxu via lists.openembedded.org wrote:
>> 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.
>>
>> Introduce separate variables to avoid the :remove operations, such DEBUG_OPTLEVEL,
>> BUILD_OPTLEVEL and OECMAKE_WEBKIT_NO_INLINE_HINTS
>>
>> Suggested-by: Peter Kjellerstedt<peter.kjellerstedt@axis.com>
>> Signed-off-by: Hongxu Jia<hongxu.jia@windriver.com>
>> ---
> Just a note about this patches: I had perf reproducibility issues [1][2]
> after taking this series and I believe this is linked with this patch. I
> suspect this is not directly related with it, but more with the issue we
> have had with perf reproducibility last week.
>
> So I dropped this patch for now, but I will take it a bit later this
> week and try to go further. I still wanted to provide some feedback
> here. Also, if anyone believes this issue IS related with this series,
> please share your thoughts.
>
> [1]https://autobuilder.yoctoproject.org/valkyrie/#/builders/37/builds/2505
> [2]http://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250916-0ss72vce/

Hi

I clone the branch of you on contrib

https://git.openembedded.org/openembedded-core-contrib/log/?h=mathieu/master-next-success

https://git.openembedded.org/bitbake-contrib/log/?h=mathieu/master-next-success

And do oe-selftest without the debug build patches, the issue we have 
had with perf reproducibility still exist

$ oe-selftest -r reproducible.ReproducibleTests.test_reproducible_builds

...

2025-09-19 05:05:31,099 - oe-selftest - INFO - 
======================================================================
2025-09-19 05:05:31,099 - oe-selftest - INFO - FAIL: 
test_reproducible_builds (reproducible.ReproducibleTests)
2025-09-19 05:05:31,099 - oe-selftest - INFO - 
----------------------------------------------------------------------
2025-09-19 05:05:31,099 - oe-selftest - INFO - Traceback (most recent 
call last):
   File 
"/buildarea5/hjia/contrib/openembedded-core-contrib/meta/lib/oeqa/selftest/cases/reproducible.py", 
line 406, in test_reproducible_builds
     self.fail('\n'.join(fails))
AssertionError: Bitbake reproducibleA failure
Bitbake reproducibleB-extended failure
The following deb packages are different and not in exclusion list:
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf-dbg_6.16.7-r0_amd64.deb
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf-python_6.16.7-r0_amd64.deb
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf-src_6.16.7-r0_amd64.deb
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf_6.16.7-r0_amd64.deb
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./x86-64-v3/apt-dbg_3.0.3-r0_amd64.deb
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./x86-64-v3/apt_3.0.3-r0_amd64.deb
The following ipk packages are different and not in exclusion list:
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf-dbg_6.16.7-r0_qemux86_64.ipk
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf-python_6.16.7-r0_qemux86_64.ipk
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf-src_6.16.7-r0_qemux86_64.ipk
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf_6.16.7-r0_qemux86_64.ipk
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./x86-64-v3/apt-dbg_3.0.3-r0_x86-64-v3.ipk
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./x86-64-v3/apt_3.0.3-r0_x86-64-v3.ipk
The following rpm packages are different and not in exclusion list:
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-6.16.7-r0.qemux86_64.rpm
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-dbg-6.16.7-r0.qemux86_64.rpm
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-python-6.16.7-r0.qemux86_64.rpm
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-src-6.16.7-r0.qemux86_64.rpm
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./x86_64_v3/apt-3.0.3-r0.x86_64_v3.rpm
/buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./x86_64_v3/apt-dbg-3.0.3-r0.x86_64_v3.rpm

2025-09-19 05:05:31,099 - oe-selftest - INFO - 
----------------------------------------------------------------------
2025-09-19 05:05:31,099 - oe-selftest - INFO - Ran 1 test in 32633.939s
2025-09-19 05:05:31,099 - oe-selftest - INFO - FAILED
2025-09-19 05:05:31,099 - oe-selftest - INFO -  (failures=1)
2025-09-19 05:05:34,691 - oe-selftest - INFO - RESULTS:
2025-09-19 05:05:34,691 - oe-selftest - INFO - RESULTS - 
reproducible.ReproducibleTests.test_reproducible_builds: FAILED (32633.79s)
2025-09-19 05:05:34,736 - oe-selftest - INFO - SUMMARY:
2025-09-19 05:05:34,736 - oe-selftest - INFO - oe-selftest () - Ran 1 
test in 32633.939s
2025-09-19 05:05:34,736 - oe-selftest - INFO - oe-selftest - FAIL - 
Required tests failed (successes=0, skipped=0, failures=1, errors=0)

...

//Hongxu

> Thanks,
> Mathieu
>
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#223592):https://lists.openembedded.org/g/openembedded-core/message/223592
> Mute This Topic:https://lists.openembedded.org/mt/115268059/3617049
> Group Owner:openembedded-core+owner@lists.openembedded.org
> Unsubscribe:https://lists.openembedded.org/g/openembedded-core/unsub  [hongxu.jia@eng.windriver.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Hongxu Jia Sept. 19, 2025, 8:34 a.m. UTC | #4
On 9/19/25 11:08, hongxu via lists.openembedded.org wrote:
> On 9/17/25 19:24, Mathieu Dubois-Briand via lists.openembedded.org wrote:
>> CAUTION: This email comes from a non Wind River email account!
>> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>>
>> On Tue Sep 16, 2025 at 6:09 AM CEST, hongxu via lists.openembedded.org wrote:
>>> 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.
>>>
>>> Introduce separate variables to avoid the :remove operations, such DEBUG_OPTLEVEL,
>>> BUILD_OPTLEVEL and OECMAKE_WEBKIT_NO_INLINE_HINTS
>>>
>>> Suggested-by: Peter Kjellerstedt<peter.kjellerstedt@axis.com>
>>> Signed-off-by: Hongxu Jia<hongxu.jia@windriver.com>
>>> ---
>> Just a note about this patches: I had perf reproducibility issues [1][2]
>> after taking this series and I believe this is linked with this patch. I
>> suspect this is not directly related with it, but more with the issue we
>> have had with perf reproducibility last week.
>>
>> So I dropped this patch for now, but I will take it a bit later this
>> week and try to go further. I still wanted to provide some feedback
>> here. Also, if anyone believes this issue IS related with this series,
>> please share your thoughts.
>>
>> [1]https://autobuilder.yoctoproject.org/valkyrie/#/builders/37/builds/2505
>> [2]http://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250916-0ss72vce/

I am digging in the issue, and found the issue only happen on world 
build of reproducible, have different debuginfo data.

I found the commit [1] to fix reproducibility issue for perf, but it 
seems the issue still existed,

...

     perf: Fix reproducibility issue

     Perf's build process generates two copies of its internal headers,
     one at tools/lib/perf/include/internal and one at 
libperf/include/internal
     with files like xyarray.h. Although the files are identical, the 
binaries including
     them would see them at different paths and have different debuginfo 
data.

     To avoid this, build libperf.a first, which will ensure the libperf
     headers directory exists. This is used in preference to the other by
     the build process and results in consistent binaries.

...

[1] 
https://git.openembedded.org/openembedded-core/commit/?id=0a886fcacaab0fbce1306c0f99d482f940a8f705

oe-selftest -r reproducible.ReproducibleTests.test_reproducible_builds

$ recipe-sysroot-native/usr/bin/dwarfsrcfiles 
sources/perf-1.0/libperf/core.o
/usr/src/debug/perf/1.0/tools/lib/perf/core.c
...
         /usr/src/debug/perf/1.0/tools/lib/perf/include/perf/core.h
         /usr/src/debug/perf/1.0/tools/lib/perf/include/internal/lib.h
...

$ recipe-sysroot-native/usr/bin/dwarfsrcfiles 
sources/perf-1.0/libperf/core.o
/usr/src/debug/perf/1.0/tools/lib/perf/core.c
...
     /usr/src/debug/perf/1.0/libperf/include/perf/core.h
     /usr/src/debug/perf/1.0/libperf/include/internal/lib.h
...


If specify perf of reproducible for oe selftest, the issue was not found

$ echo 'OEQA_REPRODUCIBLE_TEST_TARGET = "perf"' >> conf/local.conf

$ oe-selftest -r reproducible.ReproducibleTests.test_reproducible_builds

$ recipe-sysroot-native/usr/bin/dwarfsrcfiles 
sources/perf-1.0/libperf/core.o
/usr/src/debug/perf/1.0/tools/lib/perf/core.c
...
     /usr/src/debug/perf/1.0/libperf/include/perf/core.h
     /usr/src/debug/perf/1.0/libperf/include/internal/lib.h
...

$ recipe-sysroot-native/usr/bin/dwarfsrcfiles 
sources/perf-1.0/libperf/core.o
/usr/src/debug/perf/1.0/tools/lib/perf/core.c
...
     /usr/src/debug/perf/1.0/libperf/include/perf/core.h
     /usr/src/debug/perf/1.0/libperf/include/internal/lib.h
...

//Hongxu

> Hi
>
> I clone the branch of you on contrib
>
> https://git.openembedded.org/openembedded-core-contrib/log/?h=mathieu/master-next-success
>
> https://git.openembedded.org/bitbake-contrib/log/?h=mathieu/master-next-success
>
> And do oe-selftest without the debug build patches, the issue we have 
> had with perf reproducibility still exist
>
> $ oe-selftest -r reproducible.ReproducibleTests.test_reproducible_builds
>
> ...
>
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - 
> ======================================================================
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - FAIL: 
> test_reproducible_builds (reproducible.ReproducibleTests)
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - 
> ----------------------------------------------------------------------
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - Traceback (most recent 
> call last):
>   File 
> "/buildarea5/hjia/contrib/openembedded-core-contrib/meta/lib/oeqa/selftest/cases/reproducible.py", 
> line 406, in test_reproducible_builds
>     self.fail('\n'.join(fails))
> AssertionError: Bitbake reproducibleA failure
> Bitbake reproducibleB-extended failure
> The following deb packages are different and not in exclusion list:
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf-dbg_6.16.7-r0_amd64.deb
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf-python_6.16.7-r0_amd64.deb
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf-src_6.16.7-r0_amd64.deb
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./qemux86_64/perf_6.16.7-r0_amd64.deb
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./x86-64-v3/apt-dbg_3.0.3-r0_amd64.deb
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/deb/./x86-64-v3/apt_3.0.3-r0_amd64.deb
> The following ipk packages are different and not in exclusion list:
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf-dbg_6.16.7-r0_qemux86_64.ipk
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf-python_6.16.7-r0_qemux86_64.ipk
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf-src_6.16.7-r0_qemux86_64.ipk
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./qemux86_64/perf_6.16.7-r0_qemux86_64.ipk
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./x86-64-v3/apt-dbg_3.0.3-r0_x86-64-v3.ipk
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/ipk/./x86-64-v3/apt_3.0.3-r0_x86-64-v3.ipk
> The following rpm packages are different and not in exclusion list:
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-6.16.7-r0.qemux86_64.rpm
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-dbg-6.16.7-r0.qemux86_64.rpm
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-python-6.16.7-r0.qemux86_64.rpm
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./qemux86_64/perf-src-6.16.7-r0.qemux86_64.rpm
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./x86_64_v3/apt-3.0.3-r0.x86_64_v3.rpm
> /buildarea5/hjia/contrib/openembedded-core-contrib/build-st/reproducibleB-extended/tmp/deploy/rpm/./x86_64_v3/apt-dbg-3.0.3-r0.x86_64_v3.rpm
>
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - 
> ----------------------------------------------------------------------
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - Ran 1 test in 32633.939s
> 2025-09-19 05:05:31,099 - oe-selftest - INFO - FAILED
> 2025-09-19 05:05:31,099 - oe-selftest - INFO -  (failures=1)
> 2025-09-19 05:05:34,691 - oe-selftest - INFO - RESULTS:
> 2025-09-19 05:05:34,691 - oe-selftest - INFO - RESULTS - 
> reproducible.ReproducibleTests.test_reproducible_builds: FAILED 
> (32633.79s)
> 2025-09-19 05:05:34,736 - oe-selftest - INFO - SUMMARY:
> 2025-09-19 05:05:34,736 - oe-selftest - INFO - oe-selftest () - Ran 1 
> test in 32633.939s
> 2025-09-19 05:05:34,736 - oe-selftest - INFO - oe-selftest - FAIL - 
> Required tests failed (successes=0, skipped=0, failures=1, errors=0)
>
> ...
>
> //Hongxu
>
>> Thanks,
>> Mathieu
>>
>> --
>> Mathieu Dubois-Briand, Bootlin
>> Embedded Linux and Kernel engineering
>> https://bootlin.com
>>
>>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#223719):https://lists.openembedded.org/g/openembedded-core/message/223719
> Mute This Topic:https://lists.openembedded.org/mt/115268059/3617049
> Group Owner:openembedded-core+owner@lists.openembedded.org
> Unsubscribe:https://lists.openembedded.org/g/openembedded-core/unsub  [hongxu.jia@eng.windriver.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Mathieu Dubois-Briand Sept. 21, 2025, 6:30 a.m. UTC | #5
On Wed Sep 17, 2025 at 1:24 PM CEST, Mathieu Dubois-Briand wrote:
> On Tue Sep 16, 2025 at 6:09 AM CEST, hongxu via lists.openembedded.org wrote:
>> 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.
>>
>> Introduce separate variables to avoid the :remove operations, such DEBUG_OPTLEVEL,
>> BUILD_OPTLEVEL and OECMAKE_WEBKIT_NO_INLINE_HINTS
>>
>> Suggested-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>> ---
>
> Just a note about this patches: I had perf reproducibility issues [1][2]
> after taking this series and I believe this is linked with this patch. I
> suspect this is not directly related with it, but more with the issue we
> have had with perf reproducibility last week.
>
> So I dropped this patch for now, but I will take it a bit later this
> week and try to go further. I still wanted to provide some feedback
> here. Also, if anyone believes this issue IS related with this series,
> please share your thoughts.
>
> [1] https://autobuilder.yoctoproject.org/valkyrie/#/builders/37/builds/2505
> [2] http://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250916-0ss72vce/
>

OK, I took again the series, and now the issue is gone. So clearly the
AB-INT is still present.

Bruce, I've been told you are the one to contact here. Do you have any
opinion on this?

Thanks,
Mathieu
diff mbox series

Patch

diff --git a/meta/conf/distro/include/debug_build.inc b/meta/conf/distro/include/debug_build.inc
index a9222a442a..ae6dc7f4c6 100644
--- a/meta/conf/distro/include/debug_build.inc
+++ b/meta/conf/distro/include/debug_build.inc
@@ -5,3 +5,40 @@  SELECTED_OPTIMIZATION = "${DEBUG_OPTIMIZATION}"
 # compiler flags for native/nativesdk
 BUILD_OPTLEVEL = "-Og"
 BUILD_OPTIMIZATION = "${BUILD_OPTLEVEL} -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_OPTLEVEL:mips:pn-kea = "-O"
+DEBUG_OPTLEVEL:mipsel:pn-kea = "-O"
+# {standard input}: Assembler messages:
+# {standard input}:1488805: Error: branch out of range
+DEBUG_OPTLEVEL:mips:pn-python3-lxml = "-O"
+DEBUG_OPTLEVEL:mipsel:pn-python3-lxml = "-O"
+# 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_OPTLEVEL:mips:pn-kea = "-O"
+BUILD_OPTLEVEL:mipsel:pn-kea = "-O"
+# {standard input}: Assembler messages:
+# {standard input}:1488805: Error: branch out of range
+BUILD_OPTLEVEL:mips:pn-python3-lxml = "-O"
+BUILD_OPTLEVEL:mipsel:pn-python3-lxml = "-O"
+
+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 cc34c05093..ead4e98e70 100644
--- a/meta/recipes-connectivity/kea/kea_3.0.1.bb
+++ b/meta/recipes-connectivity/kea/kea_3.0.1.bb
@@ -34,16 +34,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.1.bb b/meta/recipes-devtools/python/python3-lxml_6.0.1.bb
index 5d76641675..6bcd399da5 100644
--- a/meta/recipes-devtools/python/python3-lxml_6.0.1.bb
+++ b/meta/recipes-devtools/python/python3-lxml_6.0.1.bb
@@ -23,18 +23,6 @@  SRC_URI[sha256sum] = "2b3a882ebf27dd026df3801a87cf49ff791336e0f94b0fad195db77e01
 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
 # <instantiation>:13:5: error: invalid token in expression
 # .if $17 != 0
diff --git a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.321.0.bb b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.321.0.bb
index 466e757a90..fa7873b62d 100644
--- a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.321.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.321.0.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 e1915207ee..98dffd1cc9 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -415,8 +415,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.48.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.48.5.bb
index 46031322b9..ba08e8b925 100644
--- a/meta/recipes-sato/webkit/webkitgtk_2.48.5.bb
+++ b/meta/recipes-sato/webkit/webkitgtk_2.48.5.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"