I realize this reply is months after the original email. But I think I found a bug with the implementation. See below inline.
On 1/25/17 7:18 AM, Ed Bartosh wrote: > 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 <[email protected]> > --- > 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' \ The return value from "oe.utils.host_gcc_version(d)" includes a leading '-'... > ${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') The item above fails with the message: line 28: gcc: command not found If the host does not have gcc on it. (I realize this is incredibly rare situation, but is valid in some cases.) It might be a good idea to catch this and put up a warning or otherwise clean up the error situation. > +SDK_GCC_VER='@SDK_GCC_VER@' > + So based on the above you will end up with: INST_GCC_VER="4.8" SDK_GCC_VER="-4.9" > 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 The comparisons above do not include the leading '-', so it would appear to me that the checked would never end up being true -- and thus the error below would never happen. Am I seeing what is happening right? If so, we'll need to get this fixed... --Mark > + 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 > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
