summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/perf
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2023-03-09 23:12:37 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-03-11 00:08:41 +0000
commit64c96cbe52754e803a905513d582e2d35e837cdf (patch)
treebc6f49cfde72a3111a2310cd85a0bbf004d65ab0 /meta/recipes-kernel/perf
parent7c023a2f7c1398c662cf27cfe708619b2e352087 (diff)
downloadpoky-64c96cbe52754e803a905513d582e2d35e837cdf.tar.gz
perf: fix buildpaths QA warning
In the 6.2+ kernel, arm64 perf has a buildpaths QA warning as a syscall table is now being dynamically generated. That generated table includes unistd.h by absolute path, which in turn triggers the buildpaths QA warning. This could easily be patched in linux-yocto, but that would leave the QA issue in perf built from other kernel trees. So we instead to the following: - Add the perf tools directory to the include path - Modify the Makefile to have a relative path to unistd.h and pass both the relative and absolute path to the generation script - Modify the generation script to take the relative location of unistd.h as a new parameter, and use that in the generated sycalls.c file At build, the added include path of the perf source allows the relative path file to be included, and no buildpaths warning is generated. (From OE-Core rev: c8845ab59cd7c28874473618f134a5d45906d6ea) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-kernel/perf')
-rw-r--r--meta/recipes-kernel/perf/perf.bb12
1 files changed, 11 insertions, 1 deletions
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 2f28d16fba..e41fcc4798 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -81,7 +81,7 @@ EXTRA_OEMAKE = '\
81 LDSHARED="${CC} -shared" \ 81 LDSHARED="${CC} -shared" \
82 AR="${AR}" \ 82 AR="${AR}" \
83 LD="${LD}" \ 83 LD="${LD}" \
84 EXTRA_CFLAGS="-ldw" \ 84 EXTRA_CFLAGS="-ldw -I${S}" \
85 YFLAGS='-y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \ 85 YFLAGS='-y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
86 EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \ 86 EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \
87 perfexecdir=${libexecdir} \ 87 perfexecdir=${libexecdir} \
@@ -280,6 +280,16 @@ do_configure:prepend () {
280 sed -i -e "s#os.scandir(path)#sorted(os.scandir(path), key=lambda e: e.name)#g" \ 280 sed -i -e "s#os.scandir(path)#sorted(os.scandir(path), key=lambda e: e.name)#g" \
281 "${S}/tools/perf/pmu-events/jevents.py" 281 "${S}/tools/perf/pmu-events/jevents.py"
282 fi 282 fi
283 if [ -e "${S}/tools/perf/arch/arm64/Makefile" ]; then
284 sed -i 's,sysdef := $(srctree)/,sysdef := ,' ${S}/tools/perf/arch/arm64/Makefile
285 sed -i 's,$(incpath) $(sysdef),$(incpath) $(srctree)/$(sysdef) $(sysdef),' ${S}/tools/perf/arch/arm64/Makefile
286 fi
287 if [ -e "${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl" ]; then
288 if ! grep -q input_rel ${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl; then
289 sed -i 's,input=$4,input=$4\ninput_rel=$5,' ${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
290 fi
291 sed -i 's,#include \\"\$input\\",#include \\"\$input_rel\\",' ${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
292 fi
283 # end reproducibility substitutions 293 # end reproducibility substitutions
284 294
285 # We need to ensure the --sysroot option in CC is preserved 295 # We need to ensure the --sysroot option in CC is preserved