* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).