public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Fix some oe-core issues using meta-mingw
@ 2016-01-11 21:12 Mark Hatle
  2016-01-11 21:12 ` [PATCH 1/2] tcmode-default.inc: Fix preferred provider nativesdk-sdk_prefix-libc-initial Mark Hatle
  2016-01-11 21:12 ` [PATCH 2/2 [RFC]] image.bbclass: Unconditional includes of populate_sdk_ext fails Mark Hatle
  0 siblings, 2 replies; 4+ messages in thread
From: Mark Hatle @ 2016-01-11 21:12 UTC (permalink / raw)
  To: openembedded-core

There are two patches here.. 1/2 seems like it's pretty straight forward and
should be able to be used as is.  = to ?=

2/2 however is more of an RFC.  I discovered today that the always on
native of the populate_sdk_ext has broken non-Linux SDKMACHINEs.  I put
together something that only enabled populate_sdk_ext when Linux is the
SDKMACHINE, but I'm guessing there is probably a better way... looking
forward to comments.

Mark Hatle (2):
  tcmode-default.inc: Fix preferred provider
    nativesdk-sdk_prefix-libc-initial
  image.bbclass: Unconditional includes of populate_sdk_ext fails

 meta/classes/image.bbclass                  | 5 ++++-
 meta/conf/distro/include/tcmode-default.inc | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

-- 
1.9.3



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] tcmode-default.inc: Fix preferred provider nativesdk-sdk_prefix-libc-initial
  2016-01-11 21:12 [PATCH 0/2] Fix some oe-core issues using meta-mingw Mark Hatle
@ 2016-01-11 21:12 ` Mark Hatle
  2016-01-11 21:12 ` [PATCH 2/2 [RFC]] image.bbclass: Unconditional includes of populate_sdk_ext fails Mark Hatle
  1 sibling, 0 replies; 4+ messages in thread
From: Mark Hatle @ 2016-01-11 21:12 UTC (permalink / raw)
  To: openembedded-core

Similar to the libc-for-gcc preferred provider, we also need a libc-initial
version.  Layers such as meta-mingw need the ability to override these
values in order to generate an SDK that works on non Linux environments.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 meta/conf/distro/include/tcmode-default.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 16507c4..5fc99875 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -19,7 +19,7 @@ PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = "nativesdk-gcc-runtime"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "${TCLIBC}"
 PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc ?= "nativesdk-glibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "${TCLIBC}-initial"
-PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial = "nativesdk-glibc-initial"
+PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial ?= "nativesdk-glibc-initial"
 PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
 
 GCCVERSION ?= "5.%"
-- 
1.9.3



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2 [RFC]] image.bbclass: Unconditional includes of populate_sdk_ext fails
  2016-01-11 21:12 [PATCH 0/2] Fix some oe-core issues using meta-mingw Mark Hatle
  2016-01-11 21:12 ` [PATCH 1/2] tcmode-default.inc: Fix preferred provider nativesdk-sdk_prefix-libc-initial Mark Hatle
@ 2016-01-11 21:12 ` Mark Hatle
  2016-01-12  2:54   ` Paul Eggleton
  1 sibling, 1 reply; 4+ messages in thread
From: Mark Hatle @ 2016-01-11 21:12 UTC (permalink / raw)
  To: openembedded-core

populate_sdk_ext requires uninative support, which is only available on
glibc based SDKMACHINES.  For instance, when using mingw32 a dependency
error will occur:

NOTE: Runtime target 'nativesdk-glibc' is unbuildable, removing...
ERROR: Required build target 'core-image-minimal' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-minimal', 'uninative-tarball', 'nativesdk-glibc']

This is dues to populate_sdk_ext.bbclass having:
do_populate_sdk_ext[depends] += "buildtools-tarball:do_populate_sdk uninative-tarball:do_populate_sdk"
addtask populate_sdk_ext

Since bitbake can't determine for dependency resolution if the task is going
to be run yet, it blows up and says it simply can't be resolved.

Workaround this problem by making the inherit conditional on the SDK_OS
containing 'linux'.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 meta/classes/image.bbclass | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index e3769b4..d37995a 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -1,6 +1,9 @@
 inherit rootfs_${IMAGE_PKGTYPE}
 
-inherit populate_sdk_ext
+# Only Linux SDKs support populate_sdk_ext, fall back to populate_sdk
+# in the non-Linux SDK_OS case, such as mingw32
+SDKEXTCLASS ?= "${@['populate_sdk', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS", True)]}"
+inherit ${SDKEXTCLASS}
 
 TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
 TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY}"
-- 
1.9.3



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2 [RFC]] image.bbclass: Unconditional includes of populate_sdk_ext fails
  2016-01-11 21:12 ` [PATCH 2/2 [RFC]] image.bbclass: Unconditional includes of populate_sdk_ext fails Mark Hatle
@ 2016-01-12  2:54   ` Paul Eggleton
  0 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-01-12  2:54 UTC (permalink / raw)
  To: openembedded-core

On Mon, 11 Jan 2016 15:12:05 Mark Hatle wrote:
> populate_sdk_ext requires uninative support, which is only available on
> glibc based SDKMACHINES.  For instance, when using mingw32 a dependency
> error will occur:
> 
> NOTE: Runtime target 'nativesdk-glibc' is unbuildable, removing...
> ERROR: Required build target 'core-image-minimal' has no buildable
> providers. Missing or unbuildable dependency chain was:
> ['core-image-minimal', 'uninative-tarball', 'nativesdk-glibc']
> 
> This is dues to populate_sdk_ext.bbclass having:
> do_populate_sdk_ext[depends] += "buildtools-tarball:do_populate_sdk
> uninative-tarball:do_populate_sdk" addtask populate_sdk_ext
> 
> Since bitbake can't determine for dependency resolution if the task is going
> to be run yet, it blows up and says it simply can't be resolved.
> 
> Workaround this problem by making the inherit conditional on the SDK_OS
> containing 'linux'.
> 
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> ---
>  meta/classes/image.bbclass | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index e3769b4..d37995a 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -1,6 +1,9 @@
>  inherit rootfs_${IMAGE_PKGTYPE}
> 
> -inherit populate_sdk_ext
> +# Only Linux SDKs support populate_sdk_ext, fall back to populate_sdk
> +# in the non-Linux SDK_OS case, such as mingw32
> +SDKEXTCLASS ?= "${@['populate_sdk', 'populate_sdk_ext']['linux' in
> d.getVar("SDK_OS", True)]}" +inherit ${SDKEXTCLASS}
> 
>  TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
>  TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY}"

Looks OK to me, FWIW.

Acked-by: Paul Eggleton <paul.eggleton@linux.intel.com>

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-01-12  2:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-11 21:12 [PATCH 0/2] Fix some oe-core issues using meta-mingw Mark Hatle
2016-01-11 21:12 ` [PATCH 1/2] tcmode-default.inc: Fix preferred provider nativesdk-sdk_prefix-libc-initial Mark Hatle
2016-01-11 21:12 ` [PATCH 2/2 [RFC]] image.bbclass: Unconditional includes of populate_sdk_ext fails Mark Hatle
2016-01-12  2:54   ` Paul Eggleton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox