new file mode 100644
@@ -0,0 +1,65 @@
+From e48021f480428b5e34d299261029bfafdf0e3a2f Mon Sep 17 00:00:00 2001
+From: Vincent Davis Jr <vince@underview.tech>
+Date: Sun, 11 May 2025 19:57:46 -0400
+Subject: [PATCH] Makefile: add KCFLAGS to build with Yocto SDK
+
+Upstream-Status: Pending
+
+When running
+
+make -C \
+"${SDKTARGETSYSROOT}/lib/modules/<kernel version>/build" \
+modules_prepare
+
+Issues that are encountered include
+
+make -f ./Makefile syncconfig
+make -f ./scripts/Makefile.build obj=scripts/basic
+ 92 | #include <sys/types.h>
+ | ^~~~~~~~~~~~~
+compilation terminated.
+
+ld: cannot find Scrt1.o: No such file or directory
+ld: cannot find crti.o: No such file or directory
+ld: cannot find crtbeginS.o: No such file or directory
+ld: cannot find -lgcc: No such file or directory
+ld: cannot find -lgcc_s: No such file or directory
+ld: cannot find -lc: No such file or directory
+ld: cannot find -lgcc: No such file or directory
+ld: cannot find -lgcc_s: No such file or directory
+ld: cannot find crtendS.o: No such file or directory
+ld: cannot find crtn.o: No such file or directory
+
+Solved by setting KCFLAGS as the yocto project SDK
+KCFLAGS is set to --sysroot="${SDKTARGETSYSROOT}".
+
+Signed-off-by: Vincent Davis Jr <vince@underview.tech>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 64c514f4bc19..bbe7b0503841 100644
+--- a/Makefile
++++ b/Makefile
+@@ -459,7 +459,7 @@ HOSTRUSTC = rustc
+ HOSTPKG_CONFIG = pkg-config
+
+ KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
+- -O2 -fomit-frame-pointer -std=gnu11
++ -O2 -fomit-frame-pointer -std=gnu11 $(KCFLAGS)
+ KBUILD_USERCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
+ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
+
+@@ -491,7 +491,7 @@ KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS) \
+ -I $(srctree)/scripts/include
+ KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \
+ -Zallow-features= $(HOSTRUSTFLAGS)
+-KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
++KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS) $(KCFLAGS)
+ KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
+ KBUILD_PROCMACROLDFLAGS := $(or $(PROCMACROLDFLAGS),$(KBUILD_HOSTLDFLAGS))
+
+--
+2.43.0
+
@@ -20,6 +20,10 @@ KMETA = "kernel-meta"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=master;destsuffix=${KMETA};protocol=https"
+# Appears to be the only way to build out-of-tree
+# kernel drivers with the yocto project SDK.
+SRC_URI += "file://0001-Makefile-add-KCFLAGS-to-build-with-Yocto-SDK.patch"
+
# Set default SRCREVs. Both the machine and meta SRCREVs are statically set
# to the korg v3.7 tag, and hence prevent network access during parsing. If
# linux-yocto-dev is the preferred provider, they will be overridden to
@@ -20,6 +20,10 @@ SRCREV_meta ?= "a50ff542f8d79235030741f9e850d34768907d2d"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=${KMETA};protocol=https"
+# Appears to be the only way to build out-of-tree
+# kernel drivers with the yocto project SDK.
+SRC_URI += "file://0001-Makefile-add-KCFLAGS-to-build-with-Yocto-SDK.patch"
+
LINUX_VERSION ?= "6.12.27"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
@@ -25,6 +25,10 @@ PV = "${LINUX_VERSION}+git"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=${KMETA};protocol=https"
+# Appears to be the only way to build out-of-tree
+# kernel drivers with the yocto project SDK.
+SRC_URI += "file://0001-Makefile-add-KCFLAGS-to-build-with-Yocto-SDK.patch"
+
COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$"
# Functionality flags
@@ -43,6 +43,10 @@ KBRANCH:class-devupstream = "v6.12/base"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=${KMETA};protocol=https"
+# Appears to be the only way to build out-of-tree
+# kernel drivers with the yocto project SDK.
+SRC_URI += "file://0001-Makefile-add-KCFLAGS-to-build-with-Yocto-SDK.patch"
+
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
LINUX_VERSION ?= "6.12.27"
Attached patch enables the compilation of out-of-tree drivers whilst utilizing the Yocto built SDK. Signed-off-by: Vincent Davis Jr <vince@underview.tech> --- ...-add-KCFLAGS-to-build-with-Yocto-SDK.patch | 65 +++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto-dev.bb | 4 ++ .../linux/linux-yocto-rt_6.12.bb | 4 ++ .../linux/linux-yocto-tiny_6.12.bb | 4 ++ meta/recipes-kernel/linux/linux-yocto_6.12.bb | 4 ++ 5 files changed, 81 insertions(+) create mode 100644 meta/recipes-kernel/linux/files/0001-Makefile-add-KCFLAGS-to-build-with-Yocto-SDK.patch