Re: [PATCH 2/7] Makefile, x86, LLVM: disable unsupported optimization flags
From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2017-03-17 21:43:13
Also in:
linux-crypto, linux-kbuild, lkml
On 03/16/17 17:15, Michael Davidson wrote:
quoted hunk ↗ jump to hunk
Unfortunately, while clang generates a warning about these flags being unsupported it still exits with a status of 0 so we have to explicitly disable them instead of just using a cc-option check. Signed-off-by: Michael Davidson <redacted> --- Makefile | 2 ++ arch/x86/Makefile | 2 ++ 2 files changed, 4 insertions(+)diff --git a/Makefile b/Makefile index b21fd0ca2946..5e97e5fc1eea 100644 --- a/Makefile +++ b/Makefile@@ -629,7 +629,9 @@ ARCH_AFLAGS := ARCH_CFLAGS := include arch/$(SRCARCH)/Makefile +ifneq ($(cc-name),clang) KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) +endif KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATIONdiff --git a/arch/x86/Makefile b/arch/x86/Makefile index 2d449337a360..894a8d18bf97 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile@@ -87,11 +87,13 @@ else KBUILD_AFLAGS += -m64 KBUILD_CFLAGS += -m64 +ifneq ($(cc-name),clang) # Align jump targets to 1 byte, not the default 16 bytes: KBUILD_CFLAGS += -falign-jumps=1 # Pack loops tightly as well: KBUILD_CFLAGS += -falign-loops=1 +endif # Don't autogenerate traditional x87 instructions KBUILD_CFLAGS += $(call cc-option,-mno-80387)
NAK. Fix your compiler, or use a wrapper script or something. It is absolutely *not* acceptable to disable this since future versions of clang *should* support that. That being said, it might make sense to look for a key pattern like "(un|not )supported" on stderr the try-run macro. Is there really no -Wno- or -Werror= option to turn off this craziness? -hpa