summaryrefslogtreecommitdiff
path: root/packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-06-24 20:16:04 +0200
committerChristian Poessinger <christian@poessinger.com>2020-06-24 21:04:17 +0200
commitc1abd123989f82feca0223bbb462bce3a62fc618 (patch)
tree07762da1874f97c4bf8cb0b04398c649889847dd /packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch
parent488ebdf6ca0de558dbbadcab1342f7625aa3a588 (diff)
downloadvyos-build-c1abd123989f82feca0223bbb462bce3a62fc618.tar.gz
vyos-build-c1abd123989f82feca0223bbb462bce3a62fc618.zip
Jenkins: T2625: import Kernel Pipeline
Imported from https://github.com/vyos/vyos-build-kernel commit 9e7c12b
Diffstat (limited to 'packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch')
-rw-r--r--packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch b/packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch
new file mode 100644
index 00000000..38d5b980
--- /dev/null
+++ b/packages/linux-kernel/patches/kernel/0003-RFC-builddeb-add-linux-tools-package-with-perf.patch
@@ -0,0 +1,93 @@
+From: Riku Voipio <riku.voipio@linaro.org>
+
+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 0b31f4f1f92c..629144b4226b 100755
+--- a/scripts/package/builddeb
++++ b/scripts/package/builddeb
+@@ -39,10 +39,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
+@@ -65,7 +67,7 @@ esac
+ BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
+
+ # 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/"
+@@ -194,4 +196,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 -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
+