• zelalem-aweke's avatar
    Enable Link Time Optimization in GCC · edbce9aa
    zelalem-aweke authored
    
    
    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: default avatarzelalem-aweke <zelalem.aweke@arm.com>
    Change-Id: I1188c11974da98434b7dc9344e058cd1eacf5468
    edbce9aa
build_macros.mk 18 KB