All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] x86: Don't include '-Wa,-' when building with Clang
@ 2018-10-23  0:37 Nathan Chancellor
       [not found] ` <F3BBC06A-A9CB-4ABF-ADF4-6B0971FAE364@vmware.com>
  0 siblings, 1 reply; 9+ messages in thread
From: Nathan Chancellor @ 2018-10-23  0:37 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, Borislav Petkov
  Cc: H. Peter Anvin, x86, linux-kernel, Nadav Amit, Kees Cook,
	Masahiro Yamada, Nick Desaulniers, Nathan Chancellor

Commit 77b0bf55bc67 ("kbuild/Makefile: Prepare for using macros in
inline assembly code to work around asm() related GCC inlining bugs")
added this flag to KBUILD_CFLAGS, where it works perfectly fine with
GCC. However, when building with Clang, all of the object files compile
fine but the build hangs indefinitely at init/main.o, right before the
linking stage. Don't include this flag when building with Clang.

The kernel builds and boots to a shell in QEMU with both GCC and Clang
with this patch applied.

Link: https://github.com/ClangBuiltLinux/linux/issues/213
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---

The reason this patch is labeled RFC is while I can verify that this
fixes the issue, I'm not entirely sure why the '-Wa,-' works for GCC
and not Clang. I looked into what the flag means and I couldn't really
find anything so I just assume it's taking input from stdin? The issue
could stem from how GCC forks gas versus how Clang does it. If this
isn't of concern and the maintainers are happy with this patch as is,
feel free to take it.

 arch/x86/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 5b562e464009..4736dcc1caec 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -239,7 +239,10 @@ archheaders:
 archmacros:
 	$(Q)$(MAKE) $(build)=arch/x86/kernel arch/x86/kernel/macros.s
 
-ASM_MACRO_FLAGS = -Wa,arch/x86/kernel/macros.s -Wa,-
+ASM_MACRO_FLAGS = -Wa,arch/x86/kernel/macros.s
+ifneq ($(cc-name),clang)
+ASM_MACRO_FLAGS += -Wa,-
+endif
 export ASM_MACRO_FLAGS
 KBUILD_CFLAGS += $(ASM_MACRO_FLAGS)
 
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-10-23 23:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-23  0:37 [PATCH RFC] x86: Don't include '-Wa,-' when building with Clang Nathan Chancellor
     [not found] ` <F3BBC06A-A9CB-4ABF-ADF4-6B0971FAE364@vmware.com>
2018-10-23 18:40   ` Nick Desaulniers
2018-10-23 20:01     ` H. Peter Anvin
2018-10-23 21:58       ` Nathan Chancellor
2018-10-23 22:04         ` hpa
2018-10-23 22:08         ` Nick Desaulniers
2018-10-23 22:44           ` Nathan Chancellor
2018-10-23 22:53             ` Nick Desaulniers
2018-10-23 23:01               ` hpa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.