aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/arm.mk
diff options
context:
space:
mode:
authorJerome Forissier <jerome.forissier@linaro.org>2018-06-02 15:59:24 +0200
committerJérôme Forissier <jerome.forissier@linaro.org>2018-06-04 11:25:14 +0200
commitc8f568354b16896704e9f8e5f73b28df5f4c8eac (patch)
tree5c11a06d2f4c017ed153c0a5f9c5edb5844ec04b /core/arch/arm/arm.mk
parent4538c4f98ae5c6519c483e89dacd9bfa8df290bb (diff)
core: introduce configuration flags for debug info and optimization
Introduces CFG_CC_OPTIMIZE_FOR_SIZE (default y) which selects the C compiler flag -Os and -O0 otherwise, and CFG_DEBUG_INFO (default y) which selects the C compiler flag -g3 and assembler flag -g. DEBUG=1 is kept for compatibility. Being able to compile without -g is useful to get much better performance from ccache thanks to its 'unify' option [1]. Link: https://github.com/ccache/ccache/blob/v3.4.2/doc/MANUAL.adoc#configuration-settings Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Diffstat (limited to 'core/arch/arm/arm.mk')
-rw-r--r--core/arch/arm/arm.mk20
1 files changed, 15 insertions, 5 deletions
diff --git a/core/arch/arm/arm.mk b/core/arch/arm/arm.mk
index ba858b41..aa101be8 100644
--- a/core/arch/arm/arm.mk
+++ b/core/arch/arm/arm.mk
@@ -77,8 +77,8 @@ endif
arm64-platform-cppflags += -DARM64=1 -D__LP64__=1
arm32-platform-cppflags += -DARM32=1 -D__ILP32__=1
-platform-cflags-generic ?= -g -ffunction-sections -fdata-sections -pipe
-platform-aflags-generic ?= -g -pipe
+platform-cflags-generic ?= -ffunction-sections -fdata-sections -pipe
+platform-aflags-generic ?= -pipe
arm32-platform-cflags-no-hard-float ?= -mfloat-abi=soft
arm32-platform-cflags-hard-float ?= -mfloat-abi=hard -funsafe-math-optimizations
@@ -91,13 +91,23 @@ arm64-platform-cflags-hard-float ?=
arm64-platform-cflags-generic ?= -mstrict-align
ifeq ($(DEBUG),1)
-platform-cflags-optimization ?= -O0
+# For backwards compatibility
+$(call force,CFG_CC_OPTIMIZE_FOR_SIZE,n)
+$(call force,CFG_DEBUG_INFO,y)
+endif
+
+CFG_CC_OPTIMIZE_FOR_SIZE ?= y
+ifeq ($(CFG_CC_OPTIMIZE_FOR_SIZE),y)
+platform-cflags-optimization ?= -Os
else
-platform-cflags-optimization ?= -Os
+platform-cflags-optimization ?= -O0
endif
+CFG_DEBUG_INFO ?= y
+ifeq ($(CFG_DEBUG_INFO),y)
platform-cflags-debug-info ?= -g3
-platform-aflags-debug-info ?=
+platform-aflags-debug-info ?= -g
+endif
core-platform-cflags += $(platform-cflags-optimization)
core-platform-cflags += $(platform-cflags-generic)