diff options
author | Jerome Forissier <jerome.forissier@linaro.org> | 2016-02-24 13:01:45 +0100 |
---|---|---|
committer | Jerome Forissier <jerome.forissier@linaro.org> | 2016-02-29 10:46:37 +0100 |
commit | b09cddcab1eee090886ca94ab9a4958ec6e174e0 (patch) | |
tree | 18210c4c584cea39c8193a30668882153924d0af | |
parent | 92db3e0c5a6797849a081225cd48c7e6a22348c8 (diff) |
Introduce CFLAGS32 and CFLAGS64
Previously, compile.mk and gcc.mk were using $(CFLAGS) which cannot
properly handle 32-bit and 64-bit compiles. This commit introduces
CFLAGS32 and CFLAGS64 instead, which are set to $(CFLAGS) by defaut
for convenience.
For each submodule (core, ta_arm32, ta_arm64) a new internal variable
is defined in the architecture makefile (core/arch/arm/arm.mk):
arch-bits-$(sm). Its value is either 32 or 64. This can later be used
to reference the proper CFLAGS.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r-- | core/arch/arm/arm.mk | 11 | ||||
-rw-r--r-- | mk/compile.mk | 2 | ||||
-rw-r--r-- | mk/config.mk | 6 | ||||
-rw-r--r-- | mk/gcc.mk | 2 |
4 files changed, 15 insertions, 6 deletions
diff --git a/core/arch/arm/arm.mk b/core/arch/arm/arm.mk index a2a514c8..b9528325 100644 --- a/core/arch/arm/arm.mk +++ b/core/arch/arm/arm.mk @@ -64,14 +64,14 @@ core-platform-aflags += $(platform-aflags-generic) core-platform-aflags += $(platform-aflags-debug-info) ifeq ($(CFG_ARM64_core),y) -CROSS_COMPILE_core ?= $(CROSS_COMPILE64) +arch-bits-core := 64 core-platform-cppflags += $(arm64-platform-cppflags) core-platform-cflags += $(arm64-platform-cflags) core-platform-cflags += $(arm64-platform-cflags-generic) core-platform-cflags += $(arm64-platform-cflags-no-hard-float) core-platform-aflags += $(arm64-platform-aflags) else -CROSS_COMPILE_core ?= $(CROSS_COMPILE32) +arch-bits-core := 32 core-platform-cppflags += $(arm32-platform-cppflags) core-platform-cflags += $(arm32-platform-cflags) core-platform-cflags += $(arm32-platform-cflags-no-hard-float) @@ -86,7 +86,7 @@ endif ifneq ($(filter ta_arm32,$(ta-targets)),) # Variables for ta-target/sm "ta_arm32" CFG_ARM32_ta_arm32 := y -CROSS_COMPILE_ta_arm32 ?= $(CROSS_COMPILE32) +arch-bits-ta_arm32 := 32 ta_arm32-platform-cppflags += $(arm32-platform-cppflags) ta_arm32-platform-cflags += $(arm32-platform-cflags) ta_arm32-platform-cflags += $(platform-cflags-optimization) @@ -113,7 +113,7 @@ endif ifneq ($(filter ta_arm64,$(ta-targets)),) # Variables for ta-target/sm "ta_arm64" CFG_ARM64_ta_arm64 := y -CROSS_COMPILE_ta_arm64 ?= $(CROSS_COMPILE64) +arch-bits-ta_arm64 := 64 ta_arm64-platform-cppflags += $(arm64-platform-cppflags) ta_arm64-platform-cflags += $(arm64-platform-cflags) ta_arm64-platform-cflags += $(platform-cflags-optimization) @@ -136,3 +136,6 @@ ta-mk-file-export-vars-ta_arm64 += ta_arm64-platform-aflags ta-mk-file-export-add-ta_arm64 += CROSS_COMPILE64 ?= $$(CROSS_COMPILE)_nl_ ta-mk-file-export-add-ta_arm64 += CROSS_COMPILE_ta_arm64 ?= $$(CROSS_COMPILE64)_nl_ endif + +# Set cross compiler prefix for each submodule +$(foreach sm, core $(ta-targets), $(eval CROSS_COMPILE_$(sm) ?= $(CROSS_COMPILE$(arch-bits-$(sm))))) diff --git a/mk/compile.mk b/mk/compile.mk index 729197a9..7a587e22 100644 --- a/mk/compile.mk +++ b/mk/compile.mk @@ -71,7 +71,7 @@ ifeq ($$(filter %.c,$1),$1) comp-q-$2 := CC comp-flags-$2 = $$(filter-out $$(CFLAGS_REMOVE) $$(cflags-remove) \ $$(cflags-remove-$2), \ - $$(CFLAGS) $$(CFLAGS_WARNS) \ + $$(CFLAGS$$(arch-bits-$$(comp-sm-$2))) $$(CFLAGS_WARNS) \ $$(comp-cflags$$(comp-sm-$2)) $$(cflags$$(comp-sm-$2)) \ $$(cflags-lib$$(comp-lib-$2)) $$(cflags-$2)) ifeq ($C,1) diff --git a/mk/config.mk b/mk/config.mk index 306cc833..25b7702f 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -22,6 +22,12 @@ CROSS_COMPILE32 ?= $(CROSS_COMPILE) CROSS_COMPILE64 ?= aarch64-linux-gnu- COMPILER ?= gcc +# For convenience +ifdef CFLAGS +CFLAGS32 ?= $(CFLAGS) +CFLAGS64 ?= $(CFLAGS) +endif + # Compiler warning level. # Supported values: undefined, 1, 2 and 3. 3 gives more warnings. WARNS ?= 3 @@ -12,7 +12,7 @@ nostdinc$(sm) := -nostdinc -isystem $(shell $(CC$(sm)) \ -print-file-name=include 2> /dev/null) # Get location of libgcc from gcc -libgcc$(sm) := $(shell $(CC$(sm)) $(CFLAGS) $(comp-cflags$(sm)) \ +libgcc$(sm) := $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) $(comp-cflags$(sm)) \ -print-libgcc-file-name 2> /dev/null) # Define these to something to discover accidental use |