From: Kris Van Hees Date: Mon, 18 Nov 2013 09:35:10 +0000 (-0500) Subject: dtrace: support auto-building of dtrace-module for UEK kernels X-Git-Tag: v4.1.12-111.0.20170907_2225~3^2~3^2~107 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f9f23427088da599c988d00dc2add7889845a642;p=users%2Fjedix%2Flinux-maple.git dtrace: support auto-building of dtrace-module for UEK kernels This provides the mechanics to ensure that dtrace-mpdule RPMs can be built automatically when UEK kernels are built. This also fixes the correct handling of specifying build_kver. Signed-off-by: Kris Van Hees --- diff --git a/dtrace/dtrace-module.spec b/dtrace/dtrace-module.spec index e385759742f8e..5d63a87a3edaf 100644 --- a/dtrace/dtrace-module.spec +++ b/dtrace/dtrace-module.spec @@ -10,21 +10,53 @@ %define variant %{?build_variant:%{build_variant}}%{!?build_variant:-uek} # Set this to the version of the kernel this module is compiled against. -%define kver %{?build_kver:{build_kver}}%{!?build_kver:3.8.13-16.2.1.el6uek} +%define kver %{?build_kver:%{build_kver}}%{!?build_kver:3.8.13-16.2.1.el6uek} # Increment this whenever the DTrace/userspace interface changes in an # incompatible way. %define dtrace_kernel_interface 1 +# Select the correct source code version based on the kernel version. +# Failing to pick the correct version can have disasterous effects! +# For safety, we assume that the kernel version is not supported, unless we +# explicitly recognize it below... Unsupported versions will always have +# version code 0. +# +# We also set a version code (vercode) to make it possible to make parts of +# the specfile conditional on the modules version. +%define dt_vcode 0 +%define dt_0_3_2 770 +%define dt_0_4_0 1024 +%define dt_0_4_1 1025 +%{lua: + local kver = rpm.expand("%{kver}") + + if rpm.vercmp(kver, "3.8.13-16.2.1") >= 0 then + rpm.define("srcver 0.4.1") + rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_1}")) + elseif rpm.vercmp(kver, "3.8.13-16") >= 0 then + rpm.define("srcver 0.4.0") + rpm.define("dt_vcode "..rpm.expand("%{dt_0_4_0}")) + elseif rpm.vercmp(kver, "3") >= 0 then + -- No DTrace in 3.x kernels until 3.8.13-16 + elseif rpm.vercmp(kver, "2.6.39-201.0.2") >= 0 then + rpm.define("srcver 0.3.2") + rpm.define("dt_vcode "..rpm.expand("%{dt_0_3_2}")) + end +} +%if %{dt_vcode} == 0 + %{error:Kernel %{kver} is not supported for DTrace or source code missing} +%endif + Name: dtrace-modules-%{kver} Summary: dtrace module -Version: 0.4.1 +Version: %{srcver} Release: 3.el6 Provides: dtrace-kernel-interface = %{dtrace_kernel_interface} License: CDDL Group: System Environment/Kernel Requires: kernel%{variant} = %{kver} -Source0: dtrace-module-%{kver}.tar.bz2 +Source0: dtrace-module-%{srcver}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: kernel%{variant}-devel = %{kver} BuildRequires: libdtrace-ctf @@ -100,6 +132,7 @@ rm -rf %{buildroot} /usr/include/linux/dtrace/types.h %changelog +%if %{dt_vcode} >= %{dt_0_4_1} * Wed Nov 6 2013 Kris Van Hees - 0.4.1-3 - Fix 'errno' implementation. [Orabug: 17704568] @@ -115,6 +148,8 @@ rm -rf %{buildroot} [Orabug: 17591351] - Ensure safe access to userspace stack memory location. [Orabug: 17591351] +%endif +%if %{dt_vcode} >= %{dt_0_4_0} * Thu Oct 10 2013 Kris Van Hees - 0.4.0-2 - Bugfix for ustack() to avoid using vma data. * Wed Aug 7 2013 Kris Van Hees - 0.4.0-1 @@ -126,6 +161,13 @@ rm -rf %{buildroot} - Reimplemented ustack(). (Nick Alcock) [Orabug: 17591351] - Bugfixes. +%endif +%if %{dt_vcode} >= %{dt_0_3_2} +* Fri Nov 2 2012 Nick Alcock - 0.3.2 +- Release for new kernel and CTF section layout +%endif +* Mon Oct 1 2012 Kris Van Hees - 0.3.1 +- Skipped version number * Mon Sep 17 2012 Kris Van Hees - 0.3.0-2 - Remove development-only providers because they should not be built/released. * Fri Sep 14 2012 Kris Van Hees - 0.3.0