]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
gcc: fix local include path for nativesdk-gcc
authorGregor Herburger <gregor.herburger@ew.tq-group.com>
Wed, 10 Sep 2025 11:38:02 +0000 (13:38 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 15 Sep 2025 16:52:52 +0000 (17:52 +0100)
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 - </dev/null
 #include <...> 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 <gregor.herburger@ew.tq-group.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/gcc/gcc-configure-common.inc

index 50ff0d2e820a395fa3ce149dff650f4b9263f21a..f152ae55555de11a0db9e7d8b45ad968a4d48548 100644 (file)
@@ -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