[PATCH v2 08/12] riscv: Unconditionally use linker relaxation

Alexandre Ghiti alex at ghiti.fr
Fri Aug 22 05:35:14 PDT 2025


On 8/21/25 23:15, Nathan Chancellor wrote:
> Now that the minimum supported version of LLVM for building the kernel
> has been bumped to 15.0.0, CONFIG_RISCV_USE_LINKER_RELAXATION will
> always be enabled, so it can be removed.
>
> Signed-off-by: Nathan Chancellor <nathan at kernel.org>
> ---
> Cc: Palmer Dabbelt <palmer at dabbelt.com>
> Cc: Alexandre Ghiti <alex at ghiti.fr>
> Cc: linux-riscv at lists.infradead.org
> ---
>   arch/riscv/Kconfig  | 6 ------
>   arch/riscv/Makefile | 9 +--------
>   2 files changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 1d53bf02d0fa..d482236e93f4 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -246,15 +246,9 @@ config HAVE_SHADOW_CALL_STACK
>   	# https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/a484e843e6eeb51f0cb7b8819e50da6d2444d769
>   	depends on $(ld-option,--no-relax-gp)
>   
> -config RISCV_USE_LINKER_RELAXATION
> -	def_bool y
> -	# https://github.com/llvm/llvm-project/commit/6611d58f5bbcbec77262d392e2923e1d680f6985
> -	depends on !LD_IS_LLD || LLD_VERSION >= 150000
> -
>   # https://github.com/llvm/llvm-project/commit/bbc0f99f3bc96f1db16f649fc21dd18e5b0918f6
>   config ARCH_HAS_BROKEN_DWARF5
>   	def_bool y
> -	depends on RISCV_USE_LINKER_RELAXATION
>   	# https://github.com/llvm/llvm-project/commit/1df5ea29b43690b6622db2cad7b745607ca4de6a
>   	depends on AS_IS_LLVM && AS_VERSION < 180000
>   	# https://github.com/llvm/llvm-project/commit/7ffabb61a5569444b5ac9322e22e5471cc5e4a77
> diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
> index df57654a615e..ecf2fcce2d92 100644
> --- a/arch/riscv/Makefile
> +++ b/arch/riscv/Makefile
> @@ -46,17 +46,10 @@ else
>   	KBUILD_LDFLAGS += -melf32lriscv
>   endif
>   
> -ifndef CONFIG_RISCV_USE_LINKER_RELAXATION
> -	KBUILD_CFLAGS += -mno-relax
> -	KBUILD_AFLAGS += -mno-relax
> -ifndef CONFIG_AS_IS_LLVM
> -	KBUILD_CFLAGS += -Wa,-mno-relax
> -	KBUILD_AFLAGS += -Wa,-mno-relax
> -endif
>   # LLVM has an issue with target-features and LTO: https://github.com/llvm/llvm-project/issues/59350
>   # Ensure it is aware of linker relaxation with LTO, otherwise relocations may
>   # be incorrect: https://github.com/llvm/llvm-project/issues/65090
> -else ifeq ($(CONFIG_LTO_CLANG),y)
> +ifeq ($(CONFIG_LTO_CLANG),y)
>   	KBUILD_LDFLAGS += -mllvm -mattr=+c -mllvm -mattr=+relax
>   endif
>   
>

Acked-by: Alexandre Ghiti <alexghiti at rivosinc.com>

Thanks,

Alex




More information about the linux-riscv mailing list