Openembedded Core Discussions
 help / color / mirror / Atom feed
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


  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox