[PATCH 08/14] powerpc/vdso: Remove an unsupported flag from vgettimeofday-32.o with clang
Nathan Chancellor
nathan at kernel.org
Tue Jan 10 09:38:15 AEDT 2023
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 at kernel.org> 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 at kernel.org>
>
> 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 at ellerman.id.au
> > Cc: npiggin at gmail.com
> > Cc: christophe.leroy at csgroup.eu
> > Cc: linuxppc-dev at lists.ozlabs.org
> > ---
> > 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
More information about the Linuxppc-dev
mailing list