From: Chen Qi <[email protected]> This patch adjusts Richard's patch a little bit: https://lists.openembedded.org/g/openembedded-core/message/209927
The adjustments mainly includes: 1) Use bb.event.RecipeTaskPreProcess to do the replacement. 2) Do replacements for every task's "[depends]". 3) Use "virtual/nativesdk-cross-" instead of "virtual/cross-sdk-". Signed-off-by: Chen Qi <[email protected]> --- meta/classes-global/base.bbclass | 28 ++++++++++++++++++- meta/classes-global/staging.bbclass | 2 +- meta/classes/multilib_global.bbclass | 6 ++++ .../conf/distro/include/default-providers.inc | 1 + meta/conf/distro/include/tcmode-default.inc | 10 +++---- .../binutils/binutils-cross-canadian.inc | 2 +- .../binutils/binutils-cross.inc | 1 - .../binutils/binutils-crosssdk_2.43.1.bb | 2 -- .../gcc/gcc-cross-canadian.inc | 2 +- meta/recipes-devtools/gcc/gcc-cross.inc | 1 - meta/recipes-devtools/gcc/gcc-crosssdk.inc | 4 +-- meta/recipes-devtools/gcc/gcc-runtime.inc | 2 +- .../gdb/gdb-cross-canadian.inc | 2 +- .../recipes-devtools/go/go-cross-canadian.inc | 2 +- meta/recipes-devtools/go/go-crosssdk.inc | 2 +- .../rust/rust-cross-canadian.inc | 2 +- 16 files changed, 49 insertions(+), 20 deletions(-) diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index dbbf6cef8c..c174383f05 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -267,10 +267,36 @@ def buildcfg_neededvars(d): bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) addhandler base_eventhandler -base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed" +base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipeTaskPreProcess bb.event.RecipeParsed" python base_eventhandler() { import bb.runqueue + if isinstance(e, bb.event.RecipeTaskPreProcess): + # remapping virtual/xxx + pn = d.getVar("PN") + virtprovs = (d.getVar("RECIPE_VIRTUAL_PROVIDERS") or "").split() + depends = (d.getVar("DEPENDS") or "").split() + newdeps = [] + for dep in depends: + if dep in virtprovs: + newdep = d.getVar("PREFERRED_PROVIDER_" + dep) + if not newdep: + bb.fatal("PREFERRED_PROVIDER_%s not set" % dep) + else: + newdep = dep + newdeps.append(newdep) + d.setVar("DEPENDS", " ".join(newdeps)) + tasks = d.getVar("__BBTASKS", False) + for task in tasks: + task_deps = (d.getVarFlag(task, "depends") or "").split() + remapped_deps = [] + for task_dep in task_deps: + r, t = task_dep.split(":") + if r in virtprovs: + r = d.getVar("PREFERRED_PROVIDER_" + r) + remapped_deps.append("%s:%s" % (r, t)) + d.setVarFlag(task, "depends", " ".join(remapped_deps)) + if isinstance(e, bb.event.ConfigParsed): if not d.getVar("NATIVELSBSTRING", False): d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d)) diff --git a/meta/classes-global/staging.bbclass b/meta/classes-global/staging.bbclass index a8d66481f3..1008867a6c 100644 --- a/meta/classes-global/staging.bbclass +++ b/meta/classes-global/staging.bbclass @@ -127,7 +127,7 @@ do_populate_sysroot[vardepsexclude] += "BB_MULTI_PROVIDER_ALLOWED" POPULATESYSROOTDEPS = "" POPULATESYSROOTDEPS:class-target = "virtual/cross-binutils:do_populate_sysroot" -POPULATESYSROOTDEPS:class-nativesdk = "virtual/sdk-binutils:do_populate_sysroot" +POPULATESYSROOTDEPS:class-nativesdk = "virtual/nativesdk-cross-binutils:do_populate_sysroot" do_populate_sysroot[depends] += "${POPULATESYSROOTDEPS}" SSTATETASKS += "do_populate_sysroot" diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index c95c3a586d..3ffdb3e757 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass @@ -155,6 +155,12 @@ def preferred_ml_updates(d): extramp.append(translate_provide(pref, p)) d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp)) + virtprovs = d.getVar("RECIPE_VIRTUAL_PROVIDERS").split() + for p in virtprovs.copy(): + for pref in prefixes: + virtprovs.append(translate_provide(pref, p)) + d.setVar("RECIPE_VIRTUAL_PROVIDERS", " ".join(virtprovs)) + abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() extras = [] for p in prefixes: diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc index 506d77811f..a5867d42c9 100644 --- a/meta/conf/distro/include/default-providers.inc +++ b/meta/conf/distro/include/default-providers.inc @@ -1,6 +1,7 @@ # # Default virtual providers # +RECIPE_VIRTUAL_PROVIDERS = "virtual/cross-cc virtual/cross-c++ virtual/cross-binutils virtual/compilerlibs virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++ virtual/nativesdk-cross-binutils virtual/nativesdk-compilerlibs" PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/egl ?= "mesa" diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index cb734dc524..51a2723a62 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc @@ -5,17 +5,17 @@ PREFERRED_PROVIDER_virtual/cross-binutils = "${MLPREFIX}binutils-cross-${TARGET_ARCH}" PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" -PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" +PREFERRED_PROVIDER_virtual/compilerlibs = "${MLPREFIX}gcc-runtime" PREFERRED_PROVIDER_gdb = "gdb" PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?= "binutils-crosssdk-${SDK_SYS}" PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/cross-sdk-binutils ?= "binutils-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/cross-sdk-cc = "gcc-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/cross-sdk-c++ = "gcc-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/sdk-compilerlibs = "nativesdk-gcc-runtime" +PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?= "binutils-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" # Default libc config PREFERRED_PROVIDER_virtual/gettext ??= "gettext" diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc index a322114b52..c1fda1a465 100644 --- a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc +++ b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc @@ -4,7 +4,7 @@ SUMMARY = "GNU binary utilities (cross-canadian for ${TARGET_ARCH} target)" PN = "binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}" BPN = "binutils" -DEPENDS = "flex-native bison-native virtual/cross-sdk-cc virtual/nativesdk-libc nativesdk-zlib nativesdk-gettext nativesdk-flex" +DEPENDS = "flex-native bison-native virtual/nativesdk-cross-cc virtual/nativesdk-libc nativesdk-zlib nativesdk-gettext nativesdk-flex" EXTRA_OECONF += "--with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \ --enable-poison-system-directories \ " diff --git a/meta/recipes-devtools/binutils/binutils-cross.inc b/meta/recipes-devtools/binutils/binutils-cross.inc index b908393c1f..9c371e7e13 100644 --- a/meta/recipes-devtools/binutils/binutils-cross.inc +++ b/meta/recipes-devtools/binutils/binutils-cross.inc @@ -1,5 +1,4 @@ inherit cross -PROVIDES = "virtual/cross-binutils" PN = "binutils-cross-${TARGET_ARCH}" BPN = "binutils" diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb index afc91a9b3b..6752659304 100644 --- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb +++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb @@ -1,7 +1,5 @@ require binutils-cross_${PV}.bb -PROVIDES = "virtual/cross-sdk-binutils" - inherit crosssdk PN = "binutils-crosssdk-${SDK_SYS}" diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index a97329e58f..9b55ec21e0 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -3,7 +3,7 @@ inherit cross-canadian SUMMARY = "GNU cc and gcc C compilers (cross-canadian for ${TARGET_ARCH} target)" PN = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}" -DEPENDS = "virtual/cross-sdk-cc virtual/cross-cc virtual/cross-sdk-binutils virtual/nativesdk-libc nativesdk-gettext flex-native virtual/libc" +DEPENDS = "virtual/nativesdk-cross-cc virtual/cross-cc virtual/nativesdk-cross-binutils virtual/nativesdk-libc nativesdk-gettext flex-native virtual/libc" GCCMULTILIB = "--enable-multilib" diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc index 4549f92c2f..7afdf58577 100644 --- a/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/meta/recipes-devtools/gcc/gcc-cross.inc @@ -3,7 +3,6 @@ inherit cross INHIBIT_DEFAULT_DEPS = "1" EXTRADEPENDS = "" DEPENDS = "virtual/cross-binutils ${EXTRADEPENDS} ${NATIVEDEPS}" -PROVIDES = "virtual/cross-cc virtual/c++" python () { if d.getVar("TARGET_OS").startswith("linux"): d.setVar("EXTRADEPENDS", "linux-libc-headers") diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/meta/recipes-devtools/gcc/gcc-crosssdk.inc index 1adce65cf8..4397dd898d 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk.inc +++ b/meta/recipes-devtools/gcc/gcc-crosssdk.inc @@ -8,7 +8,7 @@ SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/" GCCMULTILIB = "--disable-multilib" -DEPENDS = "virtual/cross-sdk-binutils gettext-native ${NATIVEDEPS}" -PROVIDES = "virtual/cross-sdk-cc virtual/cross-sdk-c++" +DEPENDS = "virtual/nativesdk-cross-binutils gettext-native ${NATIVEDEPS}" +PROVIDES = "virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++" gcc_multilib_setup[vardepsexclude] = "MULTILIB_VARIANTS" diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc index 7380123ab6..291ace2d09 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -157,7 +157,7 @@ do_install:append:class-target () { INHIBIT_DEFAULT_DEPS = "1" DEPENDS = "virtual/cross-cc virtual/cross-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" -DEPENDS:class-nativesdk = "virtual/cross-sdk-cc virtual/cross-sdk-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" +DEPENDS:class-nativesdk = "virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" PROVIDES = "virtual/${MLPREFIX}compilerlibs" BBCLASSEXTEND = "nativesdk" diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc index b4b6742d13..9150c196a8 100644 --- a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc @@ -7,7 +7,7 @@ PN = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}" BPN = "gdb" DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext nativesdk-gmp nativesdk-mpfr \ - virtual/cross-sdk-cc virtual/cross-sdk-binutils virtual/nativesdk-libc" + virtual/nativesdk-cross-cc virtual/nativesdk-cross-binutils virtual/nativesdk-libc" GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'" diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc b/meta/recipes-devtools/go/go-cross-canadian.inc index 7be6fe778f..ff6c063d69 100644 --- a/meta/recipes-devtools/go/go-cross-canadian.inc +++ b/meta/recipes-devtools/go/go-cross-canadian.inc @@ -1,7 +1,7 @@ inherit cross-canadian DEPENDS = "go-native virtual/${HOST_PREFIX}go virtual/nativesdk-${HOST_PREFIX}go-runtime \ - virtual/cross-sdk-cc virtual/nativesdk-libc \ + virtual/nativesdk-cross-cc virtual/nativesdk-libc \ virtual/nativesdk-compilerlibs" PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}" diff --git a/meta/recipes-devtools/go/go-crosssdk.inc b/meta/recipes-devtools/go/go-crosssdk.inc index f2a0521ccf..4f19025ba7 100644 --- a/meta/recipes-devtools/go/go-crosssdk.inc +++ b/meta/recipes-devtools/go/go-crosssdk.inc @@ -1,6 +1,6 @@ inherit crosssdk -DEPENDS = "go-native virtual/cross-sdk-cc virtual/nativesdk-compilerlibs virtual/cross-sdk-binutils" +DEPENDS = "go-native virtual/nativesdk-cross-cc virtual/nativesdk-compilerlibs virtual/nativesdk-cross-binutils" PN = "go-crosssdk-${SDK_SYS}" PROVIDES = "virtual/${TARGET_PREFIX}go" diff --git a/meta/recipes-devtools/rust/rust-cross-canadian.inc b/meta/recipes-devtools/rust/rust-cross-canadian.inc index 0c2f6144b8..25c0e64ba1 100644 --- a/meta/recipes-devtools/rust/rust-cross-canadian.inc +++ b/meta/recipes-devtools/rust/rust-cross-canadian.inc @@ -9,7 +9,7 @@ LICENSE = "MIT" MODIFYTOS = "0" -DEPENDS += "virtual/cross-sdk-cc virtual/nativesdk-libc virtual/nativesdk-compilerlibs" +DEPENDS += "virtual/nativesdk-cross-cc virtual/nativesdk-libc virtual/nativesdk-compilerlibs" SRC_URI += "file://target-rust-ccld.c" LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7" -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#209982): https://lists.openembedded.org/g/openembedded-core/message/209982 Mute This Topic: https://lists.openembedded.org/mt/110663706/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
