From dadd1e0ec6ad4cf572964c18fa304be9f382f885 Mon Sep 17 00:00:00 2001 From: Gregor Herburger Date: Wed, 10 Sep 2025 13:38:02 +0200 Subject: [PATCH] gcc: fix local include path for nativesdk-gcc By default GCC uses /usr/local/include as the local include prefix. When building the nativesdk-gcc package, this makes gcc look in the hosts /usr/local/include and may use non-SDK headers. Example from current poky: $# x86_64-pokysdk-linux-gcc -v -E - search starts here: /opt/poky/5.2.99+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/gcc/x86_64-pokysdk-linux/15.2.0/include /usr/local/include /opt/poky/5.2.99+snapshot/sysroots/x86_64-pokysdk-linux/usr/include /opt/poky/5.2.99+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/gcc/x86_64-pokysdk-linux/15.2.0/include-fixed Define LOCAL_INCLUDE_DIR along with the other include directories in defaults.h to set the local include directory to the directory in the sysroot. Signed-off-by: Gregor Herburger Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-configure-common.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc index 50ff0d2e82..f152ae5555 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -72,6 +72,7 @@ CPPFLAGS = "" SYSTEMHEADERS = "${target_includedir}" SYSTEMLIBS = "${target_base_libdir}/" SYSTEMLIBS1 = "${target_libdir}/" +SYSTEMLOCALHEADERS = "${target_prefix}/local/include" do_configure:prepend () { # teach gcc to find correct target includedir when checking libc ssp support @@ -83,6 +84,7 @@ do_configure:prepend () { #define STANDARD_STARTFILE_PREFIX_1 "${SYSTEMLIBS}" #define STANDARD_STARTFILE_PREFIX_2 "${SYSTEMLIBS1}" #define SYSTEMLIBS_DIR "${SYSTEMLIBS}" +#define LOCAL_INCLUDE_DIR "${SYSTEMLOCALHEADERS}" #endif /* ! GCC_DEFAULTS_H */ _EOF mv ${B}/gcc/defaults.h.new ${B}/gcc/defaults.h -- 2.47.3