[lttng-dev] [PATCH lttng-modules 1/2] Add RT patch version macros
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Fri Feb 5 18:41:13 EST 2016
Both patches merged, thanks!
Mathieu
----- On Feb 5, 2016, at 5:53 PM, Michael Jeanson mjeanson at efficios.com wrote:
> ---
> Makefile.ABI.workarounds | 8 +++++++-
> lttng-kernel-version.h | 17 +++++++++++++++++
> rt-patch-version.sh | 25 +++++++++++++++++++++++++
> 3 files changed, 49 insertions(+), 1 deletion(-)
> create mode 100755 rt-patch-version.sh
>
> diff --git a/Makefile.ABI.workarounds b/Makefile.ABI.workarounds
> index d553ee4..e8cf520 100644
> --- a/Makefile.ABI.workarounds
> +++ b/Makefile.ABI.workarounds
> @@ -4,8 +4,14 @@
> # the kernel EXTRAVERSION to figure it out. Translate this information
> # into a define visible from the C preprocessor.
>
> -DEB_API_VERSION=$(shell $(MAKEFILEDIR)/abi-debian-version.sh $(KERNELDIR))
> +DEB_API_VERSION:=$(shell $(MAKEFILEDIR)/abi-debian-version.sh $(KERNELDIR))
>
> ifneq ($(DEB_API_VERSION), 0)
> ccflags-y += -DDEBIAN_API_VERSION=$(DEB_API_VERSION)
> endif
> +
> +RT_PATCH_VERSION:=$(shell $(MAKEFILEDIR)/rt-patch-version.sh $(KERNELDIR))
> +
> +ifneq ($(RT_PATCH_VERSION), 0)
> + ccflags-y += -DRT_PATCH_VERSION=$(RT_PATCH_VERSION)
> +endif
> diff --git a/lttng-kernel-version.h b/lttng-kernel-version.h
> index f98a192..ac61739 100644
> --- a/lttng-kernel-version.h
> +++ b/lttng-kernel-version.h
> @@ -90,4 +90,21 @@
> LTTNG_RHEL_VERSION_CODE < \
> LTTNG_RHEL_KERNEL_VERSION(a_high, b_high, c_high, d_high, e_high))
>
> +#define LTTNG_RT_KERNEL_VERSION(a, b, c, d) \
> + (((a) << 24) + ((b) << 16) + ((c) << 8) + (d))
> +
> +#ifdef RT_PATCH_VERSION
> +#define LTTNG_RT_VERSION_CODE \
> + ((LINUX_VERSION_CODE << 8) + RT_PATCH_VERSION)
> +#else
> +#define LTTNG_RT_VERSION_CODE 0
> +#endif
> +
> +#define LTTNG_RT_KERNEL_RANGE(a_low, b_low, c_low, d_low, \
> + a_high, b_high, c_high, d_high) \
> + (LTTNG_RT_VERSION_CODE >= \
> + LTTNG_RT_KERNEL_VERSION(a_low, b_low, c_low, d_low) && \
> + LTTNG_RT_VERSION_CODE < \
> + LTTNG_RT_KERNEL_VERSION(a_high, b_high, c_high, d_high))
> +
> #endif /* _LTTNG_KERNEL_VERSION_H */
> diff --git a/rt-patch-version.sh b/rt-patch-version.sh
> new file mode 100755
> index 0000000..89c7755
> --- /dev/null
> +++ b/rt-patch-version.sh
> @@ -0,0 +1,25 @@
> +#!/bin/sh
> +
> +# First argument is the path to the kernel headers.
> +KPATH=$1
> +
> +VERSIONFILE=""
> +
> +if [ -f "${KPATH}/localversion-rt" ]; then
> + VERSIONFILE="${KPATH}/localversion-rt"
> +
> +elif [ -f "${KPATH}/source/localversion-rt" ]; then
> + VERSIONFILE="${KPATH}/source/localversion-rt"
> +else
> + echo 0
> + exit 0
> +fi
> +
> +RT_PATCH_VERSION=$(sed -rn 's/^-rt([0-9]+)$/\1/p' "${VERSIONFILE}")
> +
> +if [ "x${RT_PATCH_VERSION}" = "x" ]; then
> + echo 0
> + exit 0
> +fi
> +
> +echo ${RT_PATCH_VERSION}
> --
> 2.7.0
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list