Messages in this thread Patch in this message | | | Date | Wed, 15 Feb 2017 10:59:02 -0800 | From | Jessica Yu <> | Subject | Re: [PATCH] objtool: fix CONFIG_STACK_VALIDATION warning for out-of-tree modules |
| |
+++ Josh Poimboeuf [15/02/17 12:21 -0600]: >When building a CONFIG_STACK_VALIDATION enabled kernel without the >libelf devel package installed, the Makefile prints a warning: > > "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel" > >But when building an out-of-tree module, the warning doesn't show. >Instead it tries to use objtool, and the build fails with: > > /bin/sh: ./tools/objtool/objtool: No such file or directory > >Make sure the warning and the disabling of objtool occur in all cases, >by moving the CONFIG_STACK_VALIDATION checks outside the 'ifeq >($(KBUILD_EXTMOD),)' block in the Makefile. > >Reported-by: Marc MERLIN <marc@merlins.org> >Suggested-by: Jessica Yu <jeyu@redhat.com> >Fixes: 3b27a0c85d70 ("objtool: Detect and warn if libelf is missing and don't break the build") >Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
With this patch the warning now prints for OOT modules, and more importantly, the build no longer breaks for them, so:
Reviewed-by: Jessica Yu <jeyu@redhat.com>
>--- > Makefile | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > >diff --git a/Makefile b/Makefile >index 8e223e0..bcf7036 100644 >--- a/Makefile >+++ b/Makefile >@@ -908,6 +908,18 @@ mod_sign_cmd = true > endif > export mod_sign_cmd > >+ifdef CONFIG_STACK_VALIDATION >+ has_libelf := $(call try-run,\ >+ echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) >+ ifeq ($(has_libelf),1) >+ objtool_target := tools/objtool FORCE >+ else >+ $(warning "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel") >+ SKIP_STACK_VALIDATION := 1 >+ export SKIP_STACK_VALIDATION >+ endif >+endif >+ > > ifeq ($(KBUILD_EXTMOD),) > core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ >@@ -1035,18 +1047,6 @@ prepare0: archprepare gcc-plugins > # All the preparing.. > prepare: prepare0 prepare-objtool > >-ifdef CONFIG_STACK_VALIDATION >- has_libelf := $(call try-run,\ >- echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) >- ifeq ($(has_libelf),1) >- objtool_target := tools/objtool FORCE >- else >- $(warning "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel") >- SKIP_STACK_VALIDATION := 1 >- export SKIP_STACK_VALIDATION >- endif >-endif >- > PHONY += prepare-objtool > prepare-objtool: $(objtool_target) > >-- >2.7.4 >
| |