From: Hongxu Jia <hongxu.jia@windriver.com>
To: hongxu.jia@eng.windriver.com, mathieu.dubois-briand@bootlin.com,
openembedded-core@lists.openembedded.org
Cc: randy.macleod@windriver.com, peter.kjellerstedt@axis.com,
Richard Purdie <richard.purdie@linuxfoundation.org>
Subject: Re: [OE-core] [PATCH 4/8] debug_build.inc: collect debug build tuning configuration
Date: Fri, 19 Sep 2025 16:34:26 +0800 [thread overview]
Message-ID: <00533f1a-9384-4673-a786-c6a9371acc51@windriver.com> (raw)
In-Reply-To: <1866903FE1AA84E8.22280@lists.openembedded.org>
[-- Attachment #1: Type: text/plain, Size: 9379 bytes --]
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]
> -=-=-=-=-=-=-=-=-=-=-=-
>
[-- Attachment #2: Type: text/html, Size: 13455 bytes --]
next prev parent reply other threads:[~2025-09-19 8:34 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-16 4:09 [PATCH 1/8] yocto-space-optimize.inc: move space optimize from recipe webkitgtk Hongxu Jia
2025-09-16 4:09 ` [PATCH v3 2/8] distro/include: Add debug_build.inc when DEBUG_BUILD is enabled Hongxu Jia
2025-09-29 18:48 ` [OE-core] " Khem Raj
2025-09-29 22:52 ` Peter Kjellerstedt
2025-10-10 7:37 ` Hongxu Jia
2025-09-16 4:09 ` [PATCH 3/8] harfbuzz: set FULL_OPTLEVEL for FULL_OPTIMIZATION Hongxu Jia
2025-09-16 4:09 ` [PATCH 4/8] debug_build.inc: collect debug build tuning configuration Hongxu Jia
2025-09-17 11:24 ` [OE-core] " Mathieu Dubois-Briand
2025-09-17 12:15 ` hongxu
2025-09-19 3:08 ` [OE-core] " Hongxu Jia
[not found] ` <1866903FE1AA84E8.22280@lists.openembedded.org>
2025-09-19 8:34 ` Hongxu Jia [this message]
2025-09-21 6:30 ` Mathieu Dubois-Briand
2025-09-16 4:09 ` [PATCH v3 5/8] debug_build.inc: allow other layers to add their own debug build configurations Hongxu Jia
2025-09-16 4:09 ` [PATCH 6/8] debug_build.inc: override INHIBIT_SYSROOT_STRIP for cross and native Hongxu Jia
2025-09-16 4:09 ` [PATCH 7/8] debug_build.inc: override MESON_BUILDTYPE for meson.bbclass Hongxu Jia
2025-09-16 4:09 ` [PATCH v3 8/8] debug_build.inc: override BUILD_MODE and BUILD_DIR for cargo.bbclass Hongxu Jia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00533f1a-9384-4673-a786-c6a9371acc51@windriver.com \
--to=hongxu.jia@windriver.com \
--cc=hongxu.jia@eng.windriver.com \
--cc=mathieu.dubois-briand@bootlin.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=peter.kjellerstedt@axis.com \
--cc=randy.macleod@windriver.com \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox