I however need to clean it up before I submit it upstream. Consider the inline patch below as RFC
(tested on 4.14 and 4.19). My worry is around the hard-coded Depends (tested OK on Debian 9)
Index: linux-4.14.71/scripts/package/builddeb
===================================================================
--- linux-4.14.71.orig/scripts/package/builddeb
+++ linux-4.14.71/scripts/package/builddeb
@@ -90,12 +90,23 @@ if [ -n "$KDEB_PKGVERSION" ]; then
else
packageversion=$version-$revision
fi
+perf_kver="${version%%-*}"
+case "$perf_kver" in
+ *.*.*)
+ perf_kver="${perf_kver%.*}"
+ ;;
+esac
sourcename=$KDEB_SOURCENAME
tmpdir="$objtree/debian/tmp"
kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp"
dbg_dir="$objtree/debian/dbgtmp"
packagename=linux-image-$version
+perf_dir="$objtree/debian/perf-$perf_kver-tmp"
+meta_perf_dir="$objtree/debian/perftmp"
+perf_packagename=linux-perf-$perf_kver
+meta_perf_packagename=linux-perf
+dbg_dir="$objtree/debian/dbgtmp"
kernel_headers_packagename=linux-headers-$version
libc_headers_packagename=linux-libc-dev
dbg_packagename=$packagename-dbg
@@ -125,6 +136,7 @@ BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_IN
# Setup the directory structure
rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
+rm -rf "$meta_perf_dir" "$perf_dir"
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot"
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
@@ -177,6 +189,21 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_
fi
fi
+mkdir -p $perf_dir
+$MAKE -C tools/perf -f Makefile.perf \
+ DESTDIR="$(readlink -f $perf_dir)" \
+ srctree=$(pwd) \
+ LDFLAGS= \
+ prefix=/usr \
+ perfexecdir=lib/perf_$perf_kver-core \
+ install
+mv $perf_dir/usr/bin/perf $perf_dir/usr/bin/perf_$perf_kver
+rm -f $perf_dir/usr/bin/trace
+for p in $perf_dir/usr/bin/perf-*; do
+ [ -f $p ] || continue
+ mv $p $perf_dir/usr/lib/perf_$perf_kver-core/
+done
+
if [ "$ARCH" != "um" ]; then
$MAKE headers_check KBUILD_SRC=
$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
@@ -352,12 +379,35 @@ Description: Linux support headers for u
are used by the installed headers for GNU glibc and other system libraries.
EOF
+cat <<EOF >> debian/control
+
+Package: $meta_perf_packagename
+Section: devel
+Architecture: all
+Depends: $perf_packagename
+Description: Performance analysis tools for Linux (meta-package)
+ This package depends on the package containing the 'perf' performance analysis
+ tools for the latest Linux kernel.
+
+Package: $perf_packagename
+Section: devel
+Architecture: any
+Depends: libunwind8, libperl5.24, libpython2.7, binutils, libnuma1
+Description: Performance analysis tools for Linux $KERNELRELEASE
+ This package contains the 'perf' performance analysis tools for Linux kernel
+ version $KERNELRELEASE
+EOF
+
if [ "$ARCH" != "um" ]; then
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
create_package "$libc_headers_packagename" "$libc_headers_dir"
fi
create_package "$packagename" "$tmpdir"
+create_package "$perf_packagename" "$perf_dir"
+
+forcearch="-DArchitecture=all" \
+create_package "$meta_perf_packagename" "$meta_perf_dir"
if [ -n "$BUILD_DEBUG" ] ; then
# Build debug package
On Tuesday, July 2, 2019 at 1:38:03 PM UTC+2, Jan Kiszka wrote:
On 02.07.19 13:30, srinuv...@gmail.com wrote:
> Hi All,
>
> We need to support perf tool in linux-cip 4.19 kernel, Is it
> available perf_4.19 in ISAR?
>
Let's start differently:
- describe the problem you are facing (Debian perf vs. perf from custom
kernels)
- describe your current downstream approach to resolve that (ideally
with code)
- ask for feedback / suggestions how to address that in Isar generically
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux