On Mon, Nov 6, 2023 at 2:53 PM Max Krummenacher <max.oss...@gmail.com> wrote: > > From: Max Krummenacher <max.krummenac...@toradex.com> > > Kernel 6.7-rc1 commit 02e85f74668e ("tools: arm64: Add a Makefile for > generating sysreg-defs.h") uses files from arch/arm64/tools/, > gen-sysreg.awk and sysreg. > Without the files the build of perf fails independent of the used > architecture (confirmed with armv7 and qemux86_64). > > As arch/arm64/tools/ has been added with 5.13 allow perf to build > even it that directory does not exist. > > Add arch/arm64/tools/ to PERF_SRC. > > Fixes: > | make[3]: *** No rule to make target > '.../qemux86_64-tdx-linux/perf/1.0/perf-1.0/arch/arm64/tools/gen-sysreg.awk', > needed by > '.../qemux86_64-tdx-linux/perf/1.0/perf-1.0/tools/arch/arm64/include/generated/asm/sysreg-defs.h'. > Stop. > | make[2]: *** [Makefile.perf:456: arm64-sysreg-defs] Error 2 > > Signed-off-by: Max Krummenacher <max.krummenac...@toradex.com> > --- > meta/recipes-kernel/perf/perf.bb | 5 +++++ > 1 file changed, 5 insertions(+) > > Hi all > > I see some other options: > - drop perf support for kernels<5.13 and simply add to PERF_SRC > - drop the bb.fatal in favour of continue and simply add to PERF_SRC > > Any comments?
I just ran into this myself while updating linux-yocto-dev What you have is better than either of those options, but different from what I was working on. perf already uses KERNEL_VERSION, so I was adding some KERNEL_VERSION specific sources and only copying them when they match. I'm concerned that skipping or always allowing files to not exist will lead us to more subtle errors with invalid/incorrect kernel source trees. Another idea I had is to just skip if sources don't exist (like we do in devsrc), but bb.warn so the user is aware. Bruce > > Thanks. > Max > > > diff --git a/meta/recipes-kernel/perf/perf.bb > b/meta/recipes-kernel/perf/perf.bb > index 675acfaf26..dae9320169 100644 > --- a/meta/recipes-kernel/perf/perf.bb > +++ b/meta/recipes-kernel/perf/perf.bb > @@ -117,6 +117,7 @@ EXTRA_OEMAKE += "\ > # honour a JOBS variable. > EXTRA_OEMAKE:append:task-configure = " JOBS=1" > > +PERF_SRC_OPTIONAL ?= "arch/arm64/tools" > PERF_SRC ?= "Makefile \ > tools/arch \ > tools/build \ > @@ -127,6 +128,7 @@ PERF_SRC ?= "Makefile \ > tools/scripts \ > scripts/ \ > arch/${ARCH}/Makefile \ > + ${PERF_SRC_OPTIONAL} \ > " > > PERF_EXTRA_LDFLAGS = "" > @@ -162,6 +164,7 @@ do_install() { > > do_configure[prefuncs] += "copy_perf_source_from_kernel" > python copy_perf_source_from_kernel() { > + sources_opt = (d.getVar("PERF_SRC_OPTIONAL") or "").split() > sources = (d.getVar("PERF_SRC") or "").split() > src_dir = d.getVar("STAGING_KERNEL_DIR") > dest_dir = d.getVar("S") > @@ -171,6 +174,8 @@ python copy_perf_source_from_kernel() { > src = oe.path.join(src_dir, s) > dest = oe.path.join(dest_dir, s) > if not os.path.exists(src): > + if s in sources_opt: > + continue > bb.fatal("Path does not exist: %s. Maybe PERF_SRC does not match > the kernel version." % src) > if os.path.isdir(src): > oe.path.copyhardlinktree(src, dest) > -- > 2.35.3 > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#190247): https://lists.openembedded.org/g/openembedded-core/message/190247 Mute This Topic: https://lists.openembedded.org/mt/102428403/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-