[OE-core] [PATCH 1/2] populate_sdk_base: only depend on nativesdk-glibc-locale when SDK_OS is not mingw32

Richard Purdie richard.purdie at linuxfoundation.org
Fri Aug 17 21:30:19 UTC 2018


On Fri, 2018-08-17 at 01:54 -0700, Zhixiong Chi wrote:
> When we add the nativesdk-glibc-locale dependence for libc-glibc, if
> the SDK_OS
> is mingw32, it will broken the building with the following error:
> > NOTE: Resolving any missing task queue dependencies
> > ERROR: Nothing RPROVIDES 'nativesdk-glibc' (but
> > virtual:nativesdk:layers/oe-core/meta/recipes-core/glibc/glibc-
> > locale_2.24.bb
> > RDEPENDS on or otherwise requires it)
> > ERROR: nativesdk-glibc was skipped:
> > PREFERRED_PROVIDER_virtual/nativesdk-libc set to nativesdk-mingw-
> > w64-runtime, not nativesdk-glibc
> > NOTE: Runtime target 'nativesdk-glibc' is unbuildable, removing...
> > Missing or unbuildable dependency chain was: ['nativesdk-glibc']
> > ERROR: Required build target 'meta-toolchain' has no buildable
> > providers.
> > Missing or unbuildable dependency chain was: ['meta-toolchain',
> > 'nativesdk-glibc-locale', 'nativesdk-glibc']
> 
> mingw32 SDK_OS doesn't need to depend on nativesdk-glibc-locale.
> 
> Signed-off-by: Zhixiong Chi <zhixiong.chi at windriver.com>
> ---
>  meta/classes/populate_sdk_base.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
> index c456c52866..65c27b0077 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -48,7 +48,7 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
>  SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
>  SDK_DEPENDS = "virtual/fakeroot-native xz-native cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
>  PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:"
> -SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale"
> +SDK_DEPENDS_append_libc-glibc = " ${@bb.utils.contains('SDK_OS', 'mingw32', '', 'nativesdk-glibc-locale', d)}"
>  
>  # We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it
>  # could be set to the MACHINE_ARCH

I appreciate this fixes a specific problem but this code is wrong
anyway, libc-glibc is a target override and we're talking about the sdk
 here. To illustrate, if a target image was musl based but the sdk
glibc based, this code wouldn't work.

Could we therefore correct this to correctly determine which libc is
being used in the SDK? If we're going to fix it, lets fix it
properly...

Cheers,

Richard







More information about the Openembedded-core mailing list