Introduce TF_LDFLAGS

Use TF_LDFLAGS from the Makefiles, and still append LDFLAGS as well to
the compiler's invocation. This allows passing extra options from the
make command line using LDFLAGS.

Document new LDFLAGS Makefile option.

Change-Id: I88c5ac26ca12ac2b2d60a6f150ae027639991f27
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
diff --git a/Makefile b/Makefile
index 91f7c92..b9805c7 100644
--- a/Makefile
+++ b/Makefile
@@ -151,10 +151,9 @@
 				-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 1a07954..0e9da35 100644
--- a/docs/user-guide.md
+++ b/docs/user-guide.md
@@ -385,6 +385,9 @@
     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.
diff --git a/lib/cpus/cpu-ops.mk b/lib/cpus/cpu-ops.mk
index 218a548..ad32971 100644
--- a/lib/cpus/cpu-ops.mk
+++ b/lib/cpus/cpu-ops.mk
@@ -145,10 +145,10 @@
 
 # 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 34d82c9..aee045d 100644
--- a/make_helpers/build_macros.mk
+++ b/make_helpers/build_macros.mk
@@ -313,8 +313,8 @@
 	       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      $$@"