public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: raj.khem@gmail.com, openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] perf: Fix headers related build race condition
Date: Mon, 13 Oct 2025 12:36:41 +0100	[thread overview]
Message-ID: <6b91ae5510e34296579a3b562548785f138741bd.camel@linuxfoundation.org> (raw)
In-Reply-To: <20251008002729.1850430-1-raj.khem@gmail.com>

On Tue, 2025-10-07 at 17:27 -0700, Khem Raj via lists.openembedded.org wrote:
> libperf specifies paths to includes in its output
> directory if they exist, however install_headers target
> is run in parallel to source files being built for libperf
> and can race with objects being built for libperf.
> 
> This patch ensures that all headers are built/installed before
> they are used.
> 
> Specifying additional include paths via EXTRA_CFLAGS is of
> no consequence anymore after [1] because it now is appended to
> CFLAGS, so if we are trying to do include path oderining via
> EXTRA_CFLAGS it will have no effect if those paths already are
> in compiler commandline
> 
> [1] https://github.com/torvalds/linux/commit/f5b07010c13c77541e8ade167d05bef3b8a63739
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> 
> s
> ---
>  meta/recipes-kernel/perf/perf.bb | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
> index 3b9e52fdb84..f071685a4be 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -105,7 +105,7 @@ EXTRA_OEMAKE = '\
>      LDSHARED="${CC} -shared" \
>      AR="${AR}" \
>      LD="${LD}" \
> -    EXTRA_CFLAGS="-ldw -I${S} -I${S}/libperf/include -I${S}/tools/lib/perf/include" \
> +    EXTRA_CFLAGS="-ldw -I${S}" \
>      YFLAGS='-y --file-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR}' \
>      EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \
>      perfexecdir=${libexecdir} \
> @@ -173,8 +173,8 @@ do_compile() {
>              sed -i -e 's|\$(libdir)/traceevent/plugins|\$(libdir)/traceevent_${KERNEL_VERSION}/plugins|g' ${S}/tools/perf/Makefile.config
>  	# There are two copies of internal headers such as:
>  	# libperf/include/internal/xyarray.h and tools/lib/perf/include/internal/xyarray.h
> -	# For reproducibile binaries, we need to find one copy, hence force libperf to be created first
> -	oe_runmake ${B}/libperf/libperf.a V=1
> +	# For reproducibile binaries, we need to find one copy, so built the headers target first
> +	oe_runmake -C ${S}/tools/lib/perf DESTDIR=${B}/libperf prefix= install_headers V=1
>  	oe_runmake all V=1
>  }

This basically does the same thing as the other make command. Looking
at the failure logs, I think the issue is in other libraries so I've
taken this idea but applied it to the other libraries too. I'm hoping
that fixes this.

Cheers,

Richard


      reply	other threads:[~2025-10-13 11:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-08  0:27 [PATCH] perf: Fix headers related build race condition Khem Raj
2025-10-13 11:36 ` Richard Purdie [this message]

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=6b91ae5510e34296579a3b562548785f138741bd.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /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