packaging: add perf package for perf tool and traceevent plugins
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 15 Nov 2022 04:32:16 +0000 (13:32 +0900)
committerHoegeun Kwon <hoegeun.kwon@samsung.com>
Wed, 23 Nov 2022 02:31:04 +0000 (11:31 +0900)
Add perf package for perf tool and its traceevent plugins.

Note: they are built from below directories.
- perf: tools/perf
- traceevent plugins: tools/lib/traceevent

Change-Id: Ia154b6fd85dbc65f2ca3c5af018cc86cd6061f9d
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
packaging/linux-rpi4.spec

index 6092bfb..07ab10d 100644 (file)
@@ -30,6 +30,13 @@ BuildRequires: module-init-tools
 BuildRequires: bison
 BuildRequires: flex
 BuildRequires: libopenssl1.1-devel
+BuildRequires: libunwind-devel
+BuildRequires: libdw-devel
+BuildRequires: libelf-devel
+BuildRequires: elfutils
+BuildRequires: xz-devel
+BuildRequires: binutils-devel
+BuildRequires: python3
 BuildRequires: rsync
 
 %description
@@ -111,6 +118,15 @@ This package provides userspaces headers from the Linux kernel. These
 headers are used by the installed headers for GNU glibc and other system
  libraries.
 
+%package -n linux-kernel-perf
+Summary: The perf performance counter tool
+Group: System/Kernel
+Provides: perf = %{version}
+
+%description -n linux-kernel-perf
+This package provides the "perf" tool that can be used to monitor performance
+counter events as well as various kernel internal events.
+
 %prep
 %setup -q
 
@@ -128,6 +144,10 @@ for target in %{variant} %{variant}-rt; do
     case $target in
        %{variant})
            make O=build/${target} %{config_name} %{?_smp_mflags}
+
+            # Build perf
+            make O=build/${target} -s -C tools/lib/traceevent %{?_smp_mflags}
+            make O=build/${target} -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags}
        ;;
        %{variant}-rt)
            cat _localversion-rt > localversion-rt
@@ -183,6 +203,14 @@ for target in %{variant} %{variant}-rt; do
 %else
             install -m 644 build/${target}/arch/%{buildarch}/boot/zImage %{buildroot}/boot/zImage
 %endif
+
+            # Install perf
+            make O=build/${target} -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install
+            rm -rf %{buildroot}/usr/etc
+            rm -rf %{buildroot}/usr/lib/debug
+            rm -rf %{buildroot}/usr/lib/perf
+            rm -rf %{buildroot}/usr/share
+
        ;;
        %{variant}-rt)
 %ifarch aarch64
@@ -292,3 +320,9 @@ mv /boot/zImage /boot/zImage_rt
 
 %files -n %{variant}-linux-kernel-headers
 /usr/include/*
+
+%files -n linux-kernel-perf
+%license COPYING
+/usr/bin/*
+/usr/libexec/*
+/usr/lib/traceevent/*