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]

Signed-off-by: Ed Bartosh <ed.bart...@linux.intel.com>
---
 meta/classes/populate_sdk_base.bbclass | 1 +
 meta/files/toolchain-shar-extract.sh   | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/meta/classes/populate_sdk_base.bbclass 
b/meta/classes/populate_sdk_base.bbclass
index 5ad08c6..588a3cb 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -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
diff --git a/meta/files/toolchain-shar-extract.sh 
b/meta/files/toolchain-shar-extract.sh
index 9295ddc..3f54c96 100644
--- a/meta/files/toolchain-shar-extract.sh
+++ b/meta/files/toolchain-shar-extract.sh
@@ -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
-- 
2.1.4

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to