[lttng-dev] [PATCH lttng-modules 1/2] Add SUSE Linux Enterprise kernel version tests

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Dec 7 01:37:37 UTC 2016


----- On Dec 6, 2016, at 6:05 PM, Michael Jeanson mjeanson at efficios.com wrote:

> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
> Makefile.ABI.workarounds |  6 ++++++
> abi-sle-version.sh       | 43 +++++++++++++++++++++++++++++++++++++++++++
> lttng-kernel-version.h   | 19 +++++++++++++++++++
> 3 files changed, 68 insertions(+)
> create mode 100755 abi-sle-version.sh
> 
> diff --git a/Makefile.ABI.workarounds b/Makefile.ABI.workarounds
> index 470bdef..c3717f8 100644
> --- a/Makefile.ABI.workarounds
> +++ b/Makefile.ABI.workarounds
> @@ -16,6 +16,12 @@ ifneq ($(RHEL_API_VERSION), 0)
>   ccflags-y += -DRHEL_API_VERSION=$(RHEL_API_VERSION)
> endif
> 
> +SLE_API_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/abi-sle-version.sh $(CURDIR))
> +
> +ifneq ($(SLE_API_VERSION), 0)
> +  ccflags-y += -DSLE_API_VERSION=$(SLE_API_VERSION)
> +endif
> +
> RT_PATCH_VERSION:=$(shell $(TOP_LTTNG_MODULES_DIR)/rt-patch-version.sh
> $(CURDIR))
> 
> ifneq ($(RT_PATCH_VERSION), 0)
> diff --git a/abi-sle-version.sh b/abi-sle-version.sh
> new file mode 100755
> index 0000000..41fd635
> --- /dev/null
> +++ b/abi-sle-version.sh
> @@ -0,0 +1,43 @@
> +#!/bin/sh
> +
> +# First argument is the path to the kernel headers.
> +KPATH=$1
> +
> +if [ ! -f ${KPATH}/include/generated/autoconf.h ]; then
> +	echo 0
> +	exit 0
> +fi
> +
> +# Check if we are building against a Suse kernel
> +SUSE_KERNEL=$(sed -rn 's/^#define CONFIG_SUSE_KERNEL (.*)/\1/p'
> ${KPATH}/include/generated/autoconf.h)
> +
> +if [ "$SUSE_KERNEL" != "1" ]; then
> +	echo 0
> +	exit 0
> +fi
> +
> +
> +if [ ! -f ${KPATH}/include/generated/utsrelease.h ]; then
> +	echo 0
> +	exit 0
> +fi
> +
> +#define UTS_RELEASE "4.4.21-81-default"

Not sure why we need to define this specific version here ?

Thanks,

Mathieu

> +SLE_RELEASE=$(sed -rn 's/^#define UTS_RELEASE "(.*)-([0-9\.]+)-(.*)"/\2/p'
> ${KPATH}/include/generated/utsrelease.h)
> +
> +SLE_RELEASE_MAJOR=$(echo ${SLE_RELEASE} | sed -rn 's/^([0-9]+)(.*)$/\1/p')
> +SLE_RELEASE_MINOR=$(echo ${SLE_RELEASE} | sed -rn
> 's/^([0-9]+)\.([0-9]+)(.*)$/\2/p')
> +SLE_RELEASE_PATCH=$(echo ${SLE_RELEASE} | sed -rn
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)(.*)$/\3/p')
> +
> +# Minor and patch versions can be omitted
> +if [ "x$SLE_RELEASE_MINOR" = "x" ]; then
> +	SLE_RELEASE_MINOR=0
> +fi
> +if [ "x$SLE_RELEASE_PATCH" = "x" ]; then
> +	SLE_RELEASE_PATCH=0
> +fi
> +
> +# Combine all update numbers into one
> +SLE_API_VERSION=$((SLE_RELEASE_MAJOR * 10000 + SLE_RELEASE_MINOR * 100 +
> SLE_RELEASE_PATCH))
> +
> +echo ${SLE_API_VERSION}
> diff --git a/lttng-kernel-version.h b/lttng-kernel-version.h
> index d9a5f13..387aa0a 100644
> --- a/lttng-kernel-version.h
> +++ b/lttng-kernel-version.h
> @@ -96,6 +96,25 @@
> 		LTTNG_RHEL_VERSION_CODE < \
> 		LTTNG_RHEL_KERNEL_VERSION(a_high, b_high, c_high, d_high, e_high, f_high))
> 
> +/* SUSE Linux enterprise */
> +
> +#define LTTNG_SLE_KERNEL_VERSION(a, b, c, d, e, f) \
> +	(((((a) << 16) + ((b) << 8) + (c)) * 10000000ULL) + ((d) * 10000) + ((e) *
> 100) + (f))
> +
> +#ifdef SLE_API_VERSION
> +#define LTTNG_SLE_VERSION_CODE \
> +	((LINUX_VERSION_CODE * 10000000ULL) + SLE_API_VERSION)
> +#else
> +#define LTTNG_SLE_VERSION_CODE 	0
> +#endif
> +
> +#define LTTNG_SLE_KERNEL_RANGE(a_low, b_low, c_low, d_low, e_low, f_low, \
> +		a_high, b_high, c_high, d_high, e_high, f_high) \
> +	(LTTNG_SLE_VERSION_CODE >= \
> +		LTTNG_SLE_KERNEL_VERSION(a_low, b_low, c_low, d_low, e_low, f_low) && \
> +		LTTNG_SLE_VERSION_CODE < \
> +		LTTNG_SLE_KERNEL_VERSION(a_high, b_high, c_high, d_high, e_high, f_high))
> +
> /* RT patch */
> 
> #define LTTNG_RT_KERNEL_VERSION(a, b, c, d) \
> --
> 2.7.4

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list