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