Openembedded Core Discussions
 help / color / mirror / Atom feed
* [OE-core][PATCH v2 0/2] Add support to compile source for multilib in the eSDK
@ 2026-10-03 15:16 Jagadeesh K
  2026-10-03 15:16 ` [OE-core][PATCH v2 1/2] meta-extsdk-toolchain: Install multilib toolchain files in the eSDK if multilib is enabled Jagadeesh K
  2026-10-03 15:16 ` [OE-core][PATCH v2 2/2] staging: parse multilib sstate manifest files to install multilib packages in the eSDK Jagadeesh K
  0 siblings, 2 replies; 3+ messages in thread
From: Jagadeesh K @ 2026-10-03 15:16 UTC (permalink / raw)
  To: openembedded-core; +Cc: Jagadeesh K

* Install multilib toolchain in the eSDK if multilib configuration is
enabled during the eSDK build.
* Search multilib manifest files to populate multilib packages such as
lib32-gcc-runtime during the eSDK installation.

Jagadeesh Krishnanjanappa (2):
  meta-extsdk-toolchain: Install multilib toolchain files in the eSDK if
    multilib is enabled
  staging: parse multilib sstate manifest files to install multilib
    packages in the eSDK

 meta/classes-global/staging.bbclass            |  6 ++++++
 .../recipes-core/meta/meta-extsdk-toolchain.bb | 18 +++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

-- 
2.39.5



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

* [OE-core][PATCH v2 1/2] meta-extsdk-toolchain: Install multilib toolchain files in the eSDK if multilib is enabled
  2026-10-03 15:16 [OE-core][PATCH v2 0/2] Add support to compile source for multilib in the eSDK Jagadeesh K
@ 2026-10-03 15:16 ` Jagadeesh K
  2026-10-03 15:16 ` [OE-core][PATCH v2 2/2] staging: parse multilib sstate manifest files to install multilib packages in the eSDK Jagadeesh K
  1 sibling, 0 replies; 3+ messages in thread
From: Jagadeesh K @ 2026-10-03 15:16 UTC (permalink / raw)
  To: openembedded-core; +Cc: Jagadeesh Krishnanjanappa

From: Jagadeesh Krishnanjanappa <workjagadeesh@gmail.com>

1. Ship multilib virtual/cross-cc, virtual/compilerlibs, and virtual/libc
packages in the eSDK if it is created with multilib configuration. These
packages are required to compile source for multilib using the eSDK.

2. Include multilib tune configuration directory in SPDX_MULTILIB_SSTATE_ARCHS
to search SPDX document as meta-extsdk-toolchain is dependent on multilib recipes.

Changes in v2:
* Replace all_multilib_tune_values() with oe.utils.all_multilib_tune_values()
  as functions from utils.bbclass are moved to utils.py.

[YOCTO #14020]

Signed-off-by: Jagadeesh Krishnanjanappa <workjagadeesh@gmail.com>
---
 .../recipes-core/meta/meta-extsdk-toolchain.bb | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-core/meta/meta-extsdk-toolchain.bb b/meta/recipes-core/meta/meta-extsdk-toolchain.bb
index 16fe185964..22b8cd045d 100644
--- a/meta/recipes-core/meta/meta-extsdk-toolchain.bb
+++ b/meta/recipes-core/meta/meta-extsdk-toolchain.bb
@@ -2,7 +2,23 @@ SUMMARY = "Extensible SDK toolchain meta-recipe"
 DESCRIPTION = "Meta-recipe for ensuring the build directory contains all appropriate toolchain packages for using an IDE"
 LICENSE = "MIT"
 
-DEPENDS = "virtual/libc ${MLPREFIX}gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native"
+
+def add_multilib_depends(d):
+    mlpkgs = ""
+    for v in d.getVar('MULTILIB_VARIANTS').split():
+        localdata = bb.data.createCopy(d)
+        override = ":virtclass-multilib-" + v
+        localdata.setVar("OVERRIDES", localdata.getVar("OVERRIDES", False) + override)
+        for p in localdata.getVar('BASEDEPENDS').split():
+            pkg = localdata.getVar("PREFERRED_PROVIDER_%s" % p)
+            if pkg:
+                mlpkgs = mlpkgs + ' ' + v + '-' + pkg
+    return mlpkgs
+
+DEPENDS = "virtual/libc ${MLPREFIX}gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native ${@add_multilib_depends(d)}"
+
+# Search the SPDX document of multilib recipe in multilib tune configuration directory.
+SPDX_MULTILIB_SSTATE_ARCHS = "${@oe.utils.all_multilib_tune_values(d, 'SSTATE_ARCHS')}"
 
 do_populate_sysroot[deptask] = "do_populate_sysroot"
 
-- 
2.39.5



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

* [OE-core][PATCH v2 2/2] staging: parse multilib sstate manifest files to install multilib packages in the eSDK
  2026-10-03 15:16 [OE-core][PATCH v2 0/2] Add support to compile source for multilib in the eSDK Jagadeesh K
  2026-10-03 15:16 ` [OE-core][PATCH v2 1/2] meta-extsdk-toolchain: Install multilib toolchain files in the eSDK if multilib is enabled Jagadeesh K
@ 2026-10-03 15:16 ` Jagadeesh K
  1 sibling, 0 replies; 3+ messages in thread
From: Jagadeesh K @ 2026-10-03 15:16 UTC (permalink / raw)
  To: openembedded-core; +Cc: Jagadeesh Krishnanjanappa

From: Jagadeesh Krishnanjanappa <workjagadeesh@gmail.com>

Since the multilib-DEFAULTTUNE is not part of <pkgarch> of
staging_populate_sysroot_dir function, the SSTATE_MANFILEPREFIX files
of multilib packages are not parsed and due to this multilib package
files are not populated in the <eSDK_install_dir>/tmp/sysroots during
the installation of the eSDK. Hence, the eSDK sysroots lacks header files
required to compile source for multilib.
For example:
The header file bits/c++config.h given by lib32-gcc-runtime recipe,
is not populated in the <eSDK_install_directory>/tmp/sysroots
by the staging_populate_sysroot_dir function as <pkgarch> list does not
contains multilib-DEFAULTTUNE (i.e 'x86' in case of qemux86-64).

This change adds multilib-DEFAULTTUNE to <pkgarch> list and
thereby parsing multilib SSTATE_MANFILEPREFIX files and populating
multilib package files during the eSDK installation.

[YOCTO #14020]

Signed-off-by: Jagadeesh Krishnanjanappa <workjagadeesh@gmail.com>
---
 meta/classes-global/staging.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meta/classes-global/staging.bbclass b/meta/classes-global/staging.bbclass
index 5833abebc8..74e3bf276b 100644
--- a/meta/classes-global/staging.bbclass
+++ b/meta/classes-global/staging.bbclass
@@ -204,6 +204,12 @@ def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d):
         pkgarchs = ['${MACHINE_ARCH}']
         pkgarchs = pkgarchs + list(reversed(d.getVar("PACKAGE_EXTRA_ARCHS").split()))
         pkgarchs.append('allarch')
+        multilibs = d.getVar('MULTILIB_VARIANTS').split()
+        if multilibs:
+            for ml in multilibs:
+                mltunes = d.getVar('DEFAULTTUNE:virtclass-multilib-%s' % ml)
+                if mltunes:
+                    pkgarchs.append(mltunes)
         targetdir = targetsysroot
 
     bb.utils.mkdirhier(targetdir)
-- 
2.39.5



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

end of thread, other threads:[~2026-10-03 15:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-03 15:16 [OE-core][PATCH v2 0/2] Add support to compile source for multilib in the eSDK Jagadeesh K
2026-10-03 15:16 ` [OE-core][PATCH v2 1/2] meta-extsdk-toolchain: Install multilib toolchain files in the eSDK if multilib is enabled Jagadeesh K
2026-10-03 15:16 ` [OE-core][PATCH v2 2/2] staging: parse multilib sstate manifest files to install multilib packages in the eSDK Jagadeesh K

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