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:
committed by
Martin L Roth
parent
44adf4d22f
commit
d308243bc1
@@ -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)
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user