From: Denys Dmytriyenko <denis@denix.org>
To: joerg.vehlow@emlix.com,
Richard Purdie <richard.purdie@linuxfoundation.org>,
Ryan Eatmon <reatmon@ti.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] tclibc-baremetal.inc: fix gcc-cross EXTRA_OECONF
Date: Tue, 6 Oct 2026 14:03:42 -0400 [thread overview]
Message-ID: <20261006180342.GM4190@denix.org> (raw)
In-Reply-To: <20260929072452.2187140-1-joerg.vehlow@emlix.com>
On Tue, Sep 29, 2026 at 09:24:52AM +0200, Joerg Vehlow via lists.openembedded.org wrote:
> Using EXTRA_OECONF:pn-gcc-cross-${TARGET_ARCH}:append created a new override
> for EXTRA_OECONF, which led to almost all EXTRA_OECONF switches to be ignored.
> Furthermore, setting --without-headers here is not required,
> because it is set in gcc-cross.inc.
I fully realize this change has good intentions, but it actually breaks
baremetal. We've been trying to debug this for the past couple of days.
While we run our baremetal in a multiconfig, you don't need that to reproduce
the breakage only with OE-Core by adding these 2 lines to local.conf:
TCLIBC = "baremetal"
MACHINE = "qemuarm"
$ bitbake libgcc
| checking whether we are using the GNU C compiler... yes
| checking whether arm-oe-eabi-gcc -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -no-pie -fno-PIE --sysroot=/OE/core-master/build/tmp/work/cortexa15t2hf-neon-oe-eabi/libgcc/16.2.0/recipe-sysroot accepts -g... yes
| checking for arm-oe-eabi-gcc -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -no-pie -fno-PIE --sysroot=/OE/core-master/build/tmp/work/cortexa15t2hf-neon-oe-eabi/libgcc/16.2.0/recipe-sysroot option to accept ISO C89... unsupported
| checking how to run the C preprocessor... arm-oe-eabi-gcc -E --sysroot=/OE/core-master/build/tmp/work/cortexa15t2hf-neon-oe-eabi/libgcc/16.2.0/recipe-sysroot -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -no-pie -fno-PIE
| configure: error: in `/OE/core-master/build/tmp/work/cortexa15t2hf-neon-oe-eabi/libgcc/16.2.0/gcc-16.2.0/build.arm-oe-eabi.arm-oe-eabi/libgcc':
| configure: error: C preprocessor "arm-oe-eabi-gcc -E --sysroot=/OE/core-master/build/tmp/work/cortexa15t2hf-neon-oe-eabi/libgcc/16.2.0/recipe-sysroot -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -no-pie -fno-PIE" fails sanity check
| See `config.log' for more details
Reverting this single commit restores the working behavior.
I don't see anything suspicious in the config.log yet, but I'll keep digging.
Here's EXTRA_OECONF for gcc-cross-arm before and after the change:
EXTRA_OECONF=" \
--without-headers \
--disable-static \
--disable-nls \
--enable-initfini-array \
--without-headers \
"
EXTRA_OECONF=" \
--enable-clocale=generic \
--with-gnu-ld \
--enable-shared \
--enable-languages=c,c++ \
--disable-multilib \
--enable-default-pie \
--enable-c99 \
--enable-long-long \
--enable-symvers=gnu \
--enable-libstdcxx-pch \
--program-prefix=arm-oe-eabi- \
--without-local-prefix \
--disable-install-libiberty \
--disable-libssp \
--enable-libitm \
--enable-lto \
--disable-bootstrap \
--with-system-zlib \
--with-linker-hash-style=sysv \
--enable-linker-build-id \
--with-ppl=no \
--with-cloog=no \
--enable-checking=release \
--enable-cheaders=c_global \
--without-isl \
--with-gxx-include-dir=/not/exist/usr/include/c++/16.2.0 \
--with-gxx-libcxx-include-dir=/not/exist/usr/include/c++/v1 \
--with-sysroot=/not/exist \
--with-build-sysroot=/OE/core-master/build/tmp/work/x86_64-linux/gcc-cross-arm/16.2.0/recipe-sysroot \
--enable-poison-system-directories=error \
--with-system-zlib \
--disable-static \
--disable-nls \
--enable-initfini-array \
--without-headers \
"
> Signed-off-by: Joerg Vehlow <joerg.vehlow@emlix.com>
> ---
> meta/conf/distro/include/tclibc-baremetal.inc | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/meta/conf/distro/include/tclibc-baremetal.inc b/meta/conf/distro/include/tclibc-baremetal.inc
> index abea5a7162..6043cb6654 100644
> --- a/meta/conf/distro/include/tclibc-baremetal.inc
> +++ b/meta/conf/distro/include/tclibc-baremetal.inc
> @@ -18,7 +18,6 @@ USE_NLS ?= "no"
> IMAGE_LINGUAS = ""
> LIBC_DEPENDENCIES = ""
>
> -EXTRA_OECONF:pn-gcc-cross-${TARGET_ARCH}:append = " --without-headers"
> DEPENDS:remove:pn-meta-toolchain = "virtual/libc virtual/compilerlibs"
>
> # certain compiler libs cannot be used without libc, avoid the dependence on compilerlibs
next prev parent reply other threads:[~2026-10-06 18:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 7:24 [PATCH] tclibc-baremetal.inc: fix gcc-cross EXTRA_OECONF Joerg Vehlow
2026-10-06 18:03 ` Denys Dmytriyenko [this message]
2026-10-06 18:42 ` [OE-core] " Richard Purdie
2026-10-07 4:53 ` Jörg Vehlow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261006180342.GM4190@denix.org \
--to=denis@denix.org \
--cc=joerg.vehlow@emlix.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=reatmon@ti.com \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.