Add a check to the SDK so that it only runs on systems with kernel versions it supports.
[YOCTO #6856] Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index 8b7e9ea..e3adacb 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -126,6 +126,7 @@ EOF # substitute variables sed -i -e 's#@SDK_ARCH@#${SDK_ARCH}#g' \ -e 's#@SDKPATH@#${SDKPATH}#g' \ + -e 's#@OLDEST_KERNEL@#${OLDEST_KERNEL}#g' \ -e 's#@REAL_MULTIMACH_TARGET_SYS@#${REAL_MULTIMACH_TARGET_SYS}#g' \ -e '/@SDK_POST_INSTALL_COMMAND@/d' \ ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh diff --git a/meta/files/toolchain-shar-template.sh b/meta/files/toolchain-shar-template.sh index 4a7fbd5..64e87a2 100644 --- a/meta/files/toolchain-shar-template.sh +++ b/meta/files/toolchain-shar-template.sh @@ -3,6 +3,24 @@ INST_ARCH=$(uname -m | sed -e "s/i[3-6]86/ix86/" -e "s/x86[-_]64/x86_64/") SDK_ARCH=$(echo @SDK_ARCH@ | sed -e "s/i[3-6]86/ix86/" -e "s/x86[-_]64/x86_64/") +verlte () { + [ "$1" = "`printf "$1\n$2" | sort -V | head -n1`" ] +} + +verlt() { + [ "$1" = "$2" ] && return 1 || verlte $1 $2 +} + +verlt `uname -r` @OLDEST_KERNEL@ +if [ $? = 0 ]; then + echo "Error: The SDK needs a kernel > @OLDEST_KERNEL@" + exit 1 +fi + + +verlte `uname -r` 3.18.0 && echo "yes" || echo "no" +verlte 4.16 3.18.0 && echo "yes" || echo "no" + if [ "$INST_ARCH" != "$SDK_ARCH" ]; then # Allow for installation of ix86 SDK on x86_64 host if [ "$INST_ARCH" != x86_64 -o "$SDK_ARCH" != ix86 ]; then -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core