On Thu, Sep 27, 2018 at 01:47:58PM -0700, [email protected] wrote: > Early prototypes of Clang with asm goto support produce 6 instances of > the following warning: > > In file included from arch/x86/boot/compressed/misc.h:20: > In file included from ./include/linux/elf.h:5: > In file included from ./arch/x86/include/asm/elf.h:8: > In file included from ./include/linux/thread_info.h:38: > In file included from ./arch/x86/include/asm/thread_info.h:53: > ./arch/x86/include/asm/cpufeature.h:150:2: warning: "Compiler lacks > ASM_GOTO support. Add -D __BPF_TRACING__ to your compiler arguments" > [-W#warnings] > your compiler arguments" > ^ > > Since 6 files under arch/x86/boot/compressed/ include > arch/x86/boot/compressed/misc.h AND > arch/x86/boot/compressed/Makefile happens to redefine KBUILD_CFLAGS, > which set these variables in the top level MAKEFILE. > > Suggested-by: Borislav Petkov <[email protected]> > Signed-off-by: Nick Desaulniers <[email protected]> > --- > v1 -> v2: > Updated commit message to provide more context as per Borislav. > > arch/x86/boot/compressed/Makefile | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/x86/boot/compressed/Makefile > b/arch/x86/boot/compressed/Makefile > index 28764dacf018..158c0b4e178a 100644 > --- a/arch/x86/boot/compressed/Makefile > +++ b/arch/x86/boot/compressed/Makefile > @@ -56,6 +56,13 @@ KBUILD_LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z > noreloc-overflow" \ > endif > LDFLAGS_vmlinux := -T > > +# check for 'asm goto' > +ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) > $(KBUILD_CFLAGS)), y) > + CC_HAVE_ASM_GOTO := 1 > + KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO > + KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO > +endif
I would still like to know why can't we do the -D_SETUP thing here: https://lkml.kernel.org/r/[email protected] instead of polluting this Makefile with defines which are not really needed in the compressed kernel build, except to silence build warnings. I mean, we can perpetuate that ugly hack and do: #define __BPF_TRACING__ here in arch/x86/boot/compressed/misc.h which we could kill once clang can do asm goto... Hmm. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.

