aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-04-05 19:48:54 -0400
committerTom Rini <trini@konsulko.com>2023-04-25 15:31:27 -0400
commita27c8ea7f7fc269c2bf40468568a387d9e8db976 (patch)
treed15f1551a322e202bee5c30496a3885b18456ccb
parent4ad6850d2b4ad0de6eedffc781d8152ec736e234 (diff)
downloadu-boot-a27c8ea7f7fc269c2bf40468568a387d9e8db976.zip
u-boot-a27c8ea7f7fc269c2bf40468568a387d9e8db976.tar.gz
u-boot-a27c8ea7f7fc269c2bf40468568a387d9e8db976.tar.bz2
arm: Centralize fixed register logic
When building for ARM64, we need to pass -ffixed-x18 and otherwise pass -ffixed-r9. Rather than having this logic in two places, we can do this once in arch/arm/config.mk. Further, while gcc will ignore being passed both -ffixed-r9 and -ffixed-x18 and simply use -ffixed-x18, clang will note that -ffixed-r9 is not used. Remove this duplication to also remove the warning. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--arch/arm/config.mk10
-rw-r--r--arch/arm/cpu/armv8/config.mk1
2 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index bf781f1..5530d02 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -3,7 +3,13 @@
# (C) Copyright 2000-2002
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-CFLAGS_NON_EFI := -fno-pic -ffixed-r9 -ffunction-sections -fdata-sections \
+ifeq ($(CONFIG_ARM64),y)
+FIXED_REG := -ffixed-x18
+else
+FIXED_REG := -ffixed-r9
+endif
+
+CFLAGS_NON_EFI := -fno-pic $(FIXED_REG) -ffunction-sections -fdata-sections \
-fstack-protector-strong
CFLAGS_EFI := -fpic -fshort-wchar
@@ -15,7 +21,7 @@ ifneq ($(LTO_ENABLE),y)
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
endif
-PLATFORM_RELFLAGS += -fno-common -ffixed-r9
+PLATFORM_RELFLAGS += -fno-common $(FIXED_REG)
PLATFORM_RELFLAGS += $(call cc-option, -msoft-float) \
$(call cc-option,-mgeneral-regs-only) \
$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
diff --git a/arch/arm/cpu/armv8/config.mk b/arch/arm/cpu/armv8/config.mk
index ca06ed3..4d74b2a 100644
--- a/arch/arm/cpu/armv8/config.mk
+++ b/arch/arm/cpu/armv8/config.mk
@@ -2,7 +2,6 @@
#
# (C) Copyright 2002
# Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
-PLATFORM_RELFLAGS += -fno-common -ffixed-x18
PLATFORM_RELFLAGS += $(call cc-option,-mbranch-protection=none)
PF_NO_UNALIGNED := $(call cc-option, -mstrict-align)