]> code.ossystems Code Review - openembedded-core.git/commitdiff
toolchain-shar-extract: compare SDK and host gcc versions
authorEd Bartosh <ed.bartosh@linux.intel.com>
Wed, 25 Jan 2017 13:18:36 +0000 (15:18 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 5 Apr 2018 14:11:16 +0000 (15:11 +0100)
If ext sdk is built by gcc version higher than host gcc version
and host gcc version is 4.8 or 4.9 the installation is known to
fail due to the way uninative sstate package is built.

It's a known issue and we don't have a way to fix it for above
mentioned combinations of build and host gcc versions.

Detected non-installable combinations of gcc versions and
print an installation error.

[YOCTO #10881]

(From OE-Core rev: bfb9ea2604557804bd8c16adb57ccdd868a4020f)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/classes/populate_sdk_base.bbclass
meta/files/toolchain-shar-extract.sh

index 9514de679a66a7f99c9d56e491aa74d05151b4d0..1f47a7cc80cceadfca8feb7ddac6fbcd2232b6af 100644 (file)
@@ -226,6 +226,7 @@ EOF
                -e 's#@SDK_VERSION@#${SDK_VERSION}#g' \
                -e '/@SDK_PRE_INSTALL_COMMAND@/d' \
                -e '/@SDK_POST_INSTALL_COMMAND@/d' \
+               -e 's#@SDK_GCC_VER@#${@oe.utils.host_gcc_version(d)}#g' \
                ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
 
        # add execution permission
index 9295ddc8695c0d01dde859cccd4f58231e63de75..3f54c96cc04c188ccc28826dfe38670a18dd7613 100644 (file)
@@ -11,6 +11,9 @@ export PATH=`echo "$PATH" | sed -e 's/:\.//' -e 's/::/:/'`
 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/")
 
+INST_GCC_VER=$(gcc --version | sed -ne 's/.* \([0-9]\+\.[0-9]\+\)\.[0-9]\+.*/\1/p')
+SDK_GCC_VER='@SDK_GCC_VER@'
+
 verlte () {
        [  "$1" = "`printf "$1\n$2" | sort -V | head -n1`" ]
 }
@@ -112,6 +115,11 @@ fi
 # SDK_EXTENSIBLE is exposed from the SDK_PRE_INSTALL_COMMAND above
 if [ "$SDK_EXTENSIBLE" = "1" ]; then
        DEFAULT_INSTALL_DIR="@SDKEXTPATH@"
+       if [ "$INST_GCC_VER" = '4.8' -a "$SDK_GCC_VER" = '4.9' ] || [ "$INST_GCC_VER" = '4.8' -a "$SDK_GCC_VER" = '' ] || \
+               [ "$INST_GCC_VER" = '4.9' -a "$SDK_GCC_VER" = '' ]; then
+               echo "Error: Incompatible SDK installer! Your host gcc version is $INST_GCC_VER and this SDK was built by gcc higher version."
+               exit 1
+       fi
 fi
 
 if [ "$target_sdk_dir" = "" ]; then