* [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch
@ 2025-09-09 9:27 Tiezhu Yang
2025-09-09 9:27 ` [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile Tiezhu Yang
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-09 9:27 UTC (permalink / raw)
To: Huacai Chen, Miguel Ojeda
Cc: WANG Rui, rust-for-linux, loongarch, linux-kernel
This series is to fix objtool warnings when compiling with LLVM and
CONFIG_RUST is set, thanks WANG Rui and Miguel for your suggestions
about RUST.
The second patch uses the option -Zno-jump-tables, here is a related
discussion:
https://github.com/rust-lang/rust/pull/145974#issuecomment-3236418282
Tiezhu Yang (2):
LoongArch: Make LTO case independent in Makefile
LoongArch: Handle jump tables option for RUST
arch/loongarch/Kconfig | 4 ++++
arch/loongarch/Makefile | 16 +++++++++++-----
2 files changed, 15 insertions(+), 5 deletions(-)
--
2.42.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-09 9:27 [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Tiezhu Yang
@ 2025-09-09 9:27 ` Tiezhu Yang
2025-09-20 6:15 ` Nathan Chancellor
2025-09-09 9:27 ` [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST Tiezhu Yang
2025-09-18 9:15 ` [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Huacai Chen
2 siblings, 1 reply; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-09 9:27 UTC (permalink / raw)
To: Huacai Chen, Miguel Ojeda
Cc: WANG Rui, rust-for-linux, loongarch, linux-kernel
LTO is not only used for Clang, it maybe used for Rust, make LTO case out
of CONFIG_CC_HAS_ANNOTATE_TABLEJUMP in Makefile.
This is preparation for later patch, no function changes.
Suggested-by: WANG Rui <wangrui@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
arch/loongarch/Makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
index a3a9759414f4..9d80af7f75c8 100644
--- a/arch/loongarch/Makefile
+++ b/arch/loongarch/Makefile
@@ -102,16 +102,16 @@ KBUILD_CFLAGS += $(call cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)
ifdef CONFIG_OBJTOOL
ifdef CONFIG_CC_HAS_ANNOTATE_TABLEJUMP
+KBUILD_CFLAGS += -mannotate-tablejump
+else
+KBUILD_CFLAGS += -fno-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.
# Ensure it is aware of linker with LTO, '--loongarch-annotate-tablejump' also needs to
# be passed via '-mllvm' to ld.lld.
-KBUILD_CFLAGS += -mannotate-tablejump
-ifdef CONFIG_LTO_CLANG
KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
endif
-else
-KBUILD_CFLAGS += -fno-jump-tables # keep compatibility with older compilers
-endif
endif
KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat -Ccode-model=small
--
2.42.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST
2025-09-09 9:27 [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Tiezhu Yang
2025-09-09 9:27 ` [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile Tiezhu Yang
@ 2025-09-09 9:27 ` Tiezhu Yang
2025-09-09 10:16 ` Miguel Ojeda
2025-09-18 9:15 ` [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Huacai Chen
2 siblings, 1 reply; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-09 9:27 UTC (permalink / raw)
To: Huacai Chen, Miguel Ojeda
Cc: WANG Rui, rust-for-linux, loongarch, linux-kernel
When compiling with LLVM and CONFIG_RUST is set, there exist objtool
warnings in rust/core.o and rust/kernel.o, like this:
rust/core.o: warning: objtool:
_RNvXs1_NtNtCs5QSdWC790r4_4core5ascii10ascii_charNtB5_9AsciiCharNtNtB9_3fmt5Debug3fmt+0x54:
sibling call from callable instruction with modified stack frame
For this special case, the related object file shows that there is no
generated relocation section '.rela.discard.tablejump_annotate' for the
table jump instruction jirl, thus objtool can not know that what is the
actual destination address.
If the rustc has the option "-Cllvm-args=--loongarch-annotate-tablejump",
pass the option to enable jump tables for objtool, otherwise it should
pass "-Zno-jump-tables" to keep compatibility with older rustc.
How to test:
$ rustup component add rust-src
$ make LLVM=1 rustavailable
$ make ARCH=loongarch LLVM=1 clean defconfig
$ scripts/config -d MODVERSIONS \
-e RUST -e SAMPLES -e SAMPLES_RUST \
-e SAMPLE_RUST_CONFIGFS -e SAMPLE_RUST_MINIMAL \
-e SAMPLE_RUST_MISC_DEVICE -e SAMPLE_RUST_PRINT \
-e SAMPLE_RUST_DMA -e SAMPLE_RUST_DRIVER_PCI \
-e SAMPLE_RUST_DRIVER_PLATFORM -e SAMPLE_RUST_DRIVER_FAUX \
-e SAMPLE_RUST_DRIVER_AUXILIARY -e SAMPLE_RUST_HOSTPROGS
$ make ARCH=loongarch LLVM=1 olddefconfig all
Reported-by: Miguel Ojeda <ojeda@kernel.org>
Closes: https://lore.kernel.org/rust-for-linux/CANiq72mNeCuPkCDrG2db3w=AX+O-zYrfprisDPmRac_qh65Dmg@mail.gmail.com/
Suggested-by: WANG Rui <wangrui@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
arch/loongarch/Kconfig | 4 ++++
arch/loongarch/Makefile | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index f0abc38c40ac..57933a717e92 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -298,6 +298,10 @@ config AS_HAS_LVZ_EXTENSION
config CC_HAS_ANNOTATE_TABLEJUMP
def_bool $(cc-option,-mannotate-tablejump)
+config RUSTC_HAS_ANNOTATE_TABLEJUMP
+ depends on RUST
+ def_bool $(rustc-option,-Cllvm-args=--loongarch-annotate-tablejump)
+
menu "Kernel type and options"
source "kernel/Kconfig.hz"
diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
index 9d80af7f75c8..b26d47707031 100644
--- a/arch/loongarch/Makefile
+++ b/arch/loongarch/Makefile
@@ -106,6 +106,12 @@ KBUILD_CFLAGS += -mannotate-tablejump
else
KBUILD_CFLAGS += -fno-jump-tables # keep compatibility with older compilers
endif
+ifdef CONFIG_RUSTC_HAS_ANNOTATE_TABLEJUMP
+# Pass '--loongarch-annotate-tablejump' via '-Cllvm-args' to rustc when RUST is enabled.
+KBUILD_RUSTFLAGS += -Cllvm-args=--loongarch-annotate-tablejump
+else
+KBUILD_RUSTFLAGS += -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.
# Ensure it is aware of linker with LTO, '--loongarch-annotate-tablejump' also needs to
--
2.42.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST
2025-09-09 9:27 ` [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST Tiezhu Yang
@ 2025-09-09 10:16 ` Miguel Ojeda
2025-09-09 18:06 ` Matthew Maurer
0 siblings, 1 reply; 15+ messages in thread
From: Miguel Ojeda @ 2025-09-09 10:16 UTC (permalink / raw)
To: Tiezhu Yang, Matthew Maurer
Cc: Huacai Chen, Miguel Ojeda, WANG Rui, rust-for-linux, loongarch,
linux-kernel
On Tue, Sep 9, 2025 at 11:27 AM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> +config RUSTC_HAS_ANNOTATE_TABLEJUMP
> + depends on RUST
> + def_bool $(rustc-option,-Cllvm-args=--loongarch-annotate-tablejump)
I am not sure if this needs the `depends on` -- from a quick test, it
seems to run regardless of it (and your `ifdef` below doesn't care
either). Cc'ing Matthew in case he remembers why the docs mention that
the Kconfig one should be guarded by `RUST_IS_AVAILABLE`.
In any case, it shouldn't hurt and it is only on the LoongArch Makefile.
If you will be taking this through the LoongArch tree:
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Thanks again for fixing this!
Cheers,
Miguel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST
2025-09-09 10:16 ` Miguel Ojeda
@ 2025-09-09 18:06 ` Matthew Maurer
2025-09-09 20:14 ` Miguel Ojeda
0 siblings, 1 reply; 15+ messages in thread
From: Matthew Maurer @ 2025-09-09 18:06 UTC (permalink / raw)
To: Miguel Ojeda
Cc: Tiezhu Yang, Huacai Chen, Miguel Ojeda, WANG Rui, rust-for-linux,
loongarch, linux-kernel
On Tue, Sep 9, 2025 at 3:16 AM Miguel Ojeda
<miguel.ojeda.sandonis@gmail.com> wrote:
>
> On Tue, Sep 9, 2025 at 11:27 AM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
> >
> > +config RUSTC_HAS_ANNOTATE_TABLEJUMP
> > + depends on RUST
> > + def_bool $(rustc-option,-Cllvm-args=--loongarch-annotate-tablejump)
>
> I am not sure if this needs the `depends on` -- from a quick test, it
> seems to run regardless of it (and your `ifdef` below doesn't care
> either). Cc'ing Matthew in case he remembers why the docs mention that
> the Kconfig one should be guarded by `RUST_IS_AVAILABLE`.
I think this isn't needed. I added it initially because Kconfig was
dying when `rustc` was not on the path, but I'm not sure how I managed
that, since `success,trap` should guard against that (perhaps I was
doing something wrong in earlier development, fixed it, and didn't
remove the restriction). I have tested `rustc-option` with an
intentionally missing `rustc`, and Kconfig doesn't seem to be taken
down (and it gets a no answer), so the change to the macro means that
doc warning should be removed.
>
> In any case, it shouldn't hurt and it is only on the LoongArch Makefile.
>
> If you will be taking this through the LoongArch tree:
>
> Acked-by: Miguel Ojeda <ojeda@kernel.org>
>
> Thanks again for fixing this!
>
> Cheers,
> Miguel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST
2025-09-09 18:06 ` Matthew Maurer
@ 2025-09-09 20:14 ` Miguel Ojeda
0 siblings, 0 replies; 15+ messages in thread
From: Miguel Ojeda @ 2025-09-09 20:14 UTC (permalink / raw)
To: Matthew Maurer
Cc: Tiezhu Yang, Huacai Chen, Miguel Ojeda, WANG Rui, rust-for-linux,
loongarch, linux-kernel
On Tue, Sep 9, 2025 at 8:06 PM Matthew Maurer <mmaurer@google.com> wrote:
>
> I think this isn't needed. I added it initially because Kconfig was
> dying when `rustc` was not on the path, but I'm not sure how I managed
> that, since `success,trap` should guard against that (perhaps I was
> doing something wrong in earlier development, fixed it, and didn't
> remove the restriction). I have tested `rustc-option` with an
> intentionally missing `rustc`, and Kconfig doesn't seem to be taken
> down (and it gets a no answer), so the change to the macro means that
> doc warning should be removed.
Yeah, that matches my test then, thanks! (and for the patch)
Cheers,
Miguel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch
2025-09-09 9:27 [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Tiezhu Yang
2025-09-09 9:27 ` [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile Tiezhu Yang
2025-09-09 9:27 ` [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST Tiezhu Yang
@ 2025-09-18 9:15 ` Huacai Chen
2 siblings, 0 replies; 15+ messages in thread
From: Huacai Chen @ 2025-09-18 9:15 UTC (permalink / raw)
To: Tiezhu Yang
Cc: Miguel Ojeda, WANG Rui, rust-for-linux, loongarch, linux-kernel
Applied, thanks.
Huacai
On Tue, Sep 9, 2025 at 5:27 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> This series is to fix objtool warnings when compiling with LLVM and
> CONFIG_RUST is set, thanks WANG Rui and Miguel for your suggestions
> about RUST.
>
> The second patch uses the option -Zno-jump-tables, here is a related
> discussion:
>
> https://github.com/rust-lang/rust/pull/145974#issuecomment-3236418282
>
> Tiezhu Yang (2):
> LoongArch: Make LTO case independent in Makefile
> LoongArch: Handle jump tables option for RUST
>
> arch/loongarch/Kconfig | 4 ++++
> arch/loongarch/Makefile | 16 +++++++++++-----
> 2 files changed, 15 insertions(+), 5 deletions(-)
>
> --
> 2.42.0
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-09 9:27 ` [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile Tiezhu Yang
@ 2025-09-20 6:15 ` Nathan Chancellor
2025-09-20 8:23 ` Huacai Chen
0 siblings, 1 reply; 15+ messages in thread
From: Nathan Chancellor @ 2025-09-20 6:15 UTC (permalink / raw)
To: Tiezhu Yang
Cc: Huacai Chen, Miguel Ojeda, WANG Rui, rust-for-linux, loongarch,
linux-kernel, llvm
Hi Tiezhu,
On Tue, Sep 09, 2025 at 05:27:06PM +0800, Tiezhu Yang wrote:
> LTO is not only used for Clang, it maybe used for Rust, make LTO case out
> of CONFIG_CC_HAS_ANNOTATE_TABLEJUMP in Makefile.
>
> This is preparation for later patch, no function changes.
>
> Suggested-by: WANG Rui <wangrui@loongson.cn>
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
> arch/loongarch/Makefile | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> index a3a9759414f4..9d80af7f75c8 100644
> --- a/arch/loongarch/Makefile
> +++ b/arch/loongarch/Makefile
> @@ -102,16 +102,16 @@ KBUILD_CFLAGS += $(call cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)
>
> ifdef CONFIG_OBJTOOL
> ifdef CONFIG_CC_HAS_ANNOTATE_TABLEJUMP
> +KBUILD_CFLAGS += -mannotate-tablejump
> +else
> +KBUILD_CFLAGS += -fno-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.
> # Ensure it is aware of linker with LTO, '--loongarch-annotate-tablejump' also needs to
> # be passed via '-mllvm' to ld.lld.
> -KBUILD_CFLAGS += -mannotate-tablejump
> -ifdef CONFIG_LTO_CLANG
> KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
> endif
> -else
> -KBUILD_CFLAGS += -fno-jump-tables # keep compatibility with older compilers
> -endif
> endif
>
> KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat -Ccode-model=small
> --
> 2.42.0
>
This change is now in -next as commit b15212824a01 ("LoongArch: Make LTO
case independent in Makefile"), where it breaks the build for clang-18,
as '--loongarch-annotate-tablejump' is unimplemented there but there is
no version check before using it.
$ make -skj"$(nproc)" ARCH=loongarch LLVM=1 mrproper defconfig
$ scripts/config -d LTO_NONE -e LTO_CLANG_THIN
$ make -skj"$(nproc)" ARCH=loongarch LLVM=1 olddefconfig vmlinuz.efi
ld.lld: error: -mllvm: ld.lld: Unknown command line argument '--loongarch-annotate-tablejump'.
...
$ scripts/config -s CC_HAS_ANNOTATE_TABLEJUMP
undef
Cheers,
Nathan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-20 6:15 ` Nathan Chancellor
@ 2025-09-20 8:23 ` Huacai Chen
2025-09-20 9:19 ` Tiezhu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Huacai Chen @ 2025-09-20 8:23 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Tiezhu Yang, Miguel Ojeda, WANG Rui, rust-for-linux, loongarch,
linux-kernel, llvm
On Sat, Sep 20, 2025 at 2:15 PM Nathan Chancellor <nathan@kernel.org> wrote:
>
> Hi Tiezhu,
>
> On Tue, Sep 09, 2025 at 05:27:06PM +0800, Tiezhu Yang wrote:
> > LTO is not only used for Clang, it maybe used for Rust, make LTO case out
> > of CONFIG_CC_HAS_ANNOTATE_TABLEJUMP in Makefile.
> >
> > This is preparation for later patch, no function changes.
> >
> > Suggested-by: WANG Rui <wangrui@loongson.cn>
> > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> > ---
> > arch/loongarch/Makefile | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> > index a3a9759414f4..9d80af7f75c8 100644
> > --- a/arch/loongarch/Makefile
> > +++ b/arch/loongarch/Makefile
> > @@ -102,16 +102,16 @@ KBUILD_CFLAGS += $(call cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)
> >
> > ifdef CONFIG_OBJTOOL
> > ifdef CONFIG_CC_HAS_ANNOTATE_TABLEJUMP
> > +KBUILD_CFLAGS += -mannotate-tablejump
> > +else
> > +KBUILD_CFLAGS += -fno-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.
> > # Ensure it is aware of linker with LTO, '--loongarch-annotate-tablejump' also needs to
> > # be passed via '-mllvm' to ld.lld.
> > -KBUILD_CFLAGS += -mannotate-tablejump
> > -ifdef CONFIG_LTO_CLANG
> > KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
> > endif
> > -else
> > -KBUILD_CFLAGS += -fno-jump-tables # keep compatibility with older compilers
> > -endif
> > endif
> >
> > KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat -Ccode-model=small
> > --
> > 2.42.0
> >
>
> This change is now in -next as commit b15212824a01 ("LoongArch: Make LTO
> case independent in Makefile"), where it breaks the build for clang-18,
> as '--loongarch-annotate-tablejump' is unimplemented there but there is
> no version check before using it.
>
> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 mrproper defconfig
>
> $ scripts/config -d LTO_NONE -e LTO_CLANG_THIN
>
> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 olddefconfig vmlinuz.efi
> ld.lld: error: -mllvm: ld.lld: Unknown command line argument '--loongarch-annotate-tablejump'.
> ...
>
> $ scripts/config -s CC_HAS_ANNOTATE_TABLEJUMP
> undef
Hmm, maybe we need this?
diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
index ae419e32f22e..fcfa793f9bb0 100644
--- a/arch/loongarch/Makefile
+++ b/arch/loongarch/Makefile
@@ -115,7 +115,7 @@ ifdef CONFIG_LTO_CLANG
# The annotate-tablejump option can not be passed to LLVM backend
when LTO is enabled.
# Ensure it is aware of linker with LTO,
'--loongarch-annotate-tablejump' also needs to
# be passed via '-mllvm' to ld.lld.
-KBUILD_LDFLAGS += -mllvm
--loongarch-annotate-tablejump
+KBUILD_LDFLAGS += $(call ld-option,-mllvm
--loongarch-annotate-tablejump)
endif
endif
>
> Cheers,
> Nathan
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-20 8:23 ` Huacai Chen
@ 2025-09-20 9:19 ` Tiezhu Yang
2025-09-20 10:22 ` Tiezhu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-20 9:19 UTC (permalink / raw)
To: Huacai Chen, Nathan Chancellor
Cc: Miguel Ojeda, WANG Rui, rust-for-linux, loongarch, linux-kernel,
llvm
On 9/20/25 16:23, Huacai Chen wrote:
> On Sat, Sep 20, 2025 at 2:15 PM Nathan Chancellor <nathan@kernel.org> wrote:
>>
>> Hi Tiezhu,
>>
>> On Tue, Sep 09, 2025 at 05:27:06PM +0800, Tiezhu Yang wrote:
>>> LTO is not only used for Clang, it maybe used for Rust, make LTO case out
>>> of CONFIG_CC_HAS_ANNOTATE_TABLEJUMP in Makefile.
>>>
>>> This is preparation for later patch, no function changes.
>>>
>>> Suggested-by: WANG Rui <wangrui@loongson.cn>
>>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>>> ---
>>> arch/loongarch/Makefile | 10 +++++-----
>>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
>>> index a3a9759414f4..9d80af7f75c8 100644
>>> --- a/arch/loongarch/Makefile
>>> +++ b/arch/loongarch/Makefile
>>> @@ -102,16 +102,16 @@ KBUILD_CFLAGS += $(call cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)
>>>
>>> ifdef CONFIG_OBJTOOL
>>> ifdef CONFIG_CC_HAS_ANNOTATE_TABLEJUMP
>>> +KBUILD_CFLAGS += -mannotate-tablejump
>>> +else
>>> +KBUILD_CFLAGS += -fno-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.
>>> # Ensure it is aware of linker with LTO, '--loongarch-annotate-tablejump' also needs to
>>> # be passed via '-mllvm' to ld.lld.
>>> -KBUILD_CFLAGS += -mannotate-tablejump
>>> -ifdef CONFIG_LTO_CLANG
>>> KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
>>> endif
>>> -else
>>> -KBUILD_CFLAGS += -fno-jump-tables # keep compatibility with older compilers
>>> -endif
>>> endif
>>>
>>> KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat -Ccode-model=small
>>> --
>>> 2.42.0
>>>
>>
>> This change is now in -next as commit b15212824a01 ("LoongArch: Make LTO
>> case independent in Makefile"), where it breaks the build for clang-18,
>> as '--loongarch-annotate-tablejump' is unimplemented there but there is
>> no version check before using it.
>>
>> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 mrproper defconfig
>>
>> $ scripts/config -d LTO_NONE -e LTO_CLANG_THIN
>>
>> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 olddefconfig vmlinuz.efi
>> ld.lld: error: -mllvm: ld.lld: Unknown command line argument '--loongarch-annotate-tablejump'.
>> ...
>>
>> $ scripts/config -s CC_HAS_ANNOTATE_TABLEJUMP
>> undef
> Hmm, maybe we need this?
> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> index ae419e32f22e..fcfa793f9bb0 100644
> --- a/arch/loongarch/Makefile
> +++ b/arch/loongarch/Makefile
> @@ -115,7 +115,7 @@ ifdef CONFIG_LTO_CLANG
> # The annotate-tablejump option can not be passed to LLVM backend
> when LTO is enabled.
> # Ensure it is aware of linker with LTO,
> '--loongarch-annotate-tablejump' also needs to
> # be passed via '-mllvm' to ld.lld.
> -KBUILD_LDFLAGS += -mllvm
> --loongarch-annotate-tablejump
> +KBUILD_LDFLAGS += $(call ld-option,-mllvm
> --loongarch-annotate-tablejump)
> endif
> endif
We need to handle the other case to use -fno-jump-tables if llvm does
not support -loongarch-annotate-tablejump.
So, it is better to update the minimal version of llvm to 20, which
includes the following two important commits:
[LoongArch] Add options for annotate tablejump
https://github.com/llvm/llvm-project/commit/4c2c17756739
[LoongArch] Avoid indirect branch jumps using the ra register
https://github.com/llvm/llvm-project/commit/21ef17c62645
If you are OK, I will send a patch to modify the following file:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/min-tool-version.sh#n29
and keep arch/loongarch/Makefile as is.
Thanks,
Tiezhu
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-20 9:19 ` Tiezhu Yang
@ 2025-09-20 10:22 ` Tiezhu Yang
2025-09-20 11:41 ` Huacai Chen
0 siblings, 1 reply; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-20 10:22 UTC (permalink / raw)
To: Huacai Chen, Nathan Chancellor
Cc: Miguel Ojeda, WANG Rui, rust-for-linux, loongarch, linux-kernel,
llvm
On 9/20/25 17:19, Tiezhu Yang wrote:
> On 9/20/25 16:23, Huacai Chen wrote:
>> On Sat, Sep 20, 2025 at 2:15 PM Nathan Chancellor <nathan@kernel.org>
>> wrote:
>>>
>>> Hi Tiezhu,
>>>
>>> On Tue, Sep 09, 2025 at 05:27:06PM +0800, Tiezhu Yang wrote:
>>>> LTO is not only used for Clang, it maybe used for Rust, make LTO
>>>> case out
>>>> of CONFIG_CC_HAS_ANNOTATE_TABLEJUMP in Makefile.
>>>>
>>>> This is preparation for later patch, no function changes.
>>>>
>>>> Suggested-by: WANG Rui <wangrui@loongson.cn>
>>>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>>>> ---
>>>> arch/loongarch/Makefile | 10 +++++-----
>>>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
>>>> index a3a9759414f4..9d80af7f75c8 100644
>>>> --- a/arch/loongarch/Makefile
>>>> +++ b/arch/loongarch/Makefile
>>>> @@ -102,16 +102,16 @@ KBUILD_CFLAGS += $(call
>>>> cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)
>>>>
>>>> ifdef CONFIG_OBJTOOL
>>>> ifdef CONFIG_CC_HAS_ANNOTATE_TABLEJUMP
>>>> +KBUILD_CFLAGS += -mannotate-tablejump
>>>> +else
>>>> +KBUILD_CFLAGS += -fno-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.
>>>> # Ensure it is aware of linker with LTO,
>>>> '--loongarch-annotate-tablejump' also needs to
>>>> # be passed via '-mllvm' to ld.lld.
>>>> -KBUILD_CFLAGS += -mannotate-tablejump
>>>> -ifdef CONFIG_LTO_CLANG
>>>> KBUILD_LDFLAGS += -mllvm
>>>> --loongarch-annotate-tablejump
>>>> endif
>>>> -else
>>>> -KBUILD_CFLAGS += -fno-jump-tables # keep
>>>> compatibility with older compilers
>>>> -endif
>>>> endif
>>>>
>>>> KBUILD_RUSTFLAGS +=
>>>> --target=loongarch64-unknown-none-softfloat -Ccode-model=small
>>>> --
>>>> 2.42.0
>>>>
>>>
>>> This change is now in -next as commit b15212824a01 ("LoongArch: Make LTO
>>> case independent in Makefile"), where it breaks the build for clang-18,
>>> as '--loongarch-annotate-tablejump' is unimplemented there but there is
>>> no version check before using it.
>>>
>>> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 mrproper defconfig
>>>
>>> $ scripts/config -d LTO_NONE -e LTO_CLANG_THIN
>>>
>>> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 olddefconfig vmlinuz.efi
>>> ld.lld: error: -mllvm: ld.lld: Unknown command line argument
>>> '--loongarch-annotate-tablejump'.
>>> ...
>>>
>>> $ scripts/config -s CC_HAS_ANNOTATE_TABLEJUMP
>>> undef
>> Hmm, maybe we need this?
>> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
>> index ae419e32f22e..fcfa793f9bb0 100644
>> --- a/arch/loongarch/Makefile
>> +++ b/arch/loongarch/Makefile
>> @@ -115,7 +115,7 @@ ifdef CONFIG_LTO_CLANG
>> # The annotate-tablejump option can not be passed to LLVM backend
>> when LTO is enabled.
>> # Ensure it is aware of linker with LTO,
>> '--loongarch-annotate-tablejump' also needs to
>> # be passed via '-mllvm' to ld.lld.
>> -KBUILD_LDFLAGS += -mllvm
>> --loongarch-annotate-tablejump
>> +KBUILD_LDFLAGS += $(call ld-option,-mllvm
>> --loongarch-annotate-tablejump)
>> endif
>> endif
>
> We need to handle the other case to use -fno-jump-tables if llvm does
> not support -loongarch-annotate-tablejump.
>
> So, it is better to update the minimal version of llvm to 20, which
> includes the following two important commits:
>
> [LoongArch] Add options for annotate tablejump
> https://github.com/llvm/llvm-project/commit/4c2c17756739
>
> [LoongArch] Avoid indirect branch jumps using the ra register
> https://github.com/llvm/llvm-project/commit/21ef17c62645
>
> If you are OK, I will send a patch to modify the following file:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/min-tool-version.sh#n29
>
>
> and keep arch/loongarch/Makefile as is.
The other way is to keep scripts/min-tool-version.sh as is, and only
modify arch/loongarch/Makefile, something like this (not tested):
config LLD_HAS_ANNOTATE_TABLEJUMP
def_bool LLD_VERSION >= 200000
ifdef CONFIG_LTO_CLANG
ifdef CONFIG_LLD_HAS_ANNOTATE_TABLEJUMP
KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
else
KBUILD_LDFLAGS += -mllvm --no-jump-tables
endif
Update the minimal llvm version or change Makefile to compat various
llvm versions, which one do you prefer? Pease let me know.
Thanks,
Tiezhu
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-20 10:22 ` Tiezhu Yang
@ 2025-09-20 11:41 ` Huacai Chen
2025-09-20 12:52 ` Tiezhu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Huacai Chen @ 2025-09-20 11:41 UTC (permalink / raw)
To: Tiezhu Yang
Cc: Nathan Chancellor, Miguel Ojeda, WANG Rui, rust-for-linux,
loongarch, linux-kernel, llvm
On Sat, Sep 20, 2025 at 6:22 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> On 9/20/25 17:19, Tiezhu Yang wrote:
> > On 9/20/25 16:23, Huacai Chen wrote:
> >> On Sat, Sep 20, 2025 at 2:15 PM Nathan Chancellor <nathan@kernel.org>
> >> wrote:
> >>>
> >>> Hi Tiezhu,
> >>>
> >>> On Tue, Sep 09, 2025 at 05:27:06PM +0800, Tiezhu Yang wrote:
> >>>> LTO is not only used for Clang, it maybe used for Rust, make LTO
> >>>> case out
> >>>> of CONFIG_CC_HAS_ANNOTATE_TABLEJUMP in Makefile.
> >>>>
> >>>> This is preparation for later patch, no function changes.
> >>>>
> >>>> Suggested-by: WANG Rui <wangrui@loongson.cn>
> >>>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> >>>> ---
> >>>> arch/loongarch/Makefile | 10 +++++-----
> >>>> 1 file changed, 5 insertions(+), 5 deletions(-)
> >>>>
> >>>> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> >>>> index a3a9759414f4..9d80af7f75c8 100644
> >>>> --- a/arch/loongarch/Makefile
> >>>> +++ b/arch/loongarch/Makefile
> >>>> @@ -102,16 +102,16 @@ KBUILD_CFLAGS += $(call
> >>>> cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)
> >>>>
> >>>> ifdef CONFIG_OBJTOOL
> >>>> ifdef CONFIG_CC_HAS_ANNOTATE_TABLEJUMP
> >>>> +KBUILD_CFLAGS += -mannotate-tablejump
> >>>> +else
> >>>> +KBUILD_CFLAGS += -fno-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.
> >>>> # Ensure it is aware of linker with LTO,
> >>>> '--loongarch-annotate-tablejump' also needs to
> >>>> # be passed via '-mllvm' to ld.lld.
> >>>> -KBUILD_CFLAGS += -mannotate-tablejump
> >>>> -ifdef CONFIG_LTO_CLANG
> >>>> KBUILD_LDFLAGS += -mllvm
> >>>> --loongarch-annotate-tablejump
> >>>> endif
> >>>> -else
> >>>> -KBUILD_CFLAGS += -fno-jump-tables # keep
> >>>> compatibility with older compilers
> >>>> -endif
> >>>> endif
> >>>>
> >>>> KBUILD_RUSTFLAGS +=
> >>>> --target=loongarch64-unknown-none-softfloat -Ccode-model=small
> >>>> --
> >>>> 2.42.0
> >>>>
> >>>
> >>> This change is now in -next as commit b15212824a01 ("LoongArch: Make LTO
> >>> case independent in Makefile"), where it breaks the build for clang-18,
> >>> as '--loongarch-annotate-tablejump' is unimplemented there but there is
> >>> no version check before using it.
> >>>
> >>> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 mrproper defconfig
> >>>
> >>> $ scripts/config -d LTO_NONE -e LTO_CLANG_THIN
> >>>
> >>> $ make -skj"$(nproc)" ARCH=loongarch LLVM=1 olddefconfig vmlinuz.efi
> >>> ld.lld: error: -mllvm: ld.lld: Unknown command line argument
> >>> '--loongarch-annotate-tablejump'.
> >>> ...
> >>>
> >>> $ scripts/config -s CC_HAS_ANNOTATE_TABLEJUMP
> >>> undef
> >> Hmm, maybe we need this?
> >> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> >> index ae419e32f22e..fcfa793f9bb0 100644
> >> --- a/arch/loongarch/Makefile
> >> +++ b/arch/loongarch/Makefile
> >> @@ -115,7 +115,7 @@ ifdef CONFIG_LTO_CLANG
> >> # The annotate-tablejump option can not be passed to LLVM backend
> >> when LTO is enabled.
> >> # Ensure it is aware of linker with LTO,
> >> '--loongarch-annotate-tablejump' also needs to
> >> # be passed via '-mllvm' to ld.lld.
> >> -KBUILD_LDFLAGS += -mllvm
> >> --loongarch-annotate-tablejump
> >> +KBUILD_LDFLAGS += $(call ld-option,-mllvm
> >> --loongarch-annotate-tablejump)
> >> endif
> >> endif
> >
> > We need to handle the other case to use -fno-jump-tables if llvm does
> > not support -loongarch-annotate-tablejump.
> >
> > So, it is better to update the minimal version of llvm to 20, which
> > includes the following two important commits:
> >
> > [LoongArch] Add options for annotate tablejump
> > https://github.com/llvm/llvm-project/commit/4c2c17756739
> >
> > [LoongArch] Avoid indirect branch jumps using the ra register
> > https://github.com/llvm/llvm-project/commit/21ef17c62645
> >
> > If you are OK, I will send a patch to modify the following file:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/min-tool-version.sh#n29
> >
> >
> > and keep arch/loongarch/Makefile as is.
>
> The other way is to keep scripts/min-tool-version.sh as is, and only
> modify arch/loongarch/Makefile, something like this (not tested):
>
> config LLD_HAS_ANNOTATE_TABLEJUMP
> def_bool LLD_VERSION >= 200000
>
> ifdef CONFIG_LTO_CLANG
> ifdef CONFIG_LLD_HAS_ANNOTATE_TABLEJUMP
> KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
> else
> KBUILD_LDFLAGS += -mllvm --no-jump-tables
> endif
So complicated?
I think below is enough, no?
ifdef CONFIG_LTO_CLANG
# The annotate-tablejump option can not be passed to LLVM backend when
LTO is enabled.
# Ensure it is aware of linker with LTO,
'--loongarch-annotate-tablejump' also needs to
# be passed via '-mllvm' to ld.lld.
KBUILD_LDFLAGS += $(call ld-option,-mllvm
--loongarch-annotate-tablejump,-mllvm --no-jump-tables)
endif
Huacai
>
> Update the minimal llvm version or change Makefile to compat various
> llvm versions, which one do you prefer? Pease let me know.
>
> Thanks,
> Tiezhu
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-20 11:41 ` Huacai Chen
@ 2025-09-20 12:52 ` Tiezhu Yang
2025-09-23 1:10 ` Nathan Chancellor
0 siblings, 1 reply; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-20 12:52 UTC (permalink / raw)
To: Huacai Chen
Cc: Nathan Chancellor, Miguel Ojeda, WANG Rui, rust-for-linux,
loongarch, linux-kernel, llvm
On 9/20/25 19:41, Huacai Chen wrote:
...
>>> We need to handle the other case to use -fno-jump-tables if llvm does
>>> not support -loongarch-annotate-tablejump.
>>>
>>> So, it is better to update the minimal version of llvm to 20, which
>>> includes the following two important commits:
>>>
>>> [LoongArch] Add options for annotate tablejump
>>> https://github.com/llvm/llvm-project/commit/4c2c17756739
>>>
>>> [LoongArch] Avoid indirect branch jumps using the ra register
>>> https://github.com/llvm/llvm-project/commit/21ef17c62645
>>>
>>> If you are OK, I will send a patch to modify the following file:
>>>
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/min-tool-version.sh#n29
>>>
>>>
>>> and keep arch/loongarch/Makefile as is.
>>
>> The other way is to keep scripts/min-tool-version.sh as is, and only
>> modify arch/loongarch/Makefile, something like this (not tested):
>>
>> config LLD_HAS_ANNOTATE_TABLEJUMP
>> def_bool LLD_VERSION >= 200000
>>
>> ifdef CONFIG_LTO_CLANG
>> ifdef CONFIG_LLD_HAS_ANNOTATE_TABLEJUMP
>> KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
>> else
>> KBUILD_LDFLAGS += -mllvm --no-jump-tables
>> endif
> So complicated?
>
> I think below is enough, no?
> ifdef CONFIG_LTO_CLANG
> # The annotate-tablejump option can not be passed to LLVM backend when
> LTO is enabled.
> # Ensure it is aware of linker with LTO,
> '--loongarch-annotate-tablejump' also needs to
> # be passed via '-mllvm' to ld.lld.
> KBUILD_LDFLAGS += $(call ld-option,-mllvm
> --loongarch-annotate-tablejump,-mllvm --no-jump-tables)
> endif
I do not know whether this is valid, you can test it with llvm 18
and llvm 20 if you think it is a proper way.
But IIRC, there is objtool warning with llvm 18, I reported to llvm
developer Wang Lei and he fixed it as the following commit:
[LoongArch] Avoid indirect branch jumps using the ra register
https://github.com/llvm/llvm-project/commit/21ef17c62645
Actually, the above commit solved a performance issue of llvm compiler,
so I prefer to update the minimal llvm version to 20 for LoongArch.
Thanks,
Tiezhu
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-20 12:52 ` Tiezhu Yang
@ 2025-09-23 1:10 ` Nathan Chancellor
2025-09-23 3:13 ` Tiezhu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Nathan Chancellor @ 2025-09-23 1:10 UTC (permalink / raw)
To: Tiezhu Yang
Cc: Huacai Chen, Miguel Ojeda, WANG Rui, rust-for-linux, loongarch,
linux-kernel, llvm
> > > ifdef CONFIG_LTO_CLANG
> > > ifdef CONFIG_LLD_HAS_ANNOTATE_TABLEJUMP
> > > KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
> > > else
> > > KBUILD_LDFLAGS += -mllvm --no-jump-tables
> > > endif
There is no '--no-jump-tables' LLVM option so this will not work.
Shouldn't -fno-jump-tables and -Zno-jump-tables take care of generating
jump tables?
> I do not know whether this is valid, you can test it with llvm 18
> and llvm 20 if you think it is a proper way.
For what it's worth, Huacai's original suggestion of
KBUILD_LDFLAGS += $(call ld-option,-mllvm --loongarch-annotate-tablejump)
appears to work for me and I do not see any objtool warnings with LTO
enabled but I might be missing something.
> But IIRC, there is objtool warning with llvm 18, I reported to llvm
> developer Wang Lei and he fixed it as the following commit:
>
> [LoongArch] Avoid indirect branch jumps using the ra register
> https://github.com/llvm/llvm-project/commit/21ef17c62645
>
> Actually, the above commit solved a performance issue of llvm compiler,
> so I prefer to update the minimal llvm version to 20 for LoongArch.
I tend to let architecture maintainers make the call around minimum
supported versions of compilers, so if that is how you would like to
proceed, I am fine with that. I will say LLVM 20 is pretty new (released
on March 4th, 2025) but I expect most of your users to probably be using
bleeding edge tools for all the changes you make in the compiler and
lower level libraries?
Cheers,
Nathan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile
2025-09-23 1:10 ` Nathan Chancellor
@ 2025-09-23 3:13 ` Tiezhu Yang
0 siblings, 0 replies; 15+ messages in thread
From: Tiezhu Yang @ 2025-09-23 3:13 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Huacai Chen, Miguel Ojeda, WANG Rui, rust-for-linux, loongarch,
linux-kernel, llvm
On 2025/9/23 上午9:10, Nathan Chancellor wrote:
>>>> ifdef CONFIG_LTO_CLANG
>>>> ifdef CONFIG_LLD_HAS_ANNOTATE_TABLEJUMP
>>>> KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump
>>>> else
>>>> KBUILD_LDFLAGS += -mllvm --no-jump-tables
>>>> endif
>
> There is no '--no-jump-tables' LLVM option so this will not work.
> Shouldn't -fno-jump-tables and -Zno-jump-tables take care of generating
> jump tables?
>
>> I do not know whether this is valid, you can test it with llvm 18
>> and llvm 20 if you think it is a proper way.
>
> For what it's worth, Huacai's original suggestion of
>
> KBUILD_LDFLAGS += $(call ld-option,-mllvm --loongarch-annotate-tablejump)
>
> appears to work for me and I do not see any objtool warnings with LTO
> enabled but I might be missing something.
As discussed offline, Huacai will test this change and submit a patch
later.
>> But IIRC, there is objtool warning with llvm 18, I reported to llvm
>> developer Wang Lei and he fixed it as the following commit:
>>
>> [LoongArch] Avoid indirect branch jumps using the ra register
>> https://github.com/llvm/llvm-project/commit/21ef17c62645
>>
>> Actually, the above commit solved a performance issue of llvm compiler,
>> so I prefer to update the minimal llvm version to 20 for LoongArch.
>
> I tend to let architecture maintainers make the call around minimum
> supported versions of compilers, so if that is how you would like to
> proceed, I am fine with that. I will say LLVM 20 is pretty new (released
> on March 4th, 2025) but I expect most of your users to probably be using
> bleeding edge tools for all the changes you make in the compiler and
> lower level libraries?
Usually, I like to use the latest LLVM upstream version to test the
kernel, but maybe somebody only uses the lower version, so keep the
minimal version as is.
Thanks,
Tiezhu
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-09-23 3:14 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-09 9:27 [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Tiezhu Yang
2025-09-09 9:27 ` [PATCH v1 1/2] LoongArch: Make LTO case independent in Makefile Tiezhu Yang
2025-09-20 6:15 ` Nathan Chancellor
2025-09-20 8:23 ` Huacai Chen
2025-09-20 9:19 ` Tiezhu Yang
2025-09-20 10:22 ` Tiezhu Yang
2025-09-20 11:41 ` Huacai Chen
2025-09-20 12:52 ` Tiezhu Yang
2025-09-23 1:10 ` Nathan Chancellor
2025-09-23 3:13 ` Tiezhu Yang
2025-09-09 9:27 ` [PATCH v1 2/2] LoongArch: Handle jump tables option for RUST Tiezhu Yang
2025-09-09 10:16 ` Miguel Ojeda
2025-09-09 18:06 ` Matthew Maurer
2025-09-09 20:14 ` Miguel Ojeda
2025-09-18 9:15 ` [PATCH v1 0/2] Fix objtool warnings with RUST on LoongArch Huacai Chen
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.