diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2023-05-08 16:28:12 +0200 |
---|---|---|
committer | Martin L Roth <gaumless@gmail.com> | 2024-03-26 22:51:12 +0000 |
commit | d308243bc16aefd3802c6955635ae58efe3f92ff (patch) | |
tree | cecbe9dfa854bcf26ad18f66b43075ccb1f16509 | |
parent | 44adf4d22f0a088b7463da2ef8f529ad172f33f7 (diff) |
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>
-rw-r--r-- | src/arch/arm/armv7/Makefile.mk | 5 | ||||
-rw-r--r-- | src/arch/arm64/armv8/Makefile.mk | 17 | ||||
-rwxr-xr-x | util/xcompile/xcompile | 8 |
3 files changed, 7 insertions, 23 deletions
diff --git a/src/arch/arm/armv7/Makefile.mk b/src/arch/arm/armv7/Makefile.mk index 53261eee94..56309d7be8 100644 --- a/src/arch/arm/armv7/Makefile.mk +++ b/src/arch/arm/armv7/Makefile.mk @@ -10,11 +10,6 @@ ifeq ($(CONFIG_COMPILER_GCC),y) armv7_asm_flags += -Wa,-mno-warn-deprecated else # CLANG 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 armv7-r_asm_flags = $(armv7-r_flags) $(armv7_asm_flags) diff --git a/src/arch/arm64/armv8/Makefile.mk b/src/arch/arm64/armv8/Makefile.mk index 61961ff3d2..15d80e64e8 100644 --- a/src/arch/arm64/armv8/Makefile.mk +++ b/src/arch/arm64/armv8/Makefile.mk @@ -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_COMPILER_LLVM_CLANG),y) -decompressor-ld-ccopts += -target arm64-elf -bootblock-ld-ccopts += -target arm64-elf -endif - ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y) decompressor-y += bootblock.S ifneq ($(CONFIG_COMPRESS_BOOTBLOCK),y) @@ -49,10 +44,6 @@ endif ################################################################################ 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 += cpu.S verstage-y += exception.c @@ -66,10 +57,6 @@ endif ################################################################################ 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 += cpu.S romstage-y += exception.c @@ -86,10 +73,6 @@ endif ################################################################################ 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 += cpu.S ramstage-y += exception.c diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile index 1eecc7e380..68b3705d77 100755 --- a/util/xcompile/xcompile +++ b/util/xcompile/xcompile @@ -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_COMPILER_RT_${TARCH}:=${CC_RT_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 ifeq (\$(CONFIG_COMPILER_GCC)\$(CONFIG_LP_COMPILER_GCC),y) @@ -272,6 +275,7 @@ ifeq (\$(CONFIG_COMPILER_GCC)\$(CONFIG_LP_COMPILER_GCC),y) else CC_${TARCH}:=\$(CLANG_CC_${TARCH}) CFLAGS_${TARCH}:=\$(CLANG_CFLAGS_${TARCH}) + CPPFLAGS_${TARCH}:=\$(CLANG_CPPFLAGS_${TARCH}) COMPILER_RT_${TARCH}:=\$(CLANG_COMPILER_RT_${TARCH}) COMPILER_RT_FLAGS_${TARCH}:=\$(CLANG_COMPILER_RT_FLAGS_${TARCH}) endif @@ -471,7 +475,9 @@ test_architecture() { # but that's more of a clang limitation. Let's be optimistic # that this will change in the future. 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 } |