Merge patch series "Fixes for Clang builds for AArch64, improve CROSS_COMPILE handling"
Dmitrii Sharshakov <d3dx12.xx@gmail.com> says: Initially fix the inconsistency reported in reply to the previous series and also make sure AArch64 images can be built with latest Clang versions by guarding AArch32-specific options behind extra config checks. Tested qemu_arm_defconfig and qemu_arm64_defconfig with Clang 21, mainline (to be 22) ce7f9f9c and also Clang 18 (for AArch64 only, as I have not managed to build an AArch32 image with clang-18). Link: https://lore.kernel.org/r/20251108-clang-cross-fixes-v1-0-ea6c4282844a@gmail.com
This commit is contained in:
@@ -600,7 +600,7 @@ ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
|
||||
ifneq ($(CROSS_COMPILE),)
|
||||
CLANG_FLAGS := --target=$(notdir $(CROSS_COMPILE:%-=%))
|
||||
GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
|
||||
CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)
|
||||
CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE:%-=%))-
|
||||
GCC_TOOLCHAIN := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
|
||||
endif
|
||||
ifneq ($(GCC_TOOLCHAIN),)
|
||||
|
||||
+6
-5
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user