new file mode 100644
@@ -0,0 +1,72 @@
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jun 2026 00:00:00 +0000
+Subject: [PATCH] FindGI: drop bare system include dirs from g-ir-scanner flags
+
+When cross-compiling, CMake's pkg_check_modules records the bare pkg-config
+INCLUDEDIR variable (e.g. /usr/include) on the imported targets'
+INTERFACE_INCLUDE_DIRECTORIES. FindGI forwards every interface include dir
+to g-ir-scanner as -I, so the introspection compile is invoked with a bare
+-I/usr/include. With a GCC configured with
+--enable-poison-system-directories=error (as in OpenEmbedded) this is a hard
+error:
+
+ cc1: error: include location "/usr/include" is unsafe for cross-compilation
+ [-Werror=poison-system-directories]
+
+g-ir-scanner does not forward the recipe's -Wno-error=poison-system-directories
+(it only extracts -D/-I/-U from CFLAGS), so the warning cannot be relaxed from
+the recipe. Filter the bare host system include directories out instead; the
+proper sysroot include path is added by the compiler driver automatically, so
+dropping them is safe.
+
+The include dirs reach the scanner through two paths, both of which must be
+filtered:
+
+ * the dependency loop that appends to scanner_flags, and
+ * the per-target INTERFACE_INCLUDE_DIRECTORIES generator expression that is
+ joined into -I flags on the g-ir-scanner command line.
+
+Filtering only the first path is not enough: JavaScriptCore-4.1.gir happens to
+have no bare /usr/include on its target, but WebKit2/WebKitGTK does, so the
+WebKitGTK introspection still failed via the generator-expression path. Filter
+both.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/cmake/FindGI.cmake | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+--- a/Source/cmake/FindGI.cmake
++++ b/Source/cmake/FindGI.cmake
+@@ -297,6 +297,15 @@ function(GI_INTROSPECT namespace nsversion header)
+ if (NOT IS_ABSOLUTE "${incdir}")
+ get_filename_component(incdir "${incdir}" REALPATH BASE_DIR "${target_srcdir}")
+ endif ()
++ # Skip bare host system include directories. When cross-compiling
++ # these leak in via the bare pkg-config INCLUDEDIR variable and
++ # g-ir-scanner passes them to the compiler, which rejects them with
++ # -Werror=poison-system-directories ("include location \"/usr/include\"
++ # is unsafe for cross-compilation"). The sysroot include path is added
++ # automatically, so dropping these is safe.
++ if (incdir STREQUAL "/usr/include" OR incdir STREQUAL "/usr/local/include")
++ continue ()
++ endif ()
+ list(APPEND scanner_flags "-I${incdir}")
+ endforeach ()
+
+@@ -337,6 +346,13 @@ function(GI_INTROSPECT namespace nsversion header)
+ # Generate .gir
+ set(target_def "$<TARGET_PROPERTY:${opt_TARGET},COMPILE_DEFINITIONS>")
+ set(target_inc "$<TARGET_PROPERTY:${opt_TARGET},INTERFACE_INCLUDE_DIRECTORIES>")
++ # The target's INTERFACE_INCLUDE_DIRECTORIES are joined into -I flags on
++ # the g-ir-scanner command line below. Drop the bare host system include
++ # dirs (/usr/include, /usr/local/include) here too, otherwise -I/usr/include
++ # trips -Werror=poison-system-directories under the OpenEmbedded cross
++ # compiler. The sysroot include path is added automatically, so dropping
++ # them is safe.
++ set(target_inc "$<FILTER:${target_inc},EXCLUDE,^/usr/(local/)?include$>")
+ add_custom_command(
+ OUTPUT "${gir_path}"
+ COMMENT "Generating ${gir_name}.gir"
similarity index 98%
rename from meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.6.bb
rename to meta-oe/recipes-support/webkitgtk/webkitgtk3_2.52.4.bb
@@ -15,13 +15,14 @@ LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d842
SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \
file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
+ file://0001-FindGI-drop-bare-system-include-dirs-from-g-ir-scann.patch \
file://reproducibility.patch \
file://no-musttail-arm.patch \
file://sys_futex.patch \
file://fix-ftbfs-riscv64.patch \
file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \
"
-SRC_URI[sha256sum] = "2b281abf8894ffc6172152e5660b75eeeedbe1cc43d6783d09dc79f7c865bb42"
+SRC_URI[sha256sum] = "cf4076a1ca2a64788edca8c452d8ebb68d5e2965e588fe46a388a016513edce4"
inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen