[PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0

Miguel Ojeda posted 1 patch 3 months, 1 week ago
arch/loongarch/Makefile | 2 +-
arch/x86/Makefile       | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
[PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
Posted by Miguel Ojeda 3 months, 1 week ago
Rust 1.93.0 (expected 2026-01-22) is stabilizing `-Zno-jump-tables`
[1][2] as `-Cjump-tables=n` [3].

Without this change, one would eventually see:

      RUSTC L rust/core.o
    error: unknown unstable option: `no-jump-tables`

Thus support the upcoming version.

Link: https://github.com/rust-lang/rust/issues/116592 [1]
Link: https://github.com/rust-lang/rust/pull/105812 [2]
Link: https://github.com/rust-lang/rust/pull/145974 [3]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
 arch/loongarch/Makefile | 2 +-
 arch/x86/Makefile       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
index dc5bd3f1b8d2..96ca1a688984 100644
--- a/arch/loongarch/Makefile
+++ b/arch/loongarch/Makefile
@@ -109,7 +109,7 @@ endif
 ifdef CONFIG_RUSTC_HAS_ANNOTATE_TABLEJUMP
 KBUILD_RUSTFLAGS		+= -Cllvm-args=--loongarch-annotate-tablejump
 else
-KBUILD_RUSTFLAGS		+= -Zno-jump-tables # keep compatibility with older compilers
+KBUILD_RUSTFLAGS		+= $(if $(call rustc-min-version,109300),-Cjump-tables=n,-Zno-jump-tables) # keep compatibility with older compilers
 endif
 ifdef CONFIG_LTO_CLANG
 # The annotate-tablejump option can not be passed to LLVM backend when LTO is enabled.
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 4db7e4bf69f5..c60371db49d9 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -98,7 +98,7 @@ ifeq ($(CONFIG_X86_KERNEL_IBT),y)
 #   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104816
 #
 KBUILD_CFLAGS += $(call cc-option,-fcf-protection=branch -fno-jump-tables)
-KBUILD_RUSTFLAGS += -Zcf-protection=branch -Zno-jump-tables
+KBUILD_RUSTFLAGS += -Zcf-protection=branch $(if $(call rustc-min-version,109300),-Cjump-tables=n,-Zno-jump-tables)
 else
 KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
 endif

base-commit: dcb6fa37fd7bc9c3d2b066329b0d27dedf8becaa
-- 
2.51.2
Re: [PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
Posted by Miguel Ojeda 3 months ago
On Sat, Nov 1, 2025 at 10:40 AM Miguel Ojeda <ojeda@kernel.org> wrote:
>
> Rust 1.93.0 (expected 2026-01-22) is stabilizing `-Zno-jump-tables`
> [1][2] as `-Cjump-tables=n` [3].
>
> Without this change, one would eventually see:
>
>       RUSTC L rust/core.o
>     error: unknown unstable option: `no-jump-tables`
>
> Thus support the upcoming version.
>
> Link: https://github.com/rust-lang/rust/issues/116592 [1]
> Link: https://github.com/rust-lang/rust/pull/105812 [2]
> Link: https://github.com/rust-lang/rust/pull/145974 [3]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

It got stabilized and merged upstream.

Applied to `rust-fixes` -- thanks everyone!

Cheers,
Miguel
Re: [PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
Posted by Trevor Gross 3 months, 1 week ago
On Sat Nov 1, 2025 at 4:40 AM CDT, Miguel Ojeda wrote:
> Rust 1.93.0 (expected 2026-01-22) is stabilizing `-Zno-jump-tables`
> [1][2] as `-Cjump-tables=n` [3].
>
> Without this change, one would eventually see:
>
>       RUSTC L rust/core.o
>     error: unknown unstable option: `no-jump-tables`
>
> Thus support the upcoming version.
>
> Link: https://github.com/rust-lang/rust/issues/116592 [1]
> Link: https://github.com/rust-lang/rust/pull/105812 [2]
> Link: https://github.com/rust-lang/rust/pull/145974 [3]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Reviewed-by: Trevor Gross <tmgross@umich.edu>

> ---
>  arch/loongarch/Makefile | 2 +-
>  arch/x86/Makefile       | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> index dc5bd3f1b8d2..96ca1a688984 100644
> --- a/arch/loongarch/Makefile
> +++ b/arch/loongarch/Makefile
> @@ -109,7 +109,7 @@ endif
>  ifdef CONFIG_RUSTC_HAS_ANNOTATE_TABLEJUMP
>  KBUILD_RUSTFLAGS		+= -Cllvm-args=--loongarch-annotate-tablejump
>  else
> -KBUILD_RUSTFLAGS		+= -Zno-jump-tables # keep compatibility with older compilers
> +KBUILD_RUSTFLAGS		+= $(if $(call rustc-min-version,109300),-Cjump-tables=n,-Zno-jump-tables) # keep compatibility with older compilers
>  endif
>  ifdef CONFIG_LTO_CLANG
>  # The annotate-tablejump option can not be passed to LLVM backend when LTO is enabled.
> diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> index 4db7e4bf69f5..c60371db49d9 100644
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -98,7 +98,7 @@ ifeq ($(CONFIG_X86_KERNEL_IBT),y)
>  #   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104816
>  #
>  KBUILD_CFLAGS += $(call cc-option,-fcf-protection=branch -fno-jump-tables)
> -KBUILD_RUSTFLAGS += -Zcf-protection=branch -Zno-jump-tables
> +KBUILD_RUSTFLAGS += -Zcf-protection=branch $(if $(call rustc-min-version,109300),-Cjump-tables=n,-Zno-jump-tables)
>  else
>  KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
>  endif
>
> base-commit: dcb6fa37fd7bc9c3d2b066329b0d27dedf8becaa
Re: [PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
Posted by Nicolas Schier 3 months, 1 week ago
On Sat, Nov 01, 2025 at 10:40:11AM +0100, Miguel Ojeda wrote:
> Rust 1.93.0 (expected 2026-01-22) is stabilizing `-Zno-jump-tables`
> [1][2] as `-Cjump-tables=n` [3].
> 
> Without this change, one would eventually see:
> 
>       RUSTC L rust/core.o
>     error: unknown unstable option: `no-jump-tables`
> 
> Thus support the upcoming version.
> 
> Link: https://github.com/rust-lang/rust/issues/116592 [1]
> Link: https://github.com/rust-lang/rust/pull/105812 [2]
> Link: https://github.com/rust-lang/rust/pull/145974 [3]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
> ---
>  arch/loongarch/Makefile | 2 +-
>  arch/x86/Makefile       | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 

Acked-by: Nicolas Schier <nsc@kernel.org>

-- 
Nicolas
Re: [PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
Posted by Alice Ryhl 3 months, 1 week ago
On Sat, Nov 1, 2025 at 10:40 AM Miguel Ojeda <ojeda@kernel.org> wrote:
>
> Rust 1.93.0 (expected 2026-01-22) is stabilizing `-Zno-jump-tables`
> [1][2] as `-Cjump-tables=n` [3].
>
> Without this change, one would eventually see:
>
>       RUSTC L rust/core.o
>     error: unknown unstable option: `no-jump-tables`
>
> Thus support the upcoming version.
>
> Link: https://github.com/rust-lang/rust/issues/116592 [1]
> Link: https://github.com/rust-lang/rust/pull/105812 [2]
> Link: https://github.com/rust-lang/rust/pull/145974 [3]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Does this need a CC stable too?

Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Re: [PATCH] rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
Posted by Miguel Ojeda 3 months, 1 week ago
On Sat, Nov 1, 2025 at 12:15 PM Alice Ryhl <aliceryhl@google.com> wrote:
>
> Does this need a CC stable too?

Definitely -- I just forgot my usual line:

Cc: stable@vger.kernel.org # Needed in 6.12.y and later (Rust is
pinned in older LTSs).

Thanks!

I will apply this when upstream's PR gets merged and send it together
with a couple other fixes.

Cheers,
Miguel