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 |
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] > -=-=-=-=-=-=-=-=-=-=-=- > >
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,
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 --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.
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,