From a5a309642a056366ee437e2bae6da7dfda4fb667 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 1 Mar 2014 15:53:01 +0100 Subject: toolchain/external: check kernel headers version for custom toolchain Ensure the kernel headers version used in the custom external toolchain, or the manually-specified kernel headers version, matches exactly the one selected by the user. We do not care about the patch-level, since headers are not supposed to change between patchlevels. This applies only to kernels >= 3.0, but those are actually the ones we do care about; we treat all 2.6.x kernels as being a single version, since we do not support any 2.6 kernels for packages with kernel-dependant features. Signed-off-by: "Yann E. MORIN" Cc: Thomas Petazzoni Cc: Arnout Vandecappelle Cc: Thomas De Schampheleire Signed-off-by: Thomas Petazzoni --- support/scripts/check-kernel-headers.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 support/scripts/check-kernel-headers.sh (limited to 'support/scripts') diff --git a/support/scripts/check-kernel-headers.sh b/support/scripts/check-kernel-headers.sh new file mode 100755 index 0000000000..d7fe7d4bc2 --- /dev/null +++ b/support/scripts/check-kernel-headers.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +CC="${1}" +# Make sure we have enough version components +HDR_VER="${2}.0.0" + +HDR_M="${HDR_VER%%.*}" +HDR_V="${HDR_VER#*.}" +HDR_m="${HDR_V%%.*}" + +# We do not want to account for the patch-level, since headers are +# not supposed to change for different patchlevels, so we mask it out. +# This only applies to kernels >= 3.0, but those are the only one +# we actually care about; we treat all 2.6.x kernels equally. + +exec ${CC} -E -x c -o - - >/dev/null 2>&1 <<_EOF_ +#include +#if (LINUX_VERSION_CODE & ~0xFF) != KERNEL_VERSION(${HDR_M},${HDR_m},0) +#error Incorrect kernel header version. +#endif +_EOF_ -- cgit v1.2.3