[PATCH] ARM: disallow pre-ARMv5 builds with ld.lld

Nathan Chancellor nathan at kernel.org
Fri Dec 16 15:10:32 PST 2022


On Thu, Dec 15, 2022 at 05:26:20PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd at arndb.de>
> 
> lld cannot build for ARMv4/v4T targets because it inserts 'blx' instructions
> that are unsupported there:
> 
>   ld.lld: warning: lld uses blx instruction, no object with architecture supporting feature detected
> 
> Add a Kconfig time dependency to prevent those targets from being
> selected in randconfig builds.
> 
> Link: https://github.com/llvm/llvm-project/issues/50764
> Link: https://github.com/ClangBuiltLinux/linux/issues/964
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>

Reviewed-by: Nathan Chancellor <nathan at kernel.org>

> ---
>  arch/arm/Kconfig | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 4a8fff7f9be0..d995054ab602 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -344,12 +344,14 @@ comment "CPU Core family selection"
>  config ARCH_MULTI_V4
>  	bool "ARMv4 based platforms (FA526, StrongARM)"
>  	depends on !ARCH_MULTI_V6_V7
> +	depends on !LD_IS_LLD
>  	select ARCH_MULTI_V4_V5
>  	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
>  
>  config ARCH_MULTI_V4T
>  	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
>  	depends on !ARCH_MULTI_V6_V7
> +	depends on !LD_IS_LLD
>  	select ARCH_MULTI_V4_V5
>  	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
>  		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
> -- 
> 2.35.1
> 



More information about the linux-arm-kernel mailing list