Commit 5eb6e280 authored by Nathan Chancellor's avatar Nathan Chancellor Committed by Russell King (Oracle)
Browse files

ARM: 9289/1: Allow pre-ARMv5 builds with ld.lld 16.0.0 and newer

Commit 6a7ee50f ("ARM: disallow pre-ARMv5 builds with ld.lld")
prevented v4 or v4t kernels when ld.lld will link the kernel due to
inserting unsupported blx instructions.

ld.lld has been fixed in current main (16.0.0) to avoid inserting these
instructions by inserting position independent thunks instead. Allow
these configurations to be enabled when ld.lld 16.0.0 is used to link
the kernel.

Additionally, add a link to the upstream LLVM issue so that the reason
for this dependency is clearly documented.

Link: https://github.com/ClangBuiltLinux/linux/issues/964
Link: https://github.com/llvm/llvm-project/commit/6f9ff1beee9d12aca0c9caa9ae0051dc6d0a718c



Suggested-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Tested-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
parent cfb1076d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -345,14 +345,16 @@ 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
	# https://github.com/llvm/llvm-project/issues/50764
	depends on !LD_IS_LLD || LLD_VERSION >= 160000
	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
	# https://github.com/llvm/llvm-project/issues/50764
	depends on !LD_IS_LLD || LLD_VERSION >= 160000
	select ARCH_MULTI_V4_V5
	select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
		CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \