From 8620bd0b93b8ed913f2157d6946facd5bd75f6b4 Mon Sep 17 00:00:00 2001 From: Chris Kay <chris.kay@arm.com> Date: Mon, 4 Dec 2023 09:55:50 +0000 Subject: [PATCH] build: use toolchain identifiers in conditions The toolchain refactor change introduces the `${toolchain}-${tool}-id` variables, which provide identifiers for all of the toolchain tools used by the build system. This change replaces the various conditions that are in use to identify these tools based on the path with a standard set of comparisons against these new identifier variables. Change-Id: Ib60e592359fa6e415c19a012e68d660f87436ca7 Signed-off-by: Chris Kay <chris.kay@arm.com> --- Makefile | 30 +++++++++++++++--------------- bl1/bl1.mk | 4 ++-- bl2/bl2.mk | 6 +++--- bl2u/bl2u.mk | 4 ++-- bl31/bl31.mk | 4 ++-- bl32/sp_min/sp_min.mk | 4 ++-- bl32/tsp/tsp.mk | 4 ++-- make_helpers/build_macros.mk | 6 +++--- make_helpers/march.mk | 2 +- plat/amlogic/axg/platform.mk | 4 ++-- plat/amlogic/g12a/platform.mk | 4 ++-- plat/amlogic/gxbb/platform.mk | 4 ++-- plat/amlogic/gxl/platform.mk | 4 ++-- plat/nvidia/tegra/platform.mk | 2 +- plat/rpi/rpi3/platform.mk | 4 ++-- plat/rpi/rpi4/platform.mk | 4 ++-- plat/st/common/common_rules.mk | 2 +- services/std_svc/rmmd/trp/trp.mk | 4 ++-- 18 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Makefile b/Makefile index 1fffc1853..aeff5570a 100644 --- a/Makefile +++ b/Makefile @@ -144,8 +144,8 @@ endif #(ARM_ARCH_MAJOR) ################################################################################ arch-features = ${ARM_ARCH_FEATURE} -ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) - ifneq ($(findstring armclang,$(notdir $($(ARCH)-cc))),) +ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) + ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch32 := -target arm-arm-none-eabi TF_CFLAGS_aarch64 := -target aarch64-arm-none-eabi else @@ -153,7 +153,7 @@ ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) TF_CFLAGS_aarch64 := -target aarch64-elf endif -else ifneq ($(findstring gcc,$(notdir $($(ARCH)-cc))),) +else ifeq ($($(ARCH)-cc-id),gnu-gcc) ifeq ($(ENABLE_LTO),1) # Enable LTO only for aarch64 ifeq (${ARCH},aarch64) @@ -256,7 +256,7 @@ else ifeq (${W},3) endif #(W) # Compiler specific warnings -ifeq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +ifeq ($(filter %-clang,$($(ARCH)-cc-id)),) # not using clang WARNINGS += -Wunused-but-set-variable -Wmaybe-uninitialized \ -Wpacked-bitfield-compat -Wshift-overflow=2 \ @@ -305,13 +305,13 @@ GCC_V_OUTPUT := $(shell $($(ARCH)-cc) -v 2>&1) TF_LDFLAGS += -z noexecstack # LD = armlink -ifneq ($(findstring armlink,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),arm-link) TF_LDFLAGS += --diag_error=warning --lto_level=O1 TF_LDFLAGS += --remove --info=unused,unusedsymbols TF_LDFLAGS += $(TF_LDFLAGS_$(ARCH)) # LD = gcc (used when GCC LTO is enabled) -else ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +else ifeq ($($(ARCH)-ld-id),gnu-gcc) # Pass ld options with Wl or Xlinker switches TF_LDFLAGS += $(call ld_option,-Xlinker --no-warn-rwx-segments) TF_LDFLAGS += -Wl,--fatal-warnings -O1 @@ -353,7 +353,7 @@ else # therefore don't add those in that case. # ld.lld reports section type mismatch warnings, # therefore don't add --fatal-warnings to it. - ifeq ($(findstring ld.lld,$(notdir $($(ARCH)-ld))),) + ifneq ($($(ARCH)-ld-id),llvm-lld) TF_LDFLAGS += $(TF_LDFLAGS_$(ARCH)) --fatal-warnings endif @@ -385,7 +385,7 @@ BL_COMMON_SOURCES += common/bl_common.c \ plat/common/${ARCH}/platform_helpers.S \ ${COMPILER_RT_SRCS} -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) BL_COMMON_SOURCES += lib/${ARCH}/armclang_printf.S endif @@ -566,14 +566,14 @@ include ${MAKE_HELPERS_DIRECTORY}arch_features.mk ifeq (${SUPPORT_STACK_MEMTAG},yes) ifdef mem_tag_arch_support # Check for armclang and clang compilers - ifneq ( ,$(filter $(notdir $($(ARCH)-cc)),armclang clang)) + ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) # Add "memtag" architecture feature modifier if not specified ifeq ( ,$(findstring memtag,$(arch-features))) arch-features := $(arch-features)+memtag endif # memtag - ifeq ($(notdir $($(ARCH)-cc)),armclang) + ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS += -mmemtag-stack - else ifeq ($(notdir $($(ARCH)-cc)),clang) + else ifeq ($($(ARCH)-cc-id),llvm-clang) TF_CFLAGS += -fsanitize=memtag endif # armclang endif @@ -687,12 +687,12 @@ endif PIE_FOUND := $(findstring --enable-default-pie,${GCC_V_OUTPUT}) ifneq ($(PIE_FOUND),) TF_CFLAGS += -fno-PIE -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) TF_LDFLAGS += -no-pie endif endif #(PIE_FOUND) -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) PIE_LDFLAGS += -Wl,-pie -Wl,--no-dynamic-linker else PIE_LDFLAGS += -pie --no-dynamic-linker @@ -1417,7 +1417,7 @@ ifeq (${DYN_DISABLE_AUTH},1) $(eval $(call add_define,DYN_DISABLE_AUTH)) endif -ifneq ($(findstring armlink,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),arm-link) $(eval $(call add_define,USE_ARM_LINK)) endif @@ -1449,7 +1449,7 @@ msg_start: ifeq (${ERROR_DEPRECATED},0) # Check if deprecated declarations and cpp warnings should be treated as error or not. -ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) CPPFLAGS += -Wno-error=deprecated-declarations else CPPFLAGS += -Wno-error=deprecated-declarations -Wno-error=cpp diff --git a/bl1/bl1.mk b/bl1/bl1.mk index d11831793..dbb646bd4 100644 --- a/bl1/bl1.mk +++ b/bl1/bl1.mk @@ -29,9 +29,9 @@ ifeq (${ENABLE_PMF},1) BL1_SOURCES += lib/pmf/pmf_main.c endif -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) BL1_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) BL1_LDFLAGS += --sort-section=alignment endif diff --git a/bl2/bl2.mk b/bl2/bl2.mk index 0a0a8b9ce..850d82668 100644 --- a/bl2/bl2.mk +++ b/bl2/bl2.mk @@ -15,9 +15,9 @@ ifeq (${ARCH},aarch64) BL2_SOURCES += common/aarch64/early_exceptions.S endif -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) BL2_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) BL2_LDFLAGS += --sort-section=alignment endif @@ -52,4 +52,4 @@ endif ifeq (${ENABLE_PMF},1) BL2_SOURCES += lib/pmf/pmf_main.c -endif \ No newline at end of file +endif diff --git a/bl2u/bl2u.mk b/bl2u/bl2u.mk index d7601bb70..a4051ecc6 100644 --- a/bl2u/bl2u.mk +++ b/bl2u/bl2u.mk @@ -14,8 +14,8 @@ endif BL2U_DEFAULT_LINKER_SCRIPT_SOURCE := bl2u/bl2u.ld.S -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) BL2U_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) BL2U_LDFLAGS += --sort-section=alignment endif diff --git a/bl31/bl31.mk b/bl31/bl31.mk index fa6f058c9..cd61d017e 100644 --- a/bl31/bl31.mk +++ b/bl31/bl31.mk @@ -167,9 +167,9 @@ endif BL31_DEFAULT_LINKER_SCRIPT_SOURCE := bl31/bl31.ld.S -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) BL31_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) BL31_LDFLAGS += --sort-section=alignment endif diff --git a/bl32/sp_min/sp_min.mk b/bl32/sp_min/sp_min.mk index baf68cbe6..427e39b3b 100644 --- a/bl32/sp_min/sp_min.mk +++ b/bl32/sp_min/sp_min.mk @@ -57,9 +57,9 @@ endif BL32_DEFAULT_LINKER_SCRIPT_SOURCE := bl32/sp_min/sp_min.ld.S -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) BL32_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) BL32_LDFLAGS += --sort-section=alignment endif diff --git a/bl32/tsp/tsp.mk b/bl32/tsp/tsp.mk index 06efe84af..6d8f74b31 100644 --- a/bl32/tsp/tsp.mk +++ b/bl32/tsp/tsp.mk @@ -24,9 +24,9 @@ BL32_SOURCES += bl32/tsp/aarch64/tsp_entrypoint.S \ BL32_DEFAULT_LINKER_SCRIPT_SOURCE := bl32/tsp/tsp.ld.S -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) BL32_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) BL32_LDFLAGS += --sort-section=alignment endif diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk index 7a780f883..a99d51669 100644 --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -477,7 +477,7 @@ $(eval $(call MAKE_LIB_OBJS,$(BUILD_DIR),$(SOURCES),$(1))) .PHONY : lib${1}_dirs lib${1}_dirs: | ${BUILD_DIR} ${LIB_DIR} ${ROMLIB_DIR} ${LIBWRAPPER_DIR} libraries: ${LIB_DIR}/lib$(1).a -ifneq ($(findstring armlink,$(notdir $(LD))),) +ifeq ($($(ARCH)-ld-id),arm-link) LDPATHS = --userlibpath=${LIB_DIR} LDLIBS += --library=$(1) else @@ -575,14 +575,14 @@ else const char version[] = "${VERSION}";' | \ $($(ARCH)-cc) $$(TF_CFLAGS) $$(CFLAGS) -xc -c - -o $(BUILD_DIR)/build_message.o endif -ifneq ($(findstring armlink,$(notdir $(LD))),) +ifeq ($($(ARCH)-ld-id),arm-link) $$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) --entry=${1}_entrypoint \ --predefine="-D__LINKER__=$(__LINKER__)" \ --predefine="-DTF_CFLAGS=$(TF_CFLAGS)" \ --map --list="$(MAPFILE)" --scatter=${PLAT_DIR}/scat/${1}.scat \ $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) \ $(BUILD_DIR)/build_message.o $(OBJS) -else ifneq ($(findstring gcc,$(notdir $(LD))),) +else ifeq ($($(ARCH)-ld-id),gnu-gcc) $$(Q)$($(ARCH)-ld) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) -Wl,-Map=$(MAPFILE) \ $(addprefix -Wl$(comma)--script$(comma),$(LINKER_SCRIPTS)) -Wl,--script,$(DEFAULT_LINKER_SCRIPT) \ $(BUILD_DIR)/build_message.o \ diff --git a/make_helpers/march.mk b/make_helpers/march.mk index 9c42ae686..25bb93607 100644 --- a/make_helpers/march.mk +++ b/make_helpers/march.mk @@ -54,7 +54,7 @@ else provided-march = armv${ARM_ARCH_MAJOR}.${ARM_ARCH_MINOR}-a endif -ifeq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +ifeq ($(filter %-clang,$($(ARCH)-cc-id)),) # We expect from Platform to provide a correct Major/Minor value but expecting something # from compiler with unsupported march means we shouldn't fail without trying anything, diff --git a/plat/amlogic/axg/platform.mk b/plat/amlogic/axg/platform.mk index e6a9b041c..64b35d65a 100644 --- a/plat/amlogic/axg/platform.mk +++ b/plat/amlogic/axg/platform.mk @@ -41,9 +41,9 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ ${GIC_SOURCES} # Tune compiler for Cortex-A53 -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 -else ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +else ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 else TF_CFLAGS_aarch64 += -mtune=cortex-a53 diff --git a/plat/amlogic/g12a/platform.mk b/plat/amlogic/g12a/platform.mk index 58ca7324c..799e10667 100644 --- a/plat/amlogic/g12a/platform.mk +++ b/plat/amlogic/g12a/platform.mk @@ -41,9 +41,9 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ ${GIC_SOURCES} # Tune compiler for Cortex-A53 -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 -else ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +else ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 else TF_CFLAGS_aarch64 += -mtune=cortex-a53 diff --git a/plat/amlogic/gxbb/platform.mk b/plat/amlogic/gxbb/platform.mk index f1c1a9ffe..fbebd3e70 100644 --- a/plat/amlogic/gxbb/platform.mk +++ b/plat/amlogic/gxbb/platform.mk @@ -37,9 +37,9 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ ${GIC_SOURCES} # Tune compiler for Cortex-A53 -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 -else ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +else ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 else TF_CFLAGS_aarch64 += -mtune=cortex-a53 diff --git a/plat/amlogic/gxl/platform.mk b/plat/amlogic/gxl/platform.mk index e8871cd62..0a8848274 100644 --- a/plat/amlogic/gxl/platform.mk +++ b/plat/amlogic/gxl/platform.mk @@ -41,9 +41,9 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ ${GIC_SOURCES} # Tune compiler for Cortex-A53 -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 -else ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +else ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 else TF_CFLAGS_aarch64 += -mtune=cortex-a53 diff --git a/plat/nvidia/tegra/platform.mk b/plat/nvidia/tegra/platform.mk index 0221b5ec8..6ca90a0af 100644 --- a/plat/nvidia/tegra/platform.mk +++ b/plat/nvidia/tegra/platform.mk @@ -82,7 +82,7 @@ override LIBC_SRCS := $(addprefix lib/libc/, \ INCLUDES += -Iinclude/lib/libc \ -Iinclude/lib/libc/$(ARCH) \ -ifneq ($(findstring armlink,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),arm-link) # o suppress warnings for section mismatches, undefined symbols # o use only those libraries that are specified in the input file # list to resolve references diff --git a/plat/rpi/rpi3/platform.mk b/plat/rpi/rpi3/platform.mk index 3af177cf5..26a3268bc 100644 --- a/plat/rpi/rpi3/platform.mk +++ b/plat/rpi/rpi3/platform.mk @@ -52,9 +52,9 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ ${LIBFDT_SRCS} # Tune compiler for Cortex-A53 -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 -else ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +else ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) TF_CFLAGS_aarch64 += -mcpu=cortex-a53 else TF_CFLAGS_aarch64 += -mtune=cortex-a53 diff --git a/plat/rpi/rpi4/platform.mk b/plat/rpi/rpi4/platform.mk index 0b5fef792..42a54164e 100644 --- a/plat/rpi/rpi4/platform.mk +++ b/plat/rpi/rpi4/platform.mk @@ -39,9 +39,9 @@ RESET_TO_BL31 := 1 COLD_BOOT_SINGLE_CPU := 0 # Tune compiler for Cortex-A72 -ifeq ($(notdir $($(ARCH)-cc)),armclang) +ifeq ($($(ARCH)-cc-id),arm-clang) TF_CFLAGS_aarch64 += -mcpu=cortex-a72 -else ifneq ($(findstring clang,$(notdir $($(ARCH)-cc))),) +else ifneq ($(filter %-clang,$($(ARCH)-cc-id)),) TF_CFLAGS_aarch64 += -mcpu=cortex-a72 else TF_CFLAGS_aarch64 += -mtune=cortex-a72 diff --git a/plat/st/common/common_rules.mk b/plat/st/common/common_rules.mk index 7f45bf255..212a67d51 100644 --- a/plat/st/common/common_rules.mk +++ b/plat/st/common/common_rules.mk @@ -57,7 +57,7 @@ $(eval $(call MAKE_LD,${STM32_TF_LINKERFILE},$(STM32_LD_FILE),bl2)) tf-a-%.elf: $(PLAT)-%.o ${STM32_TF_LINKERFILE} @echo " LDS $<" -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) ${Q}$($(ARCH)-ld) -o $@ $(subst --,-Wl$(comma)--,${STM32_TF_ELF_LDFLAGS}) -nostartfiles -Wl,-Map=$(@:.elf=.map) -Wl,-dT ${STM32_TF_LINKERFILE} $< else ${Q}$($(ARCH)-ld) -o $@ ${STM32_TF_ELF_LDFLAGS} -Map=$(@:.elf=.map) --script ${STM32_TF_LINKERFILE} $< diff --git a/services/std_svc/rmmd/trp/trp.mk b/services/std_svc/rmmd/trp/trp.mk index 467a4e2ca..bb9634316 100644 --- a/services/std_svc/rmmd/trp/trp.mk +++ b/services/std_svc/rmmd/trp/trp.mk @@ -10,9 +10,9 @@ RMM_SOURCES += services/std_svc/rmmd/trp/trp_entry.S \ RMM_DEFAULT_LINKER_SCRIPT_SOURCE := services/std_svc/rmmd/trp/linker.ld.S -ifneq ($(findstring gcc,$(notdir $($(ARCH)-ld))),) +ifeq ($($(ARCH)-ld-id),gnu-gcc) RMM_LDFLAGS += -Wl,--sort-section=alignment -else ifneq ($(findstring ld,$(notdir $($(ARCH)-ld))),) +else ifneq ($(filter llvm-lld gnu-ld,$($(ARCH)-ld-id)),) RMM_LDFLAGS += --sort-section=alignment endif