Re: [OE-core] [PATCH] strace: Remove -std=gnu23 from ptests makefile to fix reproducibility

Richard Purdie
2026-04-14T11:06:01Z

On Tue, 2026-04-14 at 02:33 -0700, Khem Raj via lists.openembedded.org wrote:
> with updated ax_prog_cc_for_build.m4 macros, -std=gnu23 can be added to
> CC_FOR_BUILD based upon what autoconf-2.73 detects gcc on host to support
> which could vary depending upon build host. This gets into Makefile which
> is shipped with ptests on tatget. Since we are on gcc-15 this option is
> not really needed on target as gcc15 defaults to c23
>
> Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
> ---
>  meta/recipes-devtools/strace/strace_6.19.bb | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/meta/recipes-devtools/strace/strace_6.19.bb b/meta/recipes-devtools/strace/strace_6.19.bb
> index 9dcf9d14d5..e7c96262ce 100644
> --- a/meta/recipes-devtools/strace/strace_6.19.bb
> +++ b/meta/recipes-devtools/strace/strace_6.19.bb
> @@ -52,6 +52,8 @@ do_install_ptest() {
>   sed -e 's/^srcdir = .*/srcdir = ..\/..\/ptest\/tests/' \
>       -e "/^TEST_LOG_DRIVER =/s|(top_srcdir)|(top_builddir)|" \
>       -i ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
> + # avoid reproducibility issue, -std=gnu23 is used only on hosts with gcc-14 and newer
> + sed -i '/^CC_FOR_BUILD=/s/-std=gnu23//g' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile

Sadly this doesn't quite work since " -std=gnu23" gets added to the
line and hence there would still a whitespace difference :(.

I've send another version of this which handles the whitespace (and
combines with the previous sed).

Cheers,

Richard