I've verified this fixes the problem that I had (along with another patch that I have not yet sent.)
--Mark On 1/15/15 4:03 AM, Richard Purdie wrote: > There are some cases we want the manipulation cross-canadian performance > on TARGET_OS, there are also cases like meta-environment where we do not > want this manipulation. > > We did try and use immediate expansion to avoid this problem and it > works in the non multilib case. If we have a multilib that used an > extension, like for example: > > require conf/multilib.conf > MULTILIBS = "multilib:lib32 multilib:lib64" > DEFAULTTUNE = "mips32r2" > DEFAULTTUNE_virtclass-multilib-lib32 = "mips64-n32" > DEFAULTTUNE_virtclass-multilib-lib64 = "mips64" > > then the n32 extension case will be misconfigured. > > It turns out saving an unexpanded variable is hard. The best I could > come up with was: > > SAVEDTOS := "${@d.getVar('TARGET_OS', False).replace("{", "*")}" > > and then > > localdata.setVar("TARGET_OS", d.getVar("SAVEDOS", False).replace('*','{')) > > which is rather evil, I'd challenge someone to come up with a nicer way > of making it work though! > > Rather than the above madness, we modify cross-canadian to make the > problamtic code conditional. > > This fixes the original issue (where a linux-gnuspe target was seeing > 'linux') of > http://cgit.openembedded.org/openembedded-core/commit/?id=0038634ee6e2b6035c023a2702547f20f67c103a > but also fixes the multilib one. > > > Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> > > diff --git a/meta/classes/cross-canadian.bbclass > b/meta/classes/cross-canadian.bbclass > index fec6438..824be07 100644 > --- a/meta/classes/cross-canadian.bbclass > +++ b/meta/classes/cross-canadian.bbclass > @@ -16,6 +16,7 @@ STAGING_BINDIR_TOOLCHAIN = > "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S > # > PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}" > CANADIANEXTRAOS = "" > +MODIFYTOS = "1" > python () { > archs = d.getVar('PACKAGE_ARCHS', True).split() > sdkarchs = [] > @@ -23,6 +24,9 @@ python () { > sdkarchs.append(arch + '-${SDKPKGSUFFIX}') > d.setVar('PACKAGE_ARCHS', " ".join(sdkarchs)) > > + # Allow the following code segment to be disabled, e.g. meta-environment > + if d.getVar("MODIFYTOS", True) != "1": > + return > # PowerPC can build "linux" and "linux-gnuspe" > tarch = d.getVar("TARGET_ARCH", True) > if tarch == "powerpc": > diff --git a/meta/recipes-core/meta/meta-environment.bb > b/meta/recipes-core/meta/meta-environment.bb > index b3737bb..5d72e38 100644 > --- a/meta/recipes-core/meta/meta-environment.bb > +++ b/meta/recipes-core/meta/meta-environment.bb > @@ -6,9 +6,9 @@ PR = "r8" > > EXCLUDE_FROM_WORLD = "1" > > -ORIGOS := "${TARGET_OS}" > +MODIFYTOS = "0" > > -REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${ORIGOS}" > +REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" > > inherit toolchain-scripts > TOOLCHAIN_NEED_CONFIGSITE_CACHE += "zlib" > @@ -30,7 +30,6 @@ python do_generate_content() { > > # make sure we only use the SDKTARGETSYSROOT value from 'd' > localdata.setVar('SDKTARGETSYSROOT', d.getVar('SDKTARGETSYSROOT', True)) > - localdata.setVar('TARGET_OS', d.getVar('ORIGOS', True)) > localdata.setVar('libdir', d.getVar('target_libdir', False)) > > # Process DEFAULTTUNE > > -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core