On Fri, Oct 12, 2018 at 06:03:49PM -0700, Nathan Chancellor wrote: > When building the kernel with Clang, some disabled warnings appear > because this Makefile overrides KBUILD_CFLAGS for x86{,_64}. Add them to > this list so that the build is clean again. > > -Wpointer-sign was disabled for the whole kernel before the beginning > of git history. > > -Waddress-of-packed-member was disabled for the whole kernel in > commit bfb38988c51e ("kbuild: clang: Disable 'address-of-packed-member' > warning") and for x86/boot/compressed in commit 20c6c1890455 ("x86/boot: > Disable the address-of-packed-member compiler warning"). > > -Wgnu was disabled for the whole kernel in commit 61163efae020 ("kbuild: > LLVMLinux: Add Kbuild support for building kernel with Clang") and for > x86/boot/compressed in commit 6c3b56b19730 ("x86/boot: Disable Clang > warnings about GNU extensions"). > > Link: https://github.com/ClangBuiltLinux/linux/issues/112 > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > > Nick expressed concern that this Makefile is overwriting KBUILD_CFLAGS > and suggested potentially rewriting the x86 portion of this Makefile to > behave like the arm/arm64 one where problematic flags are filtered out. > While that comes to fruition, it would be nice for this folder to behave > like the rest of the kernel when it comes to this warnings so that the > build is cleaner, thus this patch. > > drivers/firmware/efi/libstub/Makefile | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > index c51627660dbb..d9845099635e 100644 > --- a/drivers/firmware/efi/libstub/Makefile > +++ b/drivers/firmware/efi/libstub/Makefile > @@ -9,7 +9,10 @@ cflags-$(CONFIG_X86_32) := -march=i386 > cflags-$(CONFIG_X86_64) := -mcmodel=small > cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \ > -fPIC -fno-strict-aliasing -mno-red-zone \ > - -mno-mmx -mno-sse -fshort-wchar > + -mno-mmx -mno-sse -fshort-wchar \ > + -Wno-pointer-sign \ > + $(call cc-disable-warning, address-of-packed-member) \ > + $(call cc-disable-warning, gnu) > > # arm64 uses the full KBUILD_CFLAGS so it's necessary to explicitly > # disable the stackleak plugin > -- > 2.19.1 > + Sedat for review/testing.