move mcoverlayfs kernel version check from mcexec.c to configure
While we are here: - fix uname -r (single quote?!) - add compat for rhel8 (el kernel and version is 4.18) - also remove linux version check in mcreboot.sh, trust configure check Change-Id: I14726d4374b0dfd941640096044ea1d5d88bfcb8
This commit is contained in:
committed by
Balazs Gerofi
parent
98aa633856
commit
c585a37440
@ -137,32 +137,32 @@ error_exit() {
|
|||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
mcos_sys_mounted)
|
mcos_sys_mounted)
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
umount /tmp/mcos/mcos0_sys
|
umount /tmp/mcos/mcos0_sys
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
mcos_proc_mounted)
|
mcos_proc_mounted)
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
umount /tmp/mcos/mcos0_proc
|
umount /tmp/mcos/mcos0_proc
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
mcoverlayfs_loaded)
|
mcoverlayfs_loaded)
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
rmmod mcoverlay 2>/dev/null
|
rmmod mcoverlay 2>/dev/null
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
linux_proc_bind_mounted)
|
linux_proc_bind_mounted)
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
umount /tmp/mcos/linux_proc
|
umount /tmp/mcos/linux_proc
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
tmp_mcos_mounted)
|
tmp_mcos_mounted)
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
umount /tmp/mcos
|
umount /tmp/mcos
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
tmp_mcos_created)
|
tmp_mcos_created)
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
rm -rf /tmp/mcos
|
rm -rf /tmp/mcos
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
@ -239,26 +239,6 @@ if [ "${release}" == "${rhel_release}" ]; then
|
|||||||
rhel_release="";
|
rhel_release="";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
enable_mcoverlay="no"
|
|
||||||
|
|
||||||
if [ "${ENABLE_MCOVERLAYFS}" == "yes" ]; then
|
|
||||||
if [ "${rhel_release}" == "" ]; then
|
|
||||||
if [ ${linux_version_code} -ge 262144 -a ${linux_version_code} -lt 262400 ]; then
|
|
||||||
enable_mcoverlay="yes"
|
|
||||||
fi
|
|
||||||
if [ ${linux_version_code} -ge 263680 -a ${linux_version_code} -lt 263936 ]; then
|
|
||||||
enable_mcoverlay="yes"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ ${linux_version_code} -eq 199168 -a ${rhel_release} -ge 327 -a ${rhel_release} -le 862 ]; then
|
|
||||||
enable_mcoverlay="yes"
|
|
||||||
fi
|
|
||||||
if [ ${linux_version_code} -ge 262144 -a ${linux_version_code} -lt 262400 ]; then
|
|
||||||
enable_mcoverlay="yes"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Figure out CPUs if not requested by user
|
# Figure out CPUs if not requested by user
|
||||||
if [ "$cpus" == "" ]; then
|
if [ "$cpus" == "" ]; then
|
||||||
# Get the number of CPUs on NUMA node 0
|
# Get the number of CPUs on NUMA node 0
|
||||||
@ -274,7 +254,7 @@ if [ "$cpus" == "" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove mcoverlay if loaded
|
# Remove mcoverlay if loaded
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
${SBINDIR}/mcoverlay-destroy.sh
|
${SBINDIR}/mcoverlay-destroy.sh
|
||||||
ret=$?
|
ret=$?
|
||||||
if [ $ret -ne 0 ]; then
|
if [ $ret -ne 0 ]; then
|
||||||
@ -481,7 +461,7 @@ if ! chown ${chown_option} /dev/mcd* /dev/mcos*; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Overlay /proc, /sys with McKernel specific contents
|
# Overlay /proc, /sys with McKernel specific contents
|
||||||
if [ "$enable_mcoverlay" == "yes" ]; then
|
if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then
|
||||||
${SBINDIR}/mcoverlay-create.sh
|
${SBINDIR}/mcoverlay-create.sh
|
||||||
ret=$?
|
ret=$?
|
||||||
if [ $ret -ne 0 ]; then
|
if [ $ret -ne 0 ]; then
|
||||||
|
|||||||
43
configure
vendored
43
configure
vendored
@ -631,6 +631,7 @@ IHK_VERSION
|
|||||||
WITH_SYSCALL_INTERCEPT
|
WITH_SYSCALL_INTERCEPT
|
||||||
ENABLE_QLMPI
|
ENABLE_QLMPI
|
||||||
ENABLE_RUSAGE
|
ENABLE_RUSAGE
|
||||||
|
MCOVERLAYFS_MODULE
|
||||||
ENABLE_MCOVERLAYFS
|
ENABLE_MCOVERLAYFS
|
||||||
LDFLAGS_SYSCALL_INTERCEPT
|
LDFLAGS_SYSCALL_INTERCEPT
|
||||||
CPPFLAGS_SYSCALL_INTERCEPT
|
CPPFLAGS_SYSCALL_INTERCEPT
|
||||||
@ -3804,7 +3805,7 @@ fi
|
|||||||
|
|
||||||
case "X$WITH_UNAME_R" in
|
case "X$WITH_UNAME_R" in
|
||||||
Xyes | Xno | X)
|
Xyes | Xno | X)
|
||||||
WITH_UNAME_R='`uname -r`'
|
WITH_UNAME_R="`uname -r`"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -4750,9 +4751,44 @@ $as_echo "#define ENABLE_MCOVERLAYFS 1" >>confdefs.h
|
|||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: mcoverlayfs is enabled" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: mcoverlayfs is enabled" >&5
|
||||||
$as_echo "$as_me: mcoverlayfs is enabled" >&6;}
|
$as_echo "$as_me: mcoverlayfs is enabled" >&6;}
|
||||||
|
|
||||||
|
IFS=. read LINUX_VERSION_MAJOR LINUX_VERSION_MINOR LINUX_VERSION_PATCH _ <<EOF
|
||||||
|
${UNAME_R%%-*}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
LINUX_VERSION_CODE=$(( LINUX_VERSION_MAJOR * 65536 + LINUX_VERSION_MINOR * 256 + LINUX_VERSION_PATCH ))
|
||||||
|
# rhel
|
||||||
|
if test x"${UNAME_R}" != x"${UNAME_R//.el[0-9]}" ; then
|
||||||
|
RHEL_RELEASE="${UNAME_R#*-}"
|
||||||
|
RHEL_RELEASE="${RHEL_RELEASE%%.*}"
|
||||||
|
case "$LINUX_VERSION_CODE" in
|
||||||
|
199168) # 3.10.0
|
||||||
|
MCOVERLAYFS_MODULE=linux-3.10.0-327.36.1.el7;;
|
||||||
|
262144) # 4.0.0
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.0.9;;
|
||||||
|
266752) # 4.18.0
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.18.14;;
|
||||||
|
*)
|
||||||
|
as_fn_error $? "Your RHEL/centos version has no known mcoverlayfs module" "$LINENO" 5;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
case "1" in
|
||||||
|
# 4.0.0-4.1.0
|
||||||
|
$((LINUX_VERSION_CODE >= 262144 && LINUX_VERSION_CODE < 262400)))
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.0.9;;
|
||||||
|
# 4.6.0-4.7.0
|
||||||
|
$((LINUX_VERSION_CODE >= 263680 && LINUX_VERSION_CODE < 263936)))
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.6.7;;
|
||||||
|
# 4.18.0-4.20.0
|
||||||
|
$((LINUX_VERSION_CODE >= 266752 && LINUX_VERSION_CODE < 267264)))
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.18.14;;
|
||||||
|
*)
|
||||||
|
as_fn_error $? "Your kernel version has no known mcoverlayfs module" "$LINENO" 5;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: mcoverlayfs is disabled" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mcoverlayfs is disabled. You will not be able to run anything." >&5
|
||||||
$as_echo "$as_me: mcoverlayfs is disabled" >&6;}
|
$as_echo "$as_me: WARNING: mcoverlayfs is disabled. You will not be able to run anything." >&2;}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$ENABLE_QLMPI" = "xyes" ; then
|
if test "x$ENABLE_QLMPI" = "xyes" ; then
|
||||||
@ -4892,6 +4928,7 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ac_config_headers="$ac_config_headers config.h"
|
ac_config_headers="$ac_config_headers config.h"
|
||||||
|
|||||||
40
configure.ac
40
configure.ac
@ -220,7 +220,7 @@ AC_ARG_WITH([uname_r],
|
|||||||
|
|
||||||
case "X$WITH_UNAME_R" in
|
case "X$WITH_UNAME_R" in
|
||||||
Xyes | Xno | X)
|
Xyes | Xno | X)
|
||||||
WITH_UNAME_R='`uname -r`'
|
WITH_UNAME_R="`uname -r`"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -450,8 +450,43 @@ fi
|
|||||||
if test "x$ENABLE_MCOVERLAYFS" = "xyes" ; then
|
if test "x$ENABLE_MCOVERLAYFS" = "xyes" ; then
|
||||||
AC_DEFINE([ENABLE_MCOVERLAYFS],[1],[whether mcoverlayfs is enabled])
|
AC_DEFINE([ENABLE_MCOVERLAYFS],[1],[whether mcoverlayfs is enabled])
|
||||||
AC_MSG_NOTICE([mcoverlayfs is enabled])
|
AC_MSG_NOTICE([mcoverlayfs is enabled])
|
||||||
|
|
||||||
|
IFS=. read LINUX_VERSION_MAJOR LINUX_VERSION_MINOR LINUX_VERSION_PATCH _ <<EOF
|
||||||
|
${UNAME_R%%-*}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
LINUX_VERSION_CODE=$(( LINUX_VERSION_MAJOR * 65536 + LINUX_VERSION_MINOR * 256 + LINUX_VERSION_PATCH ))
|
||||||
|
# rhel
|
||||||
|
if test x"${UNAME_R}" != x"${UNAME_R//.el[[0-9]]}" ; then
|
||||||
|
RHEL_RELEASE="${UNAME_R#*-}"
|
||||||
|
RHEL_RELEASE="${RHEL_RELEASE%%.*}"
|
||||||
|
case "$LINUX_VERSION_CODE" in
|
||||||
|
199168) # 3.10.0
|
||||||
|
MCOVERLAYFS_MODULE=linux-3.10.0-327.36.1.el7;;
|
||||||
|
262144) # 4.0.0
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.0.9;;
|
||||||
|
266752) # 4.18.0
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.18.14;;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR([Your RHEL/centos version has no known mcoverlayfs module]);;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
case "1" in
|
||||||
|
# 4.0.0-4.1.0
|
||||||
|
$((LINUX_VERSION_CODE >= 262144 && LINUX_VERSION_CODE < 262400)))
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.0.9;;
|
||||||
|
# 4.6.0-4.7.0
|
||||||
|
$((LINUX_VERSION_CODE >= 263680 && LINUX_VERSION_CODE < 263936)))
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.6.7;;
|
||||||
|
# 4.18.0-4.20.0
|
||||||
|
$((LINUX_VERSION_CODE >= 266752 && LINUX_VERSION_CODE < 267264)))
|
||||||
|
MCOVERLAYFS_MODULE=linux-4.18.14;;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR([Your kernel version has no known mcoverlayfs module]);;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
AC_MSG_NOTICE([mcoverlayfs is disabled])
|
AC_MSG_WARN([mcoverlayfs is disabled. You will not be able to run anything.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$ENABLE_QLMPI" = "xyes" ; then
|
if test "x$ENABLE_QLMPI" = "xyes" ; then
|
||||||
@ -536,6 +571,7 @@ AC_SUBST(CFLAGS)
|
|||||||
AC_SUBST(CPPFLAGS_SYSCALL_INTERCEPT)
|
AC_SUBST(CPPFLAGS_SYSCALL_INTERCEPT)
|
||||||
AC_SUBST(LDFLAGS_SYSCALL_INTERCEPT)
|
AC_SUBST(LDFLAGS_SYSCALL_INTERCEPT)
|
||||||
AC_SUBST(ENABLE_MCOVERLAYFS)
|
AC_SUBST(ENABLE_MCOVERLAYFS)
|
||||||
|
AC_SUBST(MCOVERLAYFS_MODULE)
|
||||||
AC_SUBST(ENABLE_RUSAGE)
|
AC_SUBST(ENABLE_RUSAGE)
|
||||||
AC_SUBST(ENABLE_QLMPI)
|
AC_SUBST(ENABLE_QLMPI)
|
||||||
AC_SUBST(WITH_SYSCALL_INTERCEPT)
|
AC_SUBST(WITH_SYSCALL_INTERCEPT)
|
||||||
|
|||||||
@ -1,43 +1,10 @@
|
|||||||
ENABLE_MCOVERLAYFS=@ENABLE_MCOVERLAYFS@
|
ENABLE_MCOVERLAYFS=@ENABLE_MCOVERLAYFS@
|
||||||
RELEASE=@UNAME_R@
|
MCOVERLAYFS_MODULE=@MCOVERLAYFS_MODULE@
|
||||||
|
|
||||||
MAJOR=$(shell echo ${RELEASE} | sed -e 's/^\([0-9]*\).*/\1/')
|
|
||||||
MINOR=$(shell echo ${RELEASE} | sed -e 's/^[0-9]*.\([0-9]*\).*/\1/')
|
|
||||||
PATCH=$(shell echo ${RELEASE} | sed -e 's/^[0-9]*.[0-9]*.\([0-9]*\).*/\1/')
|
|
||||||
LINUX_VERSION_CODE=$(shell expr \( ${MAJOR} \* 65536 \) + \( ${MINOR} \* 256 \) + ${PATCH})
|
|
||||||
RHEL_RELEASE_TMP=$(shell echo ${RELEASE} | sed -e 's/^[0-9]*.[0-9]*.[0-9]*-\([0-9]*\).*/\1/')
|
|
||||||
RHEL_RELEASE=$(shell if [ "${RELEASE}" == "${RHEL_RELEASE_TMP}" ]; then echo ""; else echo ${RHEL_RELEASE_TMP}; fi)
|
|
||||||
BUILD_MODULE_TMP=$(shell if [ "${RHEL_RELEASE}" == "" ]; then echo "org"; else echo "rhel"; fi)
|
|
||||||
BUILD_MODULE=none
|
|
||||||
#$(info "LINUX_VERSION_CODE: ${LINUX_VERSION_CODE}, RHEL_RELEASE: ${RHEL_RELEASE}")
|
|
||||||
ifeq ($(ENABLE_MCOVERLAYFS),yes)
|
|
||||||
ifeq ($(BUILD_MODULE_TMP),org)
|
|
||||||
ifeq ($(BUILD_MODULE),none)
|
|
||||||
BUILD_MODULE=$(shell if [ ${LINUX_VERSION_CODE} -ge 262144 -a ${LINUX_VERSION_CODE} -lt 262400 ]; then echo "linux-4.0.9"; else echo "none"; fi)
|
|
||||||
endif
|
|
||||||
ifeq ($(BUILD_MODULE),none)
|
|
||||||
BUILD_MODULE=$(shell if [ ${LINUX_VERSION_CODE} -ge 263680 -a ${LINUX_VERSION_CODE} -lt 263936 ]; then echo "linux-4.6.7"; else echo "none"; fi)
|
|
||||||
endif
|
|
||||||
ifeq ($(BUILD_MODULE),none)
|
|
||||||
BUILD_MODULE=$(shell if [ ${LINUX_VERSION_CODE} -ge 266752 ]; then echo "linux-4.18.14"; else echo "none"; fi)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(BUILD_MODULE_TMP),rhel)
|
|
||||||
ifeq ($(BUILD_MODULE),none)
|
|
||||||
BUILD_MODULE=$(shell if [ ${LINUX_VERSION_CODE} -eq 199168 -a ${RHEL_RELEASE} -ge 327 -a ${RHEL_RELEASE} -le 862 ]; then echo "linux-3.10.0-327.36.1.el7"; else echo "none"; fi)
|
|
||||||
endif
|
|
||||||
ifeq ($(BUILD_MODULE),none)
|
|
||||||
BUILD_MODULE=$(shell if [ ${LINUX_VERSION_CODE} -ge 262144 -a ${LINUX_VERSION_CODE} -lt 262400 ]; then echo "linux-4.0.9"; else echo "none"; fi)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
.PHONY: clean install modules
|
.PHONY: clean install modules
|
||||||
|
|
||||||
modules:
|
modules:
|
||||||
ifneq ($(BUILD_MODULE),none)
|
+@(cd $(MCOVERLAYFS_MODULE) && make modules)
|
||||||
+@(cd $(BUILD_MODULE) && make modules)
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@(cd linux-3.10.0-327.36.1.el7 && make clean)
|
@(cd linux-3.10.0-327.36.1.el7 && make clean)
|
||||||
@ -46,7 +13,5 @@ clean:
|
|||||||
@(cd linux-4.18.14 && make clean)
|
@(cd linux-4.18.14 && make clean)
|
||||||
|
|
||||||
install:
|
install:
|
||||||
ifneq ($(BUILD_MODULE),none)
|
@(cd $(MCOVERLAYFS_MODULE); make install)
|
||||||
@(cd $(BUILD_MODULE); make install)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|||||||
@ -153,30 +153,6 @@ int __glob_argc = -1;
|
|||||||
char **__glob_argv = 0;
|
char **__glob_argv = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_MCOVERLAYFS
|
|
||||||
#undef ENABLE_MCOVERLAYFS
|
|
||||||
|
|
||||||
// RedHat?
|
|
||||||
#ifdef RHEL_RELEASE_CODE
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,10,0)
|
|
||||||
#define ENABLE_MCOVERLAYFS 1
|
|
||||||
#else
|
|
||||||
#error "ERROR: your Linux kernel version on RHEL is not supported"
|
|
||||||
#endif // LINUX_VERSION_CODE <= KERNEL_VERSION(3,10,0)
|
|
||||||
|
|
||||||
// Other distro?
|
|
||||||
#else
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0)
|
|
||||||
#define ENABLE_MCOVERLAYFS 1
|
|
||||||
#endif // LINUX_VERSION_CODE == 4.0
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) && LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
|
|
||||||
#define ENABLE_MCOVERLAYFS 1
|
|
||||||
#endif // LINUX_VERSION_CODE == 4.6
|
|
||||||
|
|
||||||
#endif // RHEL_RELEASE_CODE
|
|
||||||
#endif // ENABLE_MCOVERLAYFS
|
|
||||||
|
|
||||||
typedef unsigned char cc_t;
|
typedef unsigned char cc_t;
|
||||||
typedef unsigned int speed_t;
|
typedef unsigned int speed_t;
|
||||||
typedef unsigned int tcflag_t;
|
typedef unsigned int tcflag_t;
|
||||||
|
|||||||
Reference in New Issue
Block a user