summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2021-11-23 16:57:31 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-11-24 09:55:05 +0000
commit0ad2b69dace6ac851c1f0bdae6a3c41045fc2d1d (patch)
tree676855f1ebd423f5bfa3466b1c6e9469a8ba71e3
parent3356c5e7acc86be2e1584819a70e984d984b0d9c (diff)
downloadopenembedded-core-contrib-0ad2b69dace6ac851c1f0bdae6a3c41045fc2d1d.tar.gz
kernel-yocto: conditionally enable stack protection checking on x86-64
The kernel Makfile uses pkgconfig to check for libelf when enabling CONFIG_STACK_VALIDATION. We already have libelf in our DEPENDS, but the kernel Makefiles hardcode 'pkgconfig', so fail to pick up our pkgconfig-native binary that would report the correct flags and paths for libelf support. Rather than patching the kernel Makefile's to use pkgconfig-native, we can use the KERNEL_EXTRA_ARGS variable to pass the definition of HOST_LIBELF_LIBS via the kernel build commmand line. We conditionally set HOST_LIBELF_LIBS based on "stack" being in a newly introduced variable KERNEL_DEBUG_OPTIONS. The value of HOST_LIBELF_LIBS is the same as pkgconfig-native would set in a kernel build (but we cannot call pkgconfig at the point this variable is set). Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/linux/linux-yocto.inc4
1 files changed, 4 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc
index 331727d62c..15fc7ff724 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -46,6 +46,7 @@ LINUX_VERSION_EXTENSION ??= "-yocto-${LINUX_KERNEL_TYPE}"
# Pick up shared functions
inherit kernel
inherit kernel-yocto
+inherit pkgconfig
B = "${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build"
@@ -57,3 +58,6 @@ do_install:append(){
# enable kernel-sample for oeqa/runtime/cases's ksample.py test
KERNEL_FEATURES:append:qemuall=" features/kernel-sample/kernel-sample.scc"
+
+KERNEL_DEBUG_OPTIONS ?= "stack"
+KERNEL_EXTRA_ARGS:append:x86-64 = "${@bb.utils.contains('KERNEL_DEBUG_OPTIONS', 'stack', 'HOST_LIBELF_LIBS="-L${RECIPE_SYSROOT_NATIVE}/usr/lib/pkgconfig/../../../usr/lib/ -lelf"', '', d)}"