From dea23e245fb890c6c06eff7d1aed8fffa981fc05 Mon Sep 17 00:00:00 2001 From: Govindraj Raja Date: Fri, 5 May 2023 09:09:36 -0500 Subject: fix(build): allow lower address access with gcc-12 With gcc-12 any lower address access can trigger a warning/error this would be useful in other parts of system but in TF-A there are various reasons to access to the lower address ranges, example using mmio_read_*/writes_* So setup to allow access to lower addresses while using gcc-12 Change-Id: Id1b4012b13bc6876d83b90a347fee12478a1921d Signed-off-by: Govindraj Raja --- Makefile | 4 ++++ make_helpers/build_macros.mk | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Makefile b/Makefile index 7368ca59b..8caa5239a 100644 --- a/Makefile +++ b/Makefile @@ -414,6 +414,10 @@ ifeq ($(findstring clang,$(notdir $(CC))),) WARNINGS += -Wunused-but-set-variable -Wmaybe-uninitialized \ -Wpacked-bitfield-compat -Wshift-overflow=2 \ -Wlogical-op + +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523 +TF_CFLAGS += $(call cc_option, --param=min-pagesize=0) + else # using clang WARNINGS += -Wshift-overflow -Wshift-sign-overflow \ diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk index 0c82a715a..9bf26f083 100644 --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -104,6 +104,12 @@ define ld_option $(shell if $(LD) $(1) -v >/dev/null 2>&1; then echo $(1); fi ) endef +# Convenience function to check for a given compiler option. A call to +# $(call cc_option, --no-XYZ) will return --no-XYZ if supported by the compiler +define cc_option + $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null >/dev/null 2>&1; then echo $(1); fi ) +endef + # CREATE_SEQ is a recursive function to create sequence of numbers from 1 to # $(2) and assign the sequence to $(1) define CREATE_SEQ -- cgit v1.2.1 From 9e2e777a2be7ac66a10110f2c389f3153f1fa5d6 Mon Sep 17 00:00:00 2001 From: Jayanth Dodderi Chidanand Date: Tue, 18 Apr 2023 10:50:56 +0100 Subject: docs(build): update GCC to 12.2.Rel1 version Updating toolchain to the latest production release version 12.2.Rel1 publicly available on https://developer.arm.com/ We build TF-A in CI using: AArch32 bare-metal target (arm-none-eabi) AArch64 ELF bare-metal target (aarch64-none-elf) Change-Id: Ib603cf7417e6878683a1100d5f55311188e36e8e Signed-off-by: Jayanth Dodderi Chidanand --- docs/getting_started/prerequisites.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started/prerequisites.rst b/docs/getting_started/prerequisites.rst index bf10ecffb..a3f8cc850 100644 --- a/docs/getting_started/prerequisites.rst +++ b/docs/getting_started/prerequisites.rst @@ -26,7 +26,7 @@ Toolchain |TF-A| can be built with any of the following *cross-compiler* toolchains that target the Armv7-A or Armv8-A architectures: -- GCC >= 11.3.Rel1 (from the `Arm Developer website`_) +- GCC >= 12.2.Rel1 (from the `Arm Developer website`_) You will need the targets ``arm-none-eabi`` and ``aarch64-none-elf`` for AArch32 and AArch64 builds respectively. -- cgit v1.2.1