On Mon, Jan 09, 2023 at 02:12:55PM -0800, Nick Desaulniers wrote: > On Wed, Jan 4, 2023 at 11:55 AM Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > > > > When clang's -Qunused-arguments is dropped from KBUILD_CPPFLAGS, it > > warns: > > > > clang-16: error: argument unused during compilation: '-fno-stack-clash-protection' [-Werror,-Wunused-command-line-argument] > > > > This flag is supported for 64-bit powerpc but not 32-bit, hence the warning. > > Just remove the flag from vgettimeofday-32.o's CFLAGS when using clang, as has > > been done for other flags previously. > > > > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > > Hmm...so this was added by the top level Makefile doing a cc-option > test. How did the test pass if this was unsupported? That worries me > that perhaps other cc-option tests are passing erroneously for certain > ppc -m32/-m64 configs? Sure, that is a reasonable concern. I should have expanded upon this a little bit more in the commit message. Is this any better? When clang's -Qunused-arguments is dropped from KBUILD_CPPFLAGS, it warns: clang-16: error: argument unused during compilation: '-fno-stack-clash-protection' [-Werror,-Wunused-command-line-argument] This warning happens because vgettimeofday-32.c gets its base CFLAGS from the main kernel, which may contain flags that are only supported on a 64-bit target but not a 32-bit one, which is the case here. -fstack-clash-protection and its negation are only suppported by the 64-bit powerpc target but that flag is included in an invocation for a 32-bit powerpc target, so clang points out that while the flag is one that it recognizes, it is not actually used by this compiler job. To eliminate the warning, remove -fno-stack-clash-protection from vgettimeofday-32.c's CFLAGS when using clang, as has been done for other flags previously. Cheers, Nathan > > --- > > Cc: mpe@xxxxxxxxxxxxxx > > Cc: npiggin@xxxxxxxxx > > Cc: christophe.leroy@xxxxxxxxxx > > Cc: linuxppc-dev@xxxxxxxxxxxxxxxx > > --- > > arch/powerpc/kernel/vdso/Makefile | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/arch/powerpc/kernel/vdso/Makefile b/arch/powerpc/kernel/vdso/Makefile > > index 769b62832b38..4ee7d36ce752 100644 > > --- a/arch/powerpc/kernel/vdso/Makefile > > +++ b/arch/powerpc/kernel/vdso/Makefile > > @@ -16,6 +16,11 @@ ifneq ($(c-gettimeofday-y),) > > CFLAGS_vgettimeofday-32.o += -ffreestanding -fasynchronous-unwind-tables > > CFLAGS_REMOVE_vgettimeofday-32.o = $(CC_FLAGS_FTRACE) > > CFLAGS_REMOVE_vgettimeofday-32.o += -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc > > + # This flag is supported by clang for 64-bit but not 32-bit so it will cause > > + # an unused command line flag warning for this file. > > + ifdef CONFIG_CC_IS_CLANG > > + CFLAGS_REMOVE_vgettimeofday-32.o += -fno-stack-clash-protection > > + endif > > CFLAGS_vgettimeofday-64.o += -include $(c-gettimeofday-y) > > CFLAGS_vgettimeofday-64.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) > > CFLAGS_vgettimeofday-64.o += $(call cc-option, -fno-stack-protector) > > > > -- > > 2.39.0 > > > > -- > Thanks, > ~Nick Desaulniers