Re: "arm64: Silence gcc warnings about arch ABI drift" breaks clang

From: Nathan Chancellor
Date: Fri Jun 07 2019 - 11:44:29 EST


On Fri, Jun 07, 2019 at 11:26:11AM -0400, Qian Cai wrote:
> On Fri, 2019-06-07 at 16:25 +0100, Will Deacon wrote:
> > On Fri, Jun 07, 2019 at 11:22:45AM -0400, Qian Cai wrote:
> > > The linux-next commit "arm64: Silence gcc warnings about arch ABI drift" [1]
> > > breaks clang build where it screams that unknown option "-Wno-psabi" and
> > > generates errors below,
> >
> > So that can be easily fixed with cc-option...
> >
> > > [1] https://lore.kernel.org/linux-arm-kernel/1559817223-32585-1-git-send-ema
> > > il-D
> > > ave.Martin@xxxxxxx/
> > >
> > > ./drivers/firmware/efi/libstub/arm-stub.stub.o: In function
> > > `install_memreserve_table':
> > > ./linux/drivers/firmware/efi/libstub/arm-stub.c:73: undefined reference to
> > > `__efistub___stack_chk_guard'
> > > ./linux/drivers/firmware/efi/libstub/arm-stub.c:73: undefined reference to
> > > `__efistub___stack_chk_guard'
> > > ./linux/drivers/firmware/efi/libstub/arm-stub.c:93: undefined reference to
> > > `__efistub___stack_chk_guard'
> > > ./linux/drivers/firmware/efi/libstub/arm-stub.c:93: undefined reference to
> > > `__efistub___stack_chk_guard'
> > > ./linux/drivers/firmware/efi/libstub/arm-stub.c:94: undefined reference to
> > > `__efistub___stack_chk_fail
> >
> > ... but this looks unrelated. Are you saying you don't see these errors if
> > you revert Dave's patch?
>
> Yes.

I suspect the reason for this is -Wunknown-warning-option causes
cc-option to fail. I see some disabled warnings like
-Waddress-of-packed-member and -Wunused-const-variable when -Wno-psabi
is unconditionally added.

I'll do some further triage but I think the obvious fix as Will
suggested is to use cc-disable-warning. I'll send a patch.

Cheers,
Nathan