Whamcloud - gitweb
LU-15652 build: On Debian detect -common kernel headers 36/46836/6
authorShaun Tancheff <shaun.tancheff@hpe.com>
Wed, 25 May 2022 16:46:50 +0000 (23:46 +0700)
committerOleg Drokin <green@whamcloud.com>
Wed, 6 Jul 2022 03:34:34 +0000 (03:34 +0000)
Check for a matching /usr/src/linux-headers-<ver>-common/
and update the --with-linux argument accordingly.

Also move LC_GLIBC_SUPPORT_COPY_FILE_RANGE outside
of utils as this also breaks the dkms build on Debian
with 'static' follows 'non static' declairation of
copy_file_range.

Fixes: e6d1968fbbad ("LU-13903 build: Move GLIBC/openssl checks to where needed")
HPE-bug-id: LUS-10826
Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I6e4f0b27eba6c5b07cda14f064e57aa9c93ae3cc
Reviewed-on: https://review.whamcloud.com/46836
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
config/lustre-build-linux.m4
config/lustre-build.m4

index e88c54b..7a4c98d 100644 (file)
@@ -262,7 +262,6 @@ AC_ARG_WITH([linux],
        DEFAULT_LINUX_OBJ=$LINUX],
        [LINUX=$DEFAULT_LINUX])
 AC_MSG_RESULT([$LINUX])
-AC_SUBST(LINUX)
 
 # -------- check for linux --------
 LB_CHECK_FILE([$LINUX], [],
@@ -276,8 +275,21 @@ AC_ARG_WITH([linux-obj],
        [LB_ARG_CANON_PATH([linux-obj], [LINUX_OBJ])],
        [LINUX_OBJ=$DEFAULT_LINUX_OBJ])
 AC_MSG_RESULT([$LINUX_OBJ])
-AC_SUBST(LINUX_OBJ)
 
+## -------- with linux should point to <kernel>-common on Debian
+AS_IF([test ${LINUX} == ${LINUX_OBJ} -a ${LINUX} == $(realpath ${LINUX})],[
+       this_arch=$(realpath ${LINUX} | sed 's/-/\n/g' | tail -1)
+       linux_headers_common=$(realpath ${LINUX}|sed "s/-${this_arch}\$/-common/g")
+       AS_IF([test "${this_arch}" != common],[
+               _cah="${linux_headers_common}/include/linux/compiler_attributes.h"
+               _cgh="${linux_headers_common}/include/linux/compiler-gcc.h"
+               AS_IF([test -f "${_cah}" -o -f "${_cgh}"],[
+                       AC_MSG_WARN([Setting LINUX to ${linux_headers_common} was ${LINUX}])
+                       LINUX=${linux_headers_common}])
+               ])
+       ])
+AC_SUBST(LINUX)
+AC_SUBST(LINUX_OBJ)
 # -------- check for .config --------
 AC_ARG_WITH([linux-config],
        [AS_HELP_STRING([--with-linux-config=path],
index 2f2ab2c..7a764fc 100644 (file)
@@ -676,12 +676,12 @@ LC_CONFIG_CLIENT
 LB_CONFIG_MPITESTS
 LB_CONFIG_SERVERS
 LC_CONFIG_CRYPTO
+LC_GLIBC_SUPPORT_COPY_FILE_RANGE
 
 # Tests depends from utils (multiop from liblustreapi)
 AS_IF([test "x$enable_utils" = xno], [enable_tests="no"])
 
 AS_IF([test "x$enable_utils" = xyes], [
-       LC_GLIBC_SUPPORT_COPY_FILE_RANGE
        LC_OPENSSL_SSK
        LC_OPENSSL_GETSEPOL
        LC_FID2PATH_ANON_UNION