* [RFC PATCH 1/5] baremetal, linux-dummy: bypass kernel dependencies for baremetal
@ 2025-10-02 0:08 Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 2/5] glibc: skip also on baremetal Denys Dmytriyenko
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 0:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@konsulko.com>
When building something for baremetal configs (such as firmware
images for heterogeneous cores), you don't normally include Linux
kernel. But yocto-check-layer (and possibly other tools) tend to
dump "world" signatures and trip over a large number of Linux
kernel depdencies from other recipes and packagegroups. Those
aren't limited to directly depending on virtual/kernel, but also
everything else kernel-related, such as tools, device trees and
especially a large number of specific kernel module RRECOMMENDS.
As linux-dummy was originally created to specifically cut down all
such kernel dependencies when it's not built or packaged normally,
we can re-use it for baremetal configs as well.
Since linux-dummy can now be used outside of Linux host, update
COMPATIBLE_HOST accordingly.
Also, cut out kernel-devsrc (kernel sources) from the world build
completely - it is quite weird and very custom on its own.
[YOCTO #15982]
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
meta/conf/distro/include/tclibc-baremetal.inc | 1 +
meta/recipes-kernel/linux/kernel-devsrc.bb | 2 ++
meta/recipes-kernel/linux/linux-dummy.bb | 2 --
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta/conf/distro/include/tclibc-baremetal.inc b/meta/conf/distro/include/tclibc-baremetal.inc
index abea5a7162..adac212dc0 100644
--- a/meta/conf/distro/include/tclibc-baremetal.inc
+++ b/meta/conf/distro/include/tclibc-baremetal.inc
@@ -8,6 +8,7 @@ LIBCOVERRIDE = ":libc-baremetal"
ASSUME_PROVIDED += "virtual/libc virtual/libiconv virtual/crypt"
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-dummy"
PREFERRED_PROVIDER_virtual/libc ?= "musl"
PREFERRED_PROVIDER_virtual/libiconv ?= "musl"
PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb
index 04dd683dde..dbad6f113a 100644
--- a/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -423,3 +423,5 @@ RDEPENDS:${PN} += "${@bb.utils.contains('ARCH', 'powerpc', 'elfutils-dev', '', d
RDEPENDS:${PN} += "gcc-plugins libmpc-dev"
# 5.13+ needs grep for powerpc
RDEPENDS:${PN}:append:powerpc = " grep"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta/recipes-kernel/linux/linux-dummy.bb b/meta/recipes-kernel/linux/linux-dummy.bb
index d7f39a452d..6199787a71 100644
--- a/meta/recipes-kernel/linux/linux-dummy.bb
+++ b/meta/recipes-kernel/linux/linux-dummy.bb
@@ -25,8 +25,6 @@ DESCRIPTION:kernel-vmlinux = "Kernel vmlinux meta package"
INHIBIT_DEFAULT_DEPS = "1"
-COMPATIBLE_HOST = ".*-linux"
-
SRC_URI = "file://COPYING.GPL"
S = "${UNPACKDIR}"
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 2/5] glibc: skip also on baremetal
2025-10-02 0:08 [RFC PATCH 1/5] baremetal, linux-dummy: bypass kernel dependencies for baremetal Denys Dmytriyenko
@ 2025-10-02 0:08 ` Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 3/5] musl: set compatibility a bit more flexible Denys Dmytriyenko
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 0:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@konsulko.com>
Similar to how glibc gets skipped when building musl config, also
skip it when building baremetal config.
[YOCTO #15982]
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
meta/recipes-core/glibc/glibc-common.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-core/glibc/glibc-common.inc b/meta/recipes-core/glibc/glibc-common.inc
index 7422ede04d..30179870a9 100644
--- a/meta/recipes-core/glibc/glibc-common.inc
+++ b/meta/recipes-core/glibc/glibc-common.inc
@@ -21,6 +21,7 @@ ARM_INSTRUCTION_SET:armv6 = "arm"
# this helps in easing out parsing for non-glibc system libraries
#
COMPATIBLE_HOST:libc-musl:class-target = "null"
+COMPATIBLE_HOST:libc-baremetal:class-target = "null"
PV = "2.42+git"
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 3/5] musl: set compatibility a bit more flexible
2025-10-02 0:08 [RFC PATCH 1/5] baremetal, linux-dummy: bypass kernel dependencies for baremetal Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 2/5] glibc: skip also on baremetal Denys Dmytriyenko
@ 2025-10-02 0:08 ` Denys Dmytriyenko
2025-10-02 2:12 ` [OE-core] " Khem Raj
2025-10-02 0:08 ` [RFC PATCH 4/5] newlib: mark as incompatible with baremetal, which uses musl Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 5/5] packagegroups, dpkg: extend musl conditionals to baremetal Denys Dmytriyenko
3 siblings, 1 reply; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 0:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@konsulko.com>
Like musl Linux config, baremetal also uses musl as a libc, but
it has a different host triplet set. Hence adjust COMPATIBLE_HOST
to accomodate this use case by checking that musl is a preferred
provider of libc.
[YOCTO #15982]
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
| 2 +-
meta/recipes-core/musl/libssp-nonshared.bb | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
--git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
index ad9ba81e4f..c6a3814a49 100644
--- a/meta/recipes-core/musl/bsd-headers.bb
+++ b/meta/recipes-core/musl/bsd-headers.bb
@@ -25,7 +25,7 @@ do_install() {
#
# We will skip parsing for non-musl systems
#
+COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
-COMPATIBLE_HOST = ".*-musl.*"
DEV_PKG_DEPENDENCY = ""
RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
index 4bcbaef7ea..6f12ff0c9b 100644
--- a/meta/recipes-core/musl/libssp-nonshared.bb
+++ b/meta/recipes-core/musl/libssp-nonshared.bb
@@ -29,7 +29,8 @@ do_install() {
#
# We will skip parsing for non-musl systems
#
-COMPATIBLE_HOST = ".*-musl.*"
+COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
+
RDEPENDS:${PN}-staticdev = ""
DEV_PKG_DEPENDENCY = ""
RRECOMMENDS:${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 4/5] newlib: mark as incompatible with baremetal, which uses musl
2025-10-02 0:08 [RFC PATCH 1/5] baremetal, linux-dummy: bypass kernel dependencies for baremetal Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 2/5] glibc: skip also on baremetal Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 3/5] musl: set compatibility a bit more flexible Denys Dmytriyenko
@ 2025-10-02 0:08 ` Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 5/5] packagegroups, dpkg: extend musl conditionals to baremetal Denys Dmytriyenko
3 siblings, 0 replies; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 0:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@konsulko.com>
Like newlib is already marked as incompatible with glibc and musl,
mark it as incompatible with baremetal, which uses musl.
[YOCTO #15982]
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
meta/recipes-core/newlib/newlib.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-core/newlib/newlib.inc b/meta/recipes-core/newlib/newlib.inc
index a8794dd1d9..a8d138739c 100644
--- a/meta/recipes-core/newlib/newlib.inc
+++ b/meta/recipes-core/newlib/newlib.inc
@@ -65,3 +65,4 @@ do_install() {
COMPATIBLE_HOST:libc-musl:class-target = "null"
COMPATIBLE_HOST:libc-glibc:class-target = "null"
+COMPATIBLE_HOST:libc-baremetal:class-target = "null"
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 5/5] packagegroups, dpkg: extend musl conditionals to baremetal
2025-10-02 0:08 [RFC PATCH 1/5] baremetal, linux-dummy: bypass kernel dependencies for baremetal Denys Dmytriyenko
` (2 preceding siblings ...)
2025-10-02 0:08 ` [RFC PATCH 4/5] newlib: mark as incompatible with baremetal, which uses musl Denys Dmytriyenko
@ 2025-10-02 0:08 ` Denys Dmytriyenko
3 siblings, 0 replies; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 0:08 UTC (permalink / raw)
To: openembedded-core; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@konsulko.com>
Some packagegroups have conditional inclusion of packages based on
their compatibility with specific libc providers. Add baremetal
config, which is mostly similar to musl, that baremetal uses as libc.
[YOCTO #15982]
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
meta/recipes-core/packagegroups/packagegroup-core-sdk.bb | 1 +
.../packagegroups/packagegroup-core-tools-profile.bb | 2 ++
.../packagegroups/packagegroup-core-tools-testapps.bb | 1 +
meta/recipes-devtools/dpkg/dpkg.inc | 1 +
4 files changed, 5 insertions(+)
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
index e6d704b5ba..2fd815508f 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
@@ -42,6 +42,7 @@ SANITIZERS:nios2 = ""
SANITIZERS:riscv64 = ""
SANITIZERS:riscv32 = ""
SANITIZERS:libc-musl = ""
+SANITIZERS:libc-baremetal = ""
RRECOMMENDS:packagegroup-core-sdk = "\
libgomp \
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index 9c09f5ab44..501559771e 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -28,6 +28,7 @@ PERF:riscv32 = ""
# systemtap needs elfutils which is not fully buildable on some arches/libcs
SYSTEMTAP = "systemtap"
SYSTEMTAP:libc-musl = ""
+SYSTEMTAP:libc-baremetal = ""
SYSTEMTAP:nios2 = ""
SYSTEMTAP:riscv32 = ""
@@ -41,6 +42,7 @@ BABELTRACE2 = "babeltrace2"
VALGRIND = "valgrind"
VALGRIND:libc-musl = ""
+VALGRIND:libc-baremetal = ""
VALGRIND:mipsarch = ""
VALGRIND:nios2 = ""
VALGRIND:arc = ""
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index 25561f6878..b77739871e 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -17,6 +17,7 @@ KEXECTOOLS:nios2 ?= ""
KEXECTOOLS:riscv64 ?= ""
KEXECTOOLS:riscv32 ?= ""
KEXECTOOLS:loongarch64 ?= ""
+KEXECTOOLS:libc-baremetal ?= ""
# go does not support ppc32, only ppc64
# https://github.com/golang/go/issues/22885
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index b4e9667107..e091fdb5cd 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -116,6 +116,7 @@ ALTERNATIVE_PRIORITY = "100"
EXTRA_RDPENDS = "ldconfig"
EXTRA_RDPENDS:libc-musl = ""
+EXTRA_RDPENDS:libc-baremetal = ""
RDEPENDS:${PN} += "${PN}-start-stop ${EXTRA_RDPENDS}"
BBCLASSEXTEND = "native nativesdk"
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [OE-core] [RFC PATCH 3/5] musl: set compatibility a bit more flexible
2025-10-02 0:08 ` [RFC PATCH 3/5] musl: set compatibility a bit more flexible Denys Dmytriyenko
@ 2025-10-02 2:12 ` Khem Raj
2025-10-02 14:04 ` Denys Dmytriyenko
0 siblings, 1 reply; 9+ messages in thread
From: Khem Raj @ 2025-10-02 2:12 UTC (permalink / raw)
To: denis; +Cc: openembedded-core, Denys Dmytriyenko
On Wed, Oct 1, 2025 at 5:08 PM Denys Dmytriyenko via
lists.openembedded.org <denis=denix.org@lists.openembedded.org> wrote:
>
> From: Denys Dmytriyenko <denys@konsulko.com>
>
> Like musl Linux config, baremetal also uses musl as a libc, but
> it has a different host triplet set. Hence adjust COMPATIBLE_HOST
> to accomodate this use case by checking that musl is a preferred
> provider of libc.
This sounds a bit odd. Why do we use musl for baremetal targets ?
while musl does have FDPIC support but I don't think thats how we
use it.
>
> [YOCTO #15982]
>
> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> ---
> meta/recipes-core/musl/bsd-headers.bb | 2 +-
> meta/recipes-core/musl/libssp-nonshared.bb | 3 ++-
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
> index ad9ba81e4f..c6a3814a49 100644
> --- a/meta/recipes-core/musl/bsd-headers.bb
> +++ b/meta/recipes-core/musl/bsd-headers.bb
> @@ -25,7 +25,7 @@ do_install() {
> #
> # We will skip parsing for non-musl systems
> #
> +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
>
> -COMPATIBLE_HOST = ".*-musl.*"
> DEV_PKG_DEPENDENCY = ""
> RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
> diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
> index 4bcbaef7ea..6f12ff0c9b 100644
> --- a/meta/recipes-core/musl/libssp-nonshared.bb
> +++ b/meta/recipes-core/musl/libssp-nonshared.bb
> @@ -29,7 +29,8 @@ do_install() {
> #
> # We will skip parsing for non-musl systems
> #
> -COMPATIBLE_HOST = ".*-musl.*"
> +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> +
> RDEPENDS:${PN}-staticdev = ""
> DEV_PKG_DEPENDENCY = ""
> RRECOMMENDS:${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#224333): https://lists.openembedded.org/g/openembedded-core/message/224333
> Mute This Topic: https://lists.openembedded.org/mt/115544473/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [OE-core] [RFC PATCH 3/5] musl: set compatibility a bit more flexible
2025-10-02 2:12 ` [OE-core] " Khem Raj
@ 2025-10-02 14:04 ` Denys Dmytriyenko
2025-10-02 17:23 ` Khem Raj
0 siblings, 1 reply; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 14:04 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core, Denys Dmytriyenko
On Wed, Oct 01, 2025 at 07:12:34PM -0700, Khem Raj wrote:
> On Wed, Oct 1, 2025 at 5:08 PM Denys Dmytriyenko via
> lists.openembedded.org <denis=denix.org@lists.openembedded.org> wrote:
> >
> > From: Denys Dmytriyenko <denys@konsulko.com>
> >
> > Like musl Linux config, baremetal also uses musl as a libc, but
> > it has a different host triplet set. Hence adjust COMPATIBLE_HOST
> > to accomodate this use case by checking that musl is a preferred
> > provider of libc.
>
> This sounds a bit odd. Why do we use musl for baremetal targets ?
Was like that for 10 years since the beginning of baremetal support:
https://git.openembedded.org/openembedded-core/commit/?id=cb010e306a6a856c589db5f41fdcaea4e5035d93
> while musl does have FDPIC support but I don't think thats how we
> use it.
>
> >
> > [YOCTO #15982]
> >
> > Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > ---
> > meta/recipes-core/musl/bsd-headers.bb | 2 +-
> > meta/recipes-core/musl/libssp-nonshared.bb | 3 ++-
> > 2 files changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
> > index ad9ba81e4f..c6a3814a49 100644
> > --- a/meta/recipes-core/musl/bsd-headers.bb
> > +++ b/meta/recipes-core/musl/bsd-headers.bb
> > @@ -25,7 +25,7 @@ do_install() {
> > #
> > # We will skip parsing for non-musl systems
> > #
> > +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> >
> > -COMPATIBLE_HOST = ".*-musl.*"
> > DEV_PKG_DEPENDENCY = ""
> > RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
> > diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
> > index 4bcbaef7ea..6f12ff0c9b 100644
> > --- a/meta/recipes-core/musl/libssp-nonshared.bb
> > +++ b/meta/recipes-core/musl/libssp-nonshared.bb
> > @@ -29,7 +29,8 @@ do_install() {
> > #
> > # We will skip parsing for non-musl systems
> > #
> > -COMPATIBLE_HOST = ".*-musl.*"
> > +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> > +
> > RDEPENDS:${PN}-staticdev = ""
> > DEV_PKG_DEPENDENCY = ""
> > RRECOMMENDS:${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"
> > --
> > 2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [OE-core] [RFC PATCH 3/5] musl: set compatibility a bit more flexible
2025-10-02 14:04 ` Denys Dmytriyenko
@ 2025-10-02 17:23 ` Khem Raj
2025-10-02 19:31 ` Denys Dmytriyenko
0 siblings, 1 reply; 9+ messages in thread
From: Khem Raj @ 2025-10-02 17:23 UTC (permalink / raw)
To: Denys Dmytriyenko; +Cc: openembedded-core, Denys Dmytriyenko
On Thu, Oct 2, 2025 at 7:04 AM Denys Dmytriyenko <denis@denix.org> wrote:
>
> On Wed, Oct 01, 2025 at 07:12:34PM -0700, Khem Raj wrote:
> > On Wed, Oct 1, 2025 at 5:08 PM Denys Dmytriyenko via
> > lists.openembedded.org <denis=denix.org@lists.openembedded.org> wrote:
> > >
> > > From: Denys Dmytriyenko <denys@konsulko.com>
> > >
> > > Like musl Linux config, baremetal also uses musl as a libc, but
> > > it has a different host triplet set. Hence adjust COMPATIBLE_HOST
> > > to accomodate this use case by checking that musl is a preferred
> > > provider of libc.
> >
> > This sounds a bit odd. Why do we use musl for baremetal targets ?
>
> Was like that for 10 years since the beginning of baremetal support:
> https://git.openembedded.org/openembedded-core/commit/?id=cb010e306a6a856c589db5f41fdcaea4e5035d93
>
A lot has changed since then in terms of toolchain sequences and dependencies
it might be a good time to revise this
>
> > while musl does have FDPIC support but I don't think thats how we
> > use it.
> >
> > >
> > > [YOCTO #15982]
> > >
> > > Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > > ---
> > > meta/recipes-core/musl/bsd-headers.bb | 2 +-
> > > meta/recipes-core/musl/libssp-nonshared.bb | 3 ++-
> > > 2 files changed, 3 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
> > > index ad9ba81e4f..c6a3814a49 100644
> > > --- a/meta/recipes-core/musl/bsd-headers.bb
> > > +++ b/meta/recipes-core/musl/bsd-headers.bb
> > > @@ -25,7 +25,7 @@ do_install() {
> > > #
> > > # We will skip parsing for non-musl systems
> > > #
> > > +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> > >
> > > -COMPATIBLE_HOST = ".*-musl.*"
> > > DEV_PKG_DEPENDENCY = ""
> > > RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
> > > diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
> > > index 4bcbaef7ea..6f12ff0c9b 100644
> > > --- a/meta/recipes-core/musl/libssp-nonshared.bb
> > > +++ b/meta/recipes-core/musl/libssp-nonshared.bb
> > > @@ -29,7 +29,8 @@ do_install() {
> > > #
> > > # We will skip parsing for non-musl systems
> > > #
> > > -COMPATIBLE_HOST = ".*-musl.*"
> > > +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> > > +
> > > RDEPENDS:${PN}-staticdev = ""
> > > DEV_PKG_DEPENDENCY = ""
> > > RRECOMMENDS:${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"
> > > --
> > > 2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [OE-core] [RFC PATCH 3/5] musl: set compatibility a bit more flexible
2025-10-02 17:23 ` Khem Raj
@ 2025-10-02 19:31 ` Denys Dmytriyenko
0 siblings, 0 replies; 9+ messages in thread
From: Denys Dmytriyenko @ 2025-10-02 19:31 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core, Denys Dmytriyenko
On Thu, Oct 02, 2025 at 10:23:25AM -0700, Khem Raj wrote:
> On Thu, Oct 2, 2025 at 7:04 AM Denys Dmytriyenko <denis@denix.org> wrote:
> >
> > On Wed, Oct 01, 2025 at 07:12:34PM -0700, Khem Raj wrote:
> > > On Wed, Oct 1, 2025 at 5:08 PM Denys Dmytriyenko via
> > > lists.openembedded.org <denis=denix.org@lists.openembedded.org> wrote:
> > > >
> > > > From: Denys Dmytriyenko <denys@konsulko.com>
> > > >
> > > > Like musl Linux config, baremetal also uses musl as a libc, but
> > > > it has a different host triplet set. Hence adjust COMPATIBLE_HOST
> > > > to accomodate this use case by checking that musl is a preferred
> > > > provider of libc.
> > >
> > > This sounds a bit odd. Why do we use musl for baremetal targets ?
> >
> > Was like that for 10 years since the beginning of baremetal support:
> > https://git.openembedded.org/openembedded-core/commit/?id=cb010e306a6a856c589db5f41fdcaea4e5035d93
> >
>
> A lot has changed since then in terms of toolchain sequences and dependencies
> it might be a good time to revise this
Yeah, that would be the next step and is part of my longer todo list.
We've noticed that the baremetal toolchain build is now much larger and much
longer than how it used to be several years ago - there seems to be a lot of
unnecessary dependencies being pulled just to build a couple of self-contained
firmware images... Still need to investigate further though.
> > > while musl does have FDPIC support but I don't think thats how we
> > > use it.
> > >
> > > >
> > > > [YOCTO #15982]
> > > >
> > > > Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > > > ---
> > > > meta/recipes-core/musl/bsd-headers.bb | 2 +-
> > > > meta/recipes-core/musl/libssp-nonshared.bb | 3 ++-
> > > > 2 files changed, 3 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
> > > > index ad9ba81e4f..c6a3814a49 100644
> > > > --- a/meta/recipes-core/musl/bsd-headers.bb
> > > > +++ b/meta/recipes-core/musl/bsd-headers.bb
> > > > @@ -25,7 +25,7 @@ do_install() {
> > > > #
> > > > # We will skip parsing for non-musl systems
> > > > #
> > > > +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> > > >
> > > > -COMPATIBLE_HOST = ".*-musl.*"
> > > > DEV_PKG_DEPENDENCY = ""
> > > > RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
> > > > diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
> > > > index 4bcbaef7ea..6f12ff0c9b 100644
> > > > --- a/meta/recipes-core/musl/libssp-nonshared.bb
> > > > +++ b/meta/recipes-core/musl/libssp-nonshared.bb
> > > > @@ -29,7 +29,8 @@ do_install() {
> > > > #
> > > > # We will skip parsing for non-musl systems
> > > > #
> > > > -COMPATIBLE_HOST = ".*-musl.*"
> > > > +COMPATIBLE_HOST = "${@oe.utils.conditional('PREFERRED_PROVIDER_virtual/libc', 'musl', '.*', 'null', d)}"
> > > > +
> > > > RDEPENDS:${PN}-staticdev = ""
> > > > DEV_PKG_DEPENDENCY = ""
> > > > RRECOMMENDS:${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"
> > > > --
> > > > 2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-10-02 19:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-02 0:08 [RFC PATCH 1/5] baremetal, linux-dummy: bypass kernel dependencies for baremetal Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 2/5] glibc: skip also on baremetal Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 3/5] musl: set compatibility a bit more flexible Denys Dmytriyenko
2025-10-02 2:12 ` [OE-core] " Khem Raj
2025-10-02 14:04 ` Denys Dmytriyenko
2025-10-02 17:23 ` Khem Raj
2025-10-02 19:31 ` Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 4/5] newlib: mark as incompatible with baremetal, which uses musl Denys Dmytriyenko
2025-10-02 0:08 ` [RFC PATCH 5/5] packagegroups, dpkg: extend musl conditionals to baremetal Denys Dmytriyenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox