[PATCH 2/2] arch: arm: fix AArch64 builds with Clang 21+

Dmitrii Sharshakov d3dx12.xx at gmail.com
Sat Nov 8 21:48:47 CET 2025


Clang is strict with respect to unknown options.

Therefore, only enable AArch32-specific options when CONFIG_ARM64
is not set.

Signed-off-by: Dmitrii Sharshakov <d3dx12.xx at gmail.com>
---
 arch/arm/config.mk | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index ba7dd99672a..73fddd50bd7 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -30,18 +30,19 @@ PLATFORM_RELFLAGS += $(call cc-option,-mgeneral-regs-only)
 endif
 
 # LLVM support
-LLVM_RELFLAGS		:= $(call cc-option,-mllvm,) \
-			$(call cc-option,-mno-movt,)
-PLATFORM_RELFLAGS	+= $(LLVM_RELFLAGS)
-
+LLVM_RELFLAGS		:= $(call cc-option,-mllvm,)
 PLATFORM_CPPFLAGS += -D__ARM__
 
 ifdef CONFIG_ARM64
 PLATFORM_ELFFLAGS += -B aarch64 -O elf64-littleaarch64
 else
 PLATFORM_ELFFLAGS += -B arm -O elf32-littlearm
+# no-movt is only available when targeting AArch32
+LLVM_RELFLAGS	+= $(call cc-option,-mno-movt,)
 endif
 
+PLATFORM_RELFLAGS	+= $(LLVM_RELFLAGS)
+
 # Choose between ARM/Thumb instruction sets
 ifeq ($(CONFIG_$(PHASE_)SYS_THUMB_BUILD),y)
 AFLAGS_IMPLICIT_IT	:= $(call as-option,-Wa$(comma)-mimplicit-it=always)
@@ -50,7 +51,7 @@ PF_CPPFLAGS_ARM		:= $(AFLAGS_IMPLICIT_IT) \
 			$(call cc-option,-marm,)\
 			$(call cc-option,-mno-thumb-interwork,)\
 		)
-else
+else ifneq ($(CONFIG_ARM64),y)
 PF_CPPFLAGS_ARM := $(call cc-option,-marm,) \
 		$(call cc-option,-mno-thumb-interwork,)
 endif

-- 
2.51.1



More information about the U-Boot mailing list