util/xcompile: Add target architecture to CPPFLAGS

In order to preprocess linker scripts the target architecture needs to
be specified. With clang this needs to be set via a cli argument.

Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: I4340681e30059d6f18a49a49937668cd3dd39ce1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75031
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Arthur Heymans
2023-05-08 16:28:12 +02:00
committed by Martin L Roth
parent 44adf4d22f
commit d308243bc1
3 changed files with 7 additions and 23 deletions

View File

@@ -10,11 +10,6 @@ ifeq ($(CONFIG_COMPILER_GCC),y)
armv7_asm_flags += -Wa,-mno-warn-deprecated armv7_asm_flags += -Wa,-mno-warn-deprecated
else # CLANG else # CLANG
armv7_flags += -mfpu=none armv7_flags += -mfpu=none
bootblock-ld-ccopts += -target arm-eabi
verstage-ld-ccopts += -target arm-eabi
romstage-ld-ccopts += -target arm-eabi
ramstage-ld-ccopts += -target arm-eabi
rmodule_arm-ld-ccopts += -target arm-eabi
endif endif
armv7-r_asm_flags = $(armv7-r_flags) $(armv7_asm_flags) armv7-r_asm_flags = $(armv7-r_flags) $(armv7_asm_flags)

View File

@@ -13,11 +13,6 @@ armv8_flags = -march=$(march) -I$(src)/arch/arm64/include/armv8/ -D__COREBOOT_AR
################################################################################ ################################################################################
ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV8_64),y) ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV8_64),y)
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
decompressor-ld-ccopts += -target arm64-elf
bootblock-ld-ccopts += -target arm64-elf
endif
ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y) ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
decompressor-y += bootblock.S decompressor-y += bootblock.S
ifneq ($(CONFIG_COMPRESS_BOOTBLOCK),y) ifneq ($(CONFIG_COMPRESS_BOOTBLOCK),y)
@@ -49,10 +44,6 @@ endif
################################################################################ ################################################################################
ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV8_64),y) ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV8_64),y)
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
verstage-ld-ccopts += -target arm64-elf
endif
verstage-y += cache.c verstage-y += cache.c
verstage-y += cpu.S verstage-y += cpu.S
verstage-y += exception.c verstage-y += exception.c
@@ -66,10 +57,6 @@ endif
################################################################################ ################################################################################
ifeq ($(CONFIG_ARCH_ROMSTAGE_ARMV8_64),y) ifeq ($(CONFIG_ARCH_ROMSTAGE_ARMV8_64),y)
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
romstage-ld-ccopts += -target arm64-elf
endif
romstage-y += cache.c romstage-y += cache.c
romstage-y += cpu.S romstage-y += cpu.S
romstage-y += exception.c romstage-y += exception.c
@@ -86,10 +73,6 @@ endif
################################################################################ ################################################################################
ifeq ($(CONFIG_ARCH_RAMSTAGE_ARMV8_64),y) ifeq ($(CONFIG_ARCH_RAMSTAGE_ARMV8_64),y)
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
ramstage-ld-ccopts += -target arm64-elf
endif
ramstage-y += cache.c ramstage-y += cache.c
ramstage-y += cpu.S ramstage-y += cpu.S
ramstage-y += exception.c ramstage-y += exception.c

View File

@@ -262,6 +262,9 @@ CLANG_CFLAGS_${TARCH}+=-Wno-shift-overflow -Wno-address-of-packed-member -Wno-in
CLANG_CFLAGS_${TARCH}+=-fbracket-depth=2048 -mllvm -asm-macro-max-nesting-depth=1000 CLANG_CFLAGS_${TARCH}+=-fbracket-depth=2048 -mllvm -asm-macro-max-nesting-depth=1000
CLANG_COMPILER_RT_${TARCH}:=${CC_RT_CLANG} CLANG_COMPILER_RT_${TARCH}:=${CC_RT_CLANG}
CLANG_COMPILER_RT_FLAGS_${TARCH}:=${CC_RT_EXTRA_CLANG} CLANG_COMPILER_RT_FLAGS_${TARCH}:=${CC_RT_EXTRA_CLANG}
# Leak the target arch into the preprocessor flags with clang.
# This is needed to preprocess linker scripts
CLANG_CPPFLAGS_${TARCH}:=${CPPFLAGS_CLANG}
# GCC/Clang Common # GCC/Clang Common
ifeq (\$(CONFIG_COMPILER_GCC)\$(CONFIG_LP_COMPILER_GCC),y) ifeq (\$(CONFIG_COMPILER_GCC)\$(CONFIG_LP_COMPILER_GCC),y)
@@ -272,6 +275,7 @@ ifeq (\$(CONFIG_COMPILER_GCC)\$(CONFIG_LP_COMPILER_GCC),y)
else else
CC_${TARCH}:=\$(CLANG_CC_${TARCH}) CC_${TARCH}:=\$(CLANG_CC_${TARCH})
CFLAGS_${TARCH}:=\$(CLANG_CFLAGS_${TARCH}) CFLAGS_${TARCH}:=\$(CLANG_CFLAGS_${TARCH})
CPPFLAGS_${TARCH}:=\$(CLANG_CPPFLAGS_${TARCH})
COMPILER_RT_${TARCH}:=\$(CLANG_COMPILER_RT_${TARCH}) COMPILER_RT_${TARCH}:=\$(CLANG_COMPILER_RT_${TARCH})
COMPILER_RT_FLAGS_${TARCH}:=\$(CLANG_COMPILER_RT_FLAGS_${TARCH}) COMPILER_RT_FLAGS_${TARCH}:=\$(CLANG_COMPILER_RT_FLAGS_${TARCH})
endif endif
@@ -471,7 +475,9 @@ test_architecture() {
# but that's more of a clang limitation. Let's be optimistic # but that's more of a clang limitation. Let's be optimistic
# that this will change in the future. # that this will change in the future.
CLANG="${clang_prefix}clang" CLANG="${clang_prefix}clang"
CFLAGS_CLANG="-target ${clang_arch}-${TABI} $CFLAGS_CLANG" CLANG_TARGET="-target ${clang_arch}-${TABI}"
CFLAGS_CLANG="$CLANG_TARGET $CFLAGS_CLANG"
CPPFLAGS_CLANG="$CLANG_TARGET $CPPFLAGS_CLANG"
fi fi
} }