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] -=-=-=-=-=-=-=-=-=-=-=-