]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel: add objtool to shared workdir when CONFIG_UNWINDER_ORC is set
authorJustin Bronder <jsbronder@cold-front.org>
Fri, 1 Mar 2019 05:34:26 +0000 (00:34 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 1 Mar 2019 07:12:40 +0000 (07:12 +0000)
Based on: https://patchwork.openembedded.org/patch/148047/

When x86_64 enables CONFIG_UNWINDER_ORC [ORC (Oops Rewind Capability)
unwinder for unwinding kernel stack traces], objtool is required to
generate the required information.

If we don't copy objtool to the shared workdir, out-of-tree modules
cannot generate object files.

For instance, meta-skeleton/hello-mod fails with:
    | make[3]: *** No rule to make target 'tools/objtool/objtool', needed by ...

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel.bbclass

index a5b1df1b0dce88b4193e183f05b3a69ee3e427db..9da9818962fa4f1870a3c299211ca0956cb5e2fa 100644 (file)
@@ -487,6 +487,15 @@ do_shared_workdir () {
                mkdir -p $kerneldir/arch/${ARCH}/include/generated/
                cp -fR arch/${ARCH}/include/generated/* $kerneldir/arch/${ARCH}/include/generated/
        fi
+
+       if (grep -q -i -e '^CONFIG_UNWINDER_ORC=y$' $kerneldir/.config); then
+               # With CONFIG_UNWINDER_ORC (the default in 4.14), objtool is required for
+               # out-of-tree modules to be able to generate object files.
+               if [ -x tools/objtool/objtool ]; then
+                       mkdir -p ${kerneldir}/tools/objtool
+                       cp tools/objtool/objtool ${kerneldir}/tools/objtool/
+               fi
+       fi
 }
 
 # We don't need to stage anything, not the modules/firmware since those would clash with linux-firmware