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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to