By removing the erroneous EXTRA_OECONF override in 020d5f0, gcc-cross is now configured with correct sysroot flags, which removes the hosts include directory from the internal paths. This in turn leads to libgcc not finding libc headers (as it should) and breaks libgcc build. In order to fix this, libgcc must be built almost like libgcc-initial.
Signed-off-by: Joerg Vehlow <[email protected]> --- meta/recipes-devtools/gcc/libgcc.inc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meta/recipes-devtools/gcc/libgcc.inc b/meta/recipes-devtools/gcc/libgcc.inc index e92dadf021..93e217f567 100644 --- a/meta/recipes-devtools/gcc/libgcc.inc +++ b/meta/recipes-devtools/gcc/libgcc.inc @@ -37,6 +37,16 @@ LICENSE:${PN}-dev = "GPL-3.0-or-later WITH GCC-exception-3.1" LICENSE:${PN}-dbg = "GPL-3.0-or-later WITH GCC-exception-3.1" LICENSE:${PN}-src = "GPL-3.0-or-later WITH GCC-exception-3.1" +# On baremetal there is no libc: +# configure need limits.h for its sanity check +# libc dependencies have to be patched out just like in libgcc-initial +do_configure:prepend:libc-baremetal () { + install -d ${STAGING_INCDIR} + touch ${STAGING_INCDIR}/limits.h + sed -i -e 's#INHIBIT_LIBC_CFLAGS =.*#INHIBIT_LIBC_CFLAGS = -Dinhibit_libc#' ${B}/gcc/libgcc.mvars + sed -i -e 's#inhibit_libc = false#inhibit_libc = true#' ${B}/gcc/Makefile +} + FILES:${PN}-dev = "\ ${base_libdir}/libgcc*.so \ ${@oe.utils.conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#247368): https://lists.openembedded.org/g/openembedded-core/message/247368 Mute This Topic: https://lists.openembedded.org/mt/121623473/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
