You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
x86/kbuild/64: Restrict clang versions that can use '-march=native'
There are two issues that can appear when building with clang and
'-march=native'.
The first issue is a compiler crash in the ipv6 stack with clang-18,
such as when building allmodconfig. This was frequently reported on the
LLVM issue tracker:
# Link: https://github.com/llvm/llvm-project/issues?q=is%3Aissue%20ip6_rcv_core
Stack dump:
0. Program arguments: clang ... -march=native ... net/ipv6/ip6_input.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'net/ipv6/ip6_input.c'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@ip6_rcv_core'
The second issue is certain -Wframe-larger-than warnings that appear
with clang versions prior to 19, which introduced an optimization that
produces much better code:
# Link: llvm/llvm-project@90ba330 [2]
clang-18:
drivers/media/pci/saa7164/saa7164-core.c:605:20: error: stack frame size (2392) exceeds limit (2048) in 'saa7164_irq' [-Werror,-Wframe-larger-than]
605 | static irqreturn_t saa7164_irq(int irq, void *dev_id)
| ^
clang-19:
drivers/media/pci/saa7164/saa7164-core.c:605:20: error: stack frame size (216) exceeds limit (128) in 'saa7164_irq' [-Werror,-Wframe-larger-than]
605 | static irqreturn_t saa7164_irq(int irq, void *dev_id)
| ^
Restrict the testing of the availability of '-march=native' to all
supported GCC versions and clang-19 and newer to avoid these known
resolved issues.
Fixes: 0480bc7 ("x86/kbuild/64: Add the CONFIG_X86_NATIVE_CPU option to locally optimize the kernel with '-march=native'")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Tor Vic <torvic9@mailbox.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250324-x86-march-native-clang-19-and-newer-v1-1-3a05ed32a89e@kernel.org
0 commit comments