Fix CC_HAS_ASM_GOTO_OUTPUT on non-x86 architectures
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 Sep 2025 15:54:12 +0000 (08:54 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 Sep 2025 15:54:12 +0000 (08:54 -0700)
commitfde0ab43b9a30d08817adc5402b69fec83a61cb8
treedf7ed0b83843bc239c9586da7b33c6673d1004a2
parente5f0a698b34ed76002dc5cff3804a61c80233a7a
Fix CC_HAS_ASM_GOTO_OUTPUT on non-x86 architectures

There's a silly problem with the CC_HAS_ASM_GOTO_OUTPUT test: even with
a working compiler it will fail on some architectures simply because it
uses the mnemonic "jmp" for testing the inline asm.

And as reported by Geert, not all architectures use that mnemonic, so
the test fails spuriously on such platforms (including arm and riscv,
but also several other architectures).

This issue avoided any obvious test failures because the build still
works thanks to falling back on the old non-asm-goto code, which just
generates worse code.

Just use an empty asm statement instead.

Reported-and-tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Fixes: e2ffa15b9baa ("kbuild: Disable CC_HAS_ASM_GOTO_OUTPUT on clang < 17")
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
init/Kconfig