diff mbox series

strace: Remove -std=gnu23 from ptests makefile to fix reproducibility

Message ID 20260414093340.4166638-1-khem.raj@oss.qualcomm.com
State New
Headers show
Series strace: Remove -std=gnu23 from ptests makefile to fix reproducibility | expand

Commit Message

Khem Raj April 14, 2026, 9:33 a.m. UTC
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(+)

Comments

Richard Purdie April 14, 2026, 11:05 a.m. UTC | #1
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
diff mbox series

Patch

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
 }
 
 RDEPENDS:${PN}-ptest += "make coreutils grep gawk sed locale-base-en-us"