summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanh-arm <dan.handley@arm.com>2017-06-28 15:50:20 +0100
committerGitHub <noreply@github.com>2017-06-28 15:50:20 +0100
commit1979ee13a5806f8f203dd056b4124949ab58df17 (patch)
tree3be5e7501113a2ea636107b9833ad406a098cef2
parent6bf362496933a7795273d8cac1bbdd2966dfab33 (diff)
parentf7ad7a63c5d86d6e573ca40bbd159375c0642476 (diff)
Merge pull request #1008 from douglas-raillard-arm/dr/add_TF_LDFLAGS
Introduce TF_LDFLAGS and improve CFLAGS documentation
-rw-r--r--Makefile7
-rw-r--r--docs/user-guide.md12
-rw-r--r--lib/cpus/cpu-ops.mk4
-rw-r--r--make_helpers/build_macros.mk4
4 files changed, 18 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 91f7c927..b9805c77 100644
--- a/Makefile
+++ b/Makefile
@@ -151,10 +151,9 @@ TF_CFLAGS += $(CPPFLAGS) $(TF_CFLAGS_$(ARCH)) \
-ffreestanding -fno-builtin -Wall -std=gnu99 \
-Os -ffunction-sections -fdata-sections
-LDFLAGS += $(LDFLAGS_$(ARCH))
-LDFLAGS += --fatal-warnings -O1
-LDFLAGS += --gc-sections
-
+TF_LDFLAGS += --fatal-warnings -O1
+TF_LDFLAGS += --gc-sections
+TF_LDFLAGS += $(TF_LDFLAGS_$(ARCH))
################################################################################
# Common sources and include directories
diff --git a/docs/user-guide.md b/docs/user-guide.md
index 1a07954a..29691c5b 100644
--- a/docs/user-guide.md
+++ b/docs/user-guide.md
@@ -269,6 +269,9 @@ performed.
* `BUILD_STRING`: Input string for VERSION_STRING, which allows the TF build
to be uniquely identified. Defaults to the current git commit id.
+* `CFLAGS`: Extra user options appended on the compiler's command line in
+ addition to the options set by the build system.
+
* `COLD_BOOT_SINGLE_CPU`: This option indicates whether the platform may
release several CPUs out of reset. It can take either 0 (several CPUs may be
brought up) or 1 (only one CPU will ever be brought up during cold reset).
@@ -385,6 +388,9 @@ performed.
AArch64 and facilitates the loading of `SP_MIN` and BL33 as AArch32 executable
images.
+* `LDFLAGS`: Extra user options appended to the linkers' command line in
+ addition to the one set by the build system.
+
* `LOAD_IMAGE_V2`: Boolean option to enable support for new version (v2) of
image loading, which provides more flexibility and scalability around what
images are loaded and executed during boot. Default is 0.
@@ -684,11 +690,15 @@ NOTE: Using `-O0` could cause output images to be larger and base addresses
might need to be recalculated (see the **Memory layout on ARM development
platforms** section in the [Firmware Design]).
-Extra debug options can be passed to the build system by setting `CFLAGS`:
+Extra debug options can be passed to the build system by setting `CFLAGS` or
+`LDFLAGS`:
CFLAGS='-O0 -gdwarf-2' \
make PLAT=<platform> DEBUG=1 V=1 all
+Note that using `-Wl,` style compilation driver options in `CFLAGS` will be
+ignored as the linker is called directly.
+
It is also possible to introduce an infinite loop to help in debugging the
post-BL2 phase of the Trusted Firmware. This can be done by rebuilding BL1 with
the `SPIN_ON_BL1_EXIT=1` build flag. Refer to the "Summary of build options"
diff --git a/lib/cpus/cpu-ops.mk b/lib/cpus/cpu-ops.mk
index 218a5482..ad329719 100644
--- a/lib/cpus/cpu-ops.mk
+++ b/lib/cpus/cpu-ops.mk
@@ -145,10 +145,10 @@ $(eval $(call add_define,ERRATA_A57_833471))
# Errata build flags
ifneq (${ERRATA_A53_843419},0)
-LDFLAGS_aarch64 += --fix-cortex-a53-843419
+TF_LDFLAGS_aarch64 += --fix-cortex-a53-843419
endif
ifneq (${ERRATA_A53_835769},0)
TF_CFLAGS_aarch64 += -mfix-cortex-a53-835769
-LDFLAGS_aarch64 += --fix-cortex-a53-835769
+TF_LDFLAGS_aarch64 += --fix-cortex-a53-835769
endif
diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk
index 34d82c9a..aee045de 100644
--- a/make_helpers/build_macros.mk
+++ b/make_helpers/build_macros.mk
@@ -313,8 +313,8 @@ else
const char version_string[] = "${VERSION_STRING}";' | \
$$(CC) $$(TF_CFLAGS) $$(CFLAGS) -xc -c - -o $(BUILD_DIR)/build_message.o
endif
- $$(Q)$$(LD) -o $$@ $$(LDFLAGS) -Map=$(MAPFILE) --script $(LINKERFILE) \
- $(BUILD_DIR)/build_message.o $(OBJS)
+ $$(Q)$$(LD) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) -Map=$(MAPFILE) \
+ --script $(LINKERFILE) $(BUILD_DIR)/build_message.o $(OBJS)
$(DUMP): $(ELF)
@echo " OD $$@"