Patchwork sstate: Allow switching between linux and non0-linux SDK builds within the same tmpdir

login
register
mail settings
Submitter Richard Purdie
Date Aug. 2, 2014, 8:46 a.m.
Message ID <1406969187.6981.13.camel@ted>
Download mbox | patch
Permalink /patch/77139/
State Accepted
Commit 03af60ede97ecd67d17b9fdd9e958ad2b143f946
Headers show

Comments

Richard Purdie - Aug. 2, 2014, 8:46 a.m.
Currently if you try and switch between linux/darwin/mingw SDK builds in the
same TMPDIR, things break. This is due to sstate not reflecting the SDK_OS in 
the manifest names.

Since they are different, reflect this in the manifest naming and allow
this to work.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj - Aug. 2, 2014, 5:49 p.m.
On Sat, Aug 2, 2014 at 1:46 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> Currently if you try and switch between linux/darwin/mingw SDK builds in the
> same TMPDIR, things break. This is due to sstate not reflecting the SDK_OS in
> the manifest names.
>
> Since they are different, reflect this in the manifest naming and allow
> this to work.


typo in the subject otherwise good.

>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
> index c678968..2136504 100644
> --- a/meta/classes/autotools.bbclass
> +++ b/meta/classes/autotools.bbclass
> @@ -186,7 +186,7 @@ python autotools_copy_aclocals () {
>          if c.endswith("-native"):
>              manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c)
>          elif c.startswith("nativesdk-"):
> -            manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${SDK_ARCH}-%s.populate_sysroot" % c)
> +            manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${SDK_ARCH}_${SDK_OS}-%s.populate_sysroot" % c)
>          elif "-cross-" in c or "-crosssdk-" in c:
>              continue
>          else:
> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> index 9011973..0d3940e 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -45,11 +45,11 @@ python () {
>      if bb.data.inherits_class('native', d):
>          d.setVar('SSTATE_PKGARCH', d.getVar('BUILD_ARCH'))
>      elif bb.data.inherits_class('crosssdk', d):
> -        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${SDK_ARCH}"))
> +        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}"))
>      elif bb.data.inherits_class('cross', d):
>          d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${TARGET_ARCH}"))
>      elif bb.data.inherits_class('nativesdk', d):
> -        d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}"))
> +        d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${SDK_OS}"))
>      elif bb.data.inherits_class('cross-canadian', d):
>          d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${PACKAGE_ARCH}"))
>      elif bb.data.inherits_class('allarch', d) and d.getVar("PACKAGE_ARCH", True) == "all":
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
index c678968..2136504 100644
--- a/meta/classes/autotools.bbclass
+++ b/meta/classes/autotools.bbclass
@@ -186,7 +186,7 @@  python autotools_copy_aclocals () {
         if c.endswith("-native"):
             manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c)
         elif c.startswith("nativesdk-"):
-            manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${SDK_ARCH}-%s.populate_sysroot" % c)
+            manifest = d.expand("${SSTATE_MANIFESTS}/manifest-${SDK_ARCH}_${SDK_OS}-%s.populate_sysroot" % c)
         elif "-cross-" in c or "-crosssdk-" in c:
             continue
         else:
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 9011973..0d3940e 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -45,11 +45,11 @@  python () {
     if bb.data.inherits_class('native', d):
         d.setVar('SSTATE_PKGARCH', d.getVar('BUILD_ARCH'))
     elif bb.data.inherits_class('crosssdk', d):
-        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${SDK_ARCH}"))
+        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}"))
     elif bb.data.inherits_class('cross', d):
         d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${TARGET_ARCH}"))
     elif bb.data.inherits_class('nativesdk', d):
-        d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}"))
+        d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${SDK_OS}"))
     elif bb.data.inherits_class('cross-canadian', d):
         d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${PACKAGE_ARCH}"))
     elif bb.data.inherits_class('allarch', d) and d.getVar("PACKAGE_ARCH", True) == "all":