arm-trusted-firmware/make_helpers
zelalem-aweke edbce9aad4 Enable Link Time Optimization in GCC
This patch enables LTO for TF-A when compiled with GCC.
LTO is disabled by default and is enabled by
ENABLE_LTO=1 build option.

LTO is enabled only for aarch64 as there seem to be
a bug in the aarch32 compiler when LTO is enabled.

The changes in the makefiles include:
- Adding -flto and associated flags to enable LTO.
- Using gcc as a wrapper at link time instead of ld.
  This is recommended when using LTO as gcc internally
  takes care of invoking the necessary plugins for LTO.
- Adding switches to pass options to ld.
- Adding a flag to disable fix for erratum cortex-a53-843419
  unless explicitly enabled. This is needed because GCC
  seem to automatically add the erratum fix when used
  as a wrapper for LD.

Additionally, this patch updates the TF-A user guide with
the new build option.

Signed-off-by: zelalem-aweke <zelalem.aweke@arm.com>
Change-Id: I1188c11974da98434b7dc9344e058cd1eacf5468
2019-12-02 09:23:43 -06:00
..
tbbr Add cert_create tool support for RSA key sizes 2019-09-12 15:27:41 +01:00
armv7-a-cpus.mk plat/arm: Support for Cortex A5 in FVP Versatile Express platform 2019-02-19 17:07:48 +00:00
build_env.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
build_macros.mk Enable Link Time Optimization in GCC 2019-12-02 09:23:43 -06:00
cygwin.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
defaults.mk Enable Link Time Optimization in GCC 2019-12-02 09:23:43 -06:00
msys.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
plat_helpers.mk Change PLATFORM_ROOT to TF_PLATFORM_ROOT 2018-03-05 14:18:04 +08:00
unix.mk Makefile: Fix verbose builds on Windows 2018-10-19 15:54:27 +01:00
windows.mk Makefile: Fix verbose builds on Windows 2018-10-19 15:54:27 +01:00