diff mbox series

perf: add arm64 source files for unistd_64.h

Message ID 20250604-perf-arm64-unistd-v1-1-97d3bb08927f@phytec.de
State Accepted, archived
Commit 7e24a0e9dd75070bff0c11c4db47a30b71afaa94
Headers show
Series perf: add arm64 source files for unistd_64.h | expand

Commit Message

Yannic Moog June 4, 2025, 6:51 a.m. UTC
kernel commit bfb713ea53c7 ("perf tools: Fix arm64 build by generating unistd_64.h")
introduces a new dependency on source files for arm64, specifically
include/uapi/asm-generic.

Build fails with:
[..]/perf/1.0/perf-1.0/scripts/Makefile.asm-headers:33: [...]/perf/1.0/perf-1.0/include/uapi/asm-generic/Kbuild: No such file or directory
make[4]: *** No rule to make target '[...]/perf/1.0/perf-1.0/include/uapi/asm-generic/Kbuild'.  Stop.

Add the directory to PERF_SRC.
Fix whitespace error while at it.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
---
 meta/recipes-kernel/perf/perf.bb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


---
base-commit: 343dd7ae4a177111e75f51f6d1ee1ce254f99e9d
change-id: 20250603-perf-arm64-unistd-9344a6fc96a7

Best regards,

Comments

Bruce Ashfield June 4, 2025, 11:54 a.m. UTC | #1
On Wed, Jun 4, 2025 at 2:52 AM Yannic Moog via lists.openembedded.org
<y.moog=phytec.de@lists.openembedded.org> wrote:

> kernel commit bfb713ea53c7 ("perf tools: Fix arm64 build by generating
> unistd_64.h")
> introduces a new dependency on source files for arm64, specifically
> include/uapi/asm-generic.
>
> Build fails with:
> [..]/perf/1.0/perf-1.0/scripts/Makefile.asm-headers:33:
> [...]/perf/1.0/perf-1.0/include/uapi/asm-generic/Kbuild: No such file or
> directory
> make[4]: *** No rule to make target
> '[...]/perf/1.0/perf-1.0/include/uapi/asm-generic/Kbuild'.  Stop.
>
> Add the directory to PERF_SRC.
> Fix whitespace error while at it.
>
> Signed-off-by: Yannic Moog <y.moog@phytec.de>
> ---
>  meta/recipes-kernel/perf/perf.bb | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/
> perf.bb
> index
> 0d19e1bdc222da26a5ad0a1d4964acca437a6692..d7a81b5802dc655917c2adf04472b8e680380ec8
> 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -151,6 +151,7 @@ PERF_SRC ?= "Makefile \
>               arch/arm64/tools \
>               ${PERF_BPF_EVENT_SRC} \
>               arch/${ARCH}/Makefile \
> +             ${@bb.utils.contains('ARCH', 'arm64',
> 'include/uapi/asm-generic', '', d)} \
>

Can we be more precise on just getting what we need to generate unistd_64 ?

We've always tried to copy just as much as required to get things building.
I've been
able to get away with being specific in kernel-devsrc in the past.

Barring that, I wouldn't make this architecture specific, just copy it all
for all architectures.

Bruce

 "
>
>  PERF_EXTRA_LDFLAGS = ""
> @@ -208,7 +209,7 @@ python copy_perf_source_from_kernel() {
>  do_configure:prepend () {
>      # If building a multlib based perf, the incorrect library path will be
>      # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64). In
> a 32 bit
> -    # build, with a 64 bit multilib, the arch won't match and the
> detection of a
> +    # build, with a 64 bit multilib, the arch won't match and the
> detection of a
>      # 64 bit build (and library) are not exected. To ensure that
> libraries are
>      # installed to the correct location, we can use the weak assignment
> in the
>      # config/Makefile.
>
> ---
> base-commit: 343dd7ae4a177111e75f51f6d1ee1ce254f99e9d
> change-id: 20250603-perf-arm64-unistd-9344a6fc96a7
>
> Best regards,
> --
> Yannic Moog <y.moog@phytec.de>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#217839):
> https://lists.openembedded.org/g/openembedded-core/message/217839
> Mute This Topic: https://lists.openembedded.org/mt/113462181/1050810
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> bruce.ashfield@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Yannic Moog June 4, 2025, 1:05 p.m. UTC | #2
Am Mittwoch, dem 04.06.2025 um 07:54 -0400 schrieb Bruce Ashfield:
> 
> 
> On Wed, Jun 4, 2025 at 2:52 AM Yannic Moog via lists.openembedded.org
> <y.moog=phytec.de@lists.openembedded.org> wrote:
> > kernel commit bfb713ea53c7 ("perf tools: Fix arm64 build by generating
> > unistd_64.h")
> > introduces a new dependency on source files for arm64, specifically
> > include/uapi/asm-generic.
> > 
> > Build fails with:
> > [..]/perf/1.0/perf-1.0/scripts/Makefile.asm-headers:33: [...]/perf/1.0/perf-
> > 1.0/include/uapi/asm-generic/Kbuild: No such file or directory
> > make[4]: *** No rule to make target '[...]/perf/1.0/perf-
> > 1.0/include/uapi/asm-generic/Kbuild'.  Stop.
> > 
> > Add the directory to PERF_SRC.
> > Fix whitespace error while at it.
> > 
> > Signed-off-by: Yannic Moog <y.moog@phytec.de>
> > ---
> >  meta/recipes-kernel/perf/perf.bb | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-
> > kernel/perf/perf.bb
> > index
> > 0d19e1bdc222da26a5ad0a1d4964acca437a6692..d7a81b5802dc655917c2adf04472b8e680
> > 380ec8 100644
> > --- a/meta/recipes-kernel/perf/perf.bb
> > +++ b/meta/recipes-kernel/perf/perf.bb
> > @@ -151,6 +151,7 @@ PERF_SRC ?= "Makefile \
> >               arch/arm64/tools \
> >               ${PERF_BPF_EVENT_SRC} \
> >               arch/${ARCH}/Makefile \
> > +             ${@bb.utils.contains('ARCH', 'arm64', 'include/uapi/asm-
> > generic', '', d)} \
> > 
> 
> 
> Can we be more precise on just getting what we need to generate unistd_64 ?

Don't think so, but I don't have experience with perf. Kbuild requires all files
present in the directory afaik.

> 
> We've always tried to copy just as much as required to get things building.
> I've been
> able to get away with being specific in kernel-devsrc in the past.
> 
> Barring that, I wouldn't make this architecture specific, just copy it all for
> all architectures.

Okay, will do.

Yannic

> 
> Bruce
> 
> >  "
> > 
> >  PERF_EXTRA_LDFLAGS = ""
> > @@ -208,7 +209,7 @@ python copy_perf_source_from_kernel() {
> >  do_configure:prepend () {
> >      # If building a multlib based perf, the incorrect library path will be
> >      # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64). In a
> > 32 bit
> > -    # build, with a 64 bit multilib, the arch won't match and the detection
> > of a 
> > +    # build, with a 64 bit multilib, the arch won't match and the detection
> > of a
> >      # 64 bit build (and library) are not exected. To ensure that libraries
> > are
> >      # installed to the correct location, we can use the weak assignment in
> > the
> >      # config/Makefile.
> > 
> > ---
> > base-commit: 343dd7ae4a177111e75f51f6d1ee1ce254f99e9d
> > change-id: 20250603-perf-arm64-unistd-9344a6fc96a7
> > 
> > Best regards,
Bruce Ashfield June 4, 2025, 1:12 p.m. UTC | #3
On Wed, Jun 4, 2025 at 9:05 AM Yannic Moog <Y.Moog@phytec.de> wrote:

> Am Mittwoch, dem 04.06.2025 um 07:54 -0400 schrieb Bruce Ashfield:
> >
> >
> > On Wed, Jun 4, 2025 at 2:52 AM Yannic Moog via lists.openembedded.org
> > <y.moog=phytec.de@lists.openembedded.org> wrote:
> > > kernel commit bfb713ea53c7 ("perf tools: Fix arm64 build by generating
> > > unistd_64.h")
> > > introduces a new dependency on source files for arm64, specifically
> > > include/uapi/asm-generic.
> > >
> > > Build fails with:
> > > [..]/perf/1.0/perf-1.0/scripts/Makefile.asm-headers:33:
> [...]/perf/1.0/perf-
> > > 1.0/include/uapi/asm-generic/Kbuild: No such file or directory
> > > make[4]: *** No rule to make target '[...]/perf/1.0/perf-
> > > 1.0/include/uapi/asm-generic/Kbuild'.  Stop.
> > >
> > > Add the directory to PERF_SRC.
> > > Fix whitespace error while at it.
> > >
> > > Signed-off-by: Yannic Moog <y.moog@phytec.de>
> > > ---
> > >  meta/recipes-kernel/perf/perf.bb | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-
> > > kernel/perf/perf.bb
> > > index
> > >
> 0d19e1bdc222da26a5ad0a1d4964acca437a6692..d7a81b5802dc655917c2adf04472b8e680
> > > 380ec8 100644
> > > --- a/meta/recipes-kernel/perf/perf.bb
> > > +++ b/meta/recipes-kernel/perf/perf.bb
> > > @@ -151,6 +151,7 @@ PERF_SRC ?= "Makefile \
> > >               arch/arm64/tools \
> > >               ${PERF_BPF_EVENT_SRC} \
> > >               arch/${ARCH}/Makefile \
> > > +             ${@bb.utils.contains('ARCH', 'arm64', 'include/uapi/asm-
> > > generic', '', d)} \
> > >
> >
> >
> > Can we be more precise on just getting what we need to generate
> unistd_64 ?
>
> Don't think so, but I don't have experience with perf. Kbuild requires all
> files
> present in the directory afaik.
>
>
Not necessarily, see the kernel-dev src recipe. We've been picking out
just the kbuild parts for years there.

Bruce



> >
> > We've always tried to copy just as much as required to get things
> building.
> > I've been
> > able to get away with being specific in kernel-devsrc in the past.
> >
> > Barring that, I wouldn't make this architecture specific, just copy it
> all for
> > all architectures.
>
> Okay, will do.
>
> Yannic
>
> >
> > Bruce
> >
> > >  "
> > >
> > >  PERF_EXTRA_LDFLAGS = ""
> > > @@ -208,7 +209,7 @@ python copy_perf_source_from_kernel() {
> > >  do_configure:prepend () {
> > >      # If building a multlib based perf, the incorrect library path
> will be
> > >      # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64).
> In a
> > > 32 bit
> > > -    # build, with a 64 bit multilib, the arch won't match and the
> detection
> > > of a
> > > +    # build, with a 64 bit multilib, the arch won't match and the
> detection
> > > of a
> > >      # 64 bit build (and library) are not exected. To ensure that
> libraries
> > > are
> > >      # installed to the correct location, we can use the weak
> assignment in
> > > the
> > >      # config/Makefile.
> > >
> > > ---
> > > base-commit: 343dd7ae4a177111e75f51f6d1ee1ce254f99e9d
> > > change-id: 20250603-perf-arm64-unistd-9344a6fc96a7
> > >
> > > Best regards,
>
diff mbox series

Patch

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 0d19e1bdc222da26a5ad0a1d4964acca437a6692..d7a81b5802dc655917c2adf04472b8e680380ec8 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -151,6 +151,7 @@  PERF_SRC ?= "Makefile \
              arch/arm64/tools \
              ${PERF_BPF_EVENT_SRC} \
              arch/${ARCH}/Makefile \
+             ${@bb.utils.contains('ARCH', 'arm64', 'include/uapi/asm-generic', '', d)} \
 "
 
 PERF_EXTRA_LDFLAGS = ""
@@ -208,7 +209,7 @@  python copy_perf_source_from_kernel() {
 do_configure:prepend () {
     # If building a multlib based perf, the incorrect library path will be
     # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64). In a 32 bit
-    # build, with a 64 bit multilib, the arch won't match and the detection of a 
+    # build, with a 64 bit multilib, the arch won't match and the detection of a
     # 64 bit build (and library) are not exected. To ensure that libraries are
     # installed to the correct location, we can use the weak assignment in the
     # config/Makefile.