diff options
Diffstat (limited to 'packages/linux-kernel/patches/kernel/0003-ship-perf-debian-package.patch')
-rw-r--r-- | packages/linux-kernel/patches/kernel/0003-ship-perf-debian-package.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/packages/linux-kernel/patches/kernel/0003-ship-perf-debian-package.patch b/packages/linux-kernel/patches/kernel/0003-ship-perf-debian-package.patch new file mode 100644 index 00000000..9e8378bc --- /dev/null +++ b/packages/linux-kernel/patches/kernel/0003-ship-perf-debian-package.patch @@ -0,0 +1,95 @@ +From be73c78420d9a23accfa9568e451046272ceab84 Mon Sep 17 00:00:00 2001 +From: Riku Voipio <riku.voipio@linaro.org> +Date: Sat, 17 Oct 2020 10:30:37 +0000 +Subject: [PATCH] Perf is shipped in debian in linux-tools-$version package + +Extend the existing to builddeb script to build perf if BUILD_TOOLS=y is +added the make deb-pkg line + +Some features of this patch I'm uncomfortable with: + +1. Relative paths are resoved to absolute ones + Especially with separate O= buildd, perf build from tools/perf dir + fail. + +2. Unsetting LDFLAGS + make -> shell (builddeb) -> make expands variables. The LDFLAGS as + set by toplevel makefile are for kernel, so we just unset the flag + here. + +3. Replaces ubuntu/debian packages instead attempting to fit to + the linux-base/linux-tools-common frameworks. I think people who + want to run "make deb-pkg" for their kernels would rather keep this + simple. + +4. More tools than just perf could be built - unfortunately most + tools fail to have a working "install" target and/or else have + build process inconsistent with other tools. A topic for another + patch series. + +Signed-off-by: Riku Voipio <riku.voipio@linaro.org> +--- + scripts/package/builddeb | 31 ++++++++++++++++++++++++++++++- + 1 file changed, 30 insertions(+), 1 deletion(-) + +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index c4c580f547ef..9a4caabef7dc 100755 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -51,10 +51,12 @@ tmpdir="$objtree/debian/tmp" + kernel_headers_dir="$objtree/debian/hdrtmp" + libc_headers_dir="$objtree/debian/headertmp" + dbg_dir="$objtree/debian/dbgtmp" ++tools_dir="$objtree/debian/toolstmp" + packagename=linux-image-$version + kernel_headers_packagename=linux-headers-$version + libc_headers_packagename=linux-libc-dev + dbg_packagename=$packagename-dbg ++tools_packagename=linux-tools-$version + + if [ "$ARCH" = "um" ] ; then + packagename=user-mode-linux-$version +@@ -77,7 +79,7 @@ esac + BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes) + + # Setup the directory structure +-rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files ++rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$tools_dir" $objtree/debian/files + mkdir -m 755 -p "$tmpdir/DEBIAN" + mkdir -p "$tmpdir/lib" "$tmpdir/boot" + mkdir -p "$kernel_headers_dir/lib/modules/$version/" +@@ -205,4 +207,31 @@ if [ -n "$BUILD_DEBUG" ] ; then + create_package "$dbg_packagename" "$dbg_dir" + fi + ++if [ -n "$BUILD_TOOLS" ] ++then ++ # HACK - change output dir from relative to absolute ++ mkdir -p $tools_dir ++ tools_dest=`readlink -f $tools_dir` ++ if [ -n "$O" ] ++ then ++ output=`readlink -f $objtree` ++ mkdir -p $output/tools/perf ++ output="O=$output/tools/perf" ++ fi ++ $MAKE V=1 -C $srctree/tools/perf $output LDFLAGS= srctree=$KBUILD_SRC prefix=$tools_dest/usr install ++ cat <<EOF >> debian/control ++ ++Package: $tools_packagename ++Architecture: any ++Replaces: linux-base, linux-tools-common ++Depends: \${shlibs:Depends} ++Description: Performance analysis tools for Linux $version ++ This package contains the 'perf' performance analysis tools for Linux ++ kernel version $version . ++EOF ++ ++ dpkg-shlibdeps $tools_dest/usr/bin/* $tools_dest/usr/lib*/traceevent/plugins/* ++ create_package "$tools_packagename" "$tools_dir" ++fi ++ + exit 0 +-- +2.20.1 + |