diff options
Diffstat (limited to 'm4/macros/linux_headers.m4')
-rw-r--r-- | m4/macros/linux_headers.m4 | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/m4/macros/linux_headers.m4 b/m4/macros/linux_headers.m4 new file mode 100644 index 000000000000..63c5d6a05acd --- /dev/null +++ b/m4/macros/linux_headers.m4 @@ -0,0 +1,49 @@ +dnl ###################################################################### +dnl ensure that linux kernel headers match running kernel +AC_DEFUN([AMU_LINUX_HEADERS], +[ +# test sanity of running kernel vs. kernel headers + AC_MSG_CHECKING("host headers version") + case ${host_os} in + linux ) + host_header_version="bad" + AMU_EXPAND_RUN_STRING( +[ +#include <stdio.h> +#include <linux/version.h> +], +[ +if (argc > 1) +#ifdef UTS_RELEASE + printf("%s", UTS_RELEASE); +#else +# define AMU_MA(a) ((a) >> 16) +# define AMU_MI(a) (((a) & 0xffff) >> 8) +# define AMU_PL(a) ((a) & 0xff) + printf("%d.%d.%d", AMU_MA(LINUX_VERSION_CODE), AMU_MI(LINUX_VERSION_CODE), AMU_PL(LINUX_VERSION_CODE)); +#endif +], +[ host_header_version=$value ], +[ echo + AC_MSG_ERROR([cannot find UTS_RELEASE in <linux/version.h>. + This Linux system may be misconfigured or unconfigured!]) +]) + ;; + * ) host_header_version=$host_os_version ;; + esac + AC_DEFINE_UNQUOTED(HOST_HEADER_VERSION, "$host_header_version") + AC_MSG_RESULT($host_header_version) + + case ${host_os} in + linux ) + if test "$host_os_version" != $host_header_version + then + AC_MSG_WARN([Linux kernel $host_os_version mismatch with $host_header_version headers!]) + fi + ;; +esac +dnl cache these two for debugging purposes +ac_cv_os_version=$host_os_version +ac_cv_header_version=$host_header_version +]) +dnl ====================================================================== |