diff --git a/classes/kernel.oeclass b/classes/kernel.oeclass
index a9572b6..26a15cc 100644
--- a/classes/kernel.oeclass
+++ b/classes/kernel.oeclass
@@ -53,10 +53,10 @@ do_compile_kernel () {
 	fi
 
 	oe_runmake include/linux/version.h
-	oe_runmake ${USE_kernel_imagetype}
+	oe_runmake ${USE_kernel_imagetype} HOSTCFLAGS="${BUILD_CFLAGS}" HOSTCPPFLAGS="${BUILD_CPPFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}"
 
 	if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
-		oe_runmake modules
+		oe_runmake modules HOSTCFLAGS="${BUILD_CFLAGS}" HOSTCPPFLAGS="${BUILD_CPPFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}"
 	else
 		oenote "no modules to compile"
 	fi
@@ -74,6 +74,7 @@ do_compile () {
 }
 
 CLASS_DEPENDS += "${KERNEL_UIMAGE_DEPENDS}"
+CLASS_DEPENDS:>BUILD_OS_darwin = " native:libelf"
 KERNEL_UIMAGE_DEPENDS = "${@['', 'native:u-boot-tools-mkimage']['${USE_kernel_imagetype}' == 'uImage']}"
 
 CLASS_FLAGS += "kernel_uimage \
