kernel: add objtool to shared workdir when CONFIG_UNWINDER_ORC is set

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 ...

(From OE-Core rev: 7d4fdd3b95c949277f77df90bb2e8120b8d167ae)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Justin Bronder
2019-03-01 00:34:26 -05:00
committed by Richard Purdie
parent 3a5a49cad0
commit a2938316e3

View 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