The softfloat routines and some other routines supplied by LibC will satisfy references to compiler intrinsics that are emitted by the compiler backend, which under LTO means that the link-time code generation may emit references to symbols that have been optimized away already.
Work around this by building the ARM and AARCH64 versions of LibC and the softfloat library without LTO. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <[email protected]> --- StdLib/LibC/LibC.inf | 1 + StdLib/LibC/Softfloat/Softfloat.inf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/StdLib/LibC/LibC.inf b/StdLib/LibC/LibC.inf index f13630648555..6039bb81c7dd 100644 --- a/StdLib/LibC/LibC.inf +++ b/StdLib/LibC/LibC.inf @@ -120,3 +120,4 @@ [LibraryClasses] # [BuildOptions] MSFT:*_*_IA32_CC_FLAGS = /GL- + GCC:*_*_ARM_CC_FLAGS = -fno-lto diff --git a/StdLib/LibC/Softfloat/Softfloat.inf b/StdLib/LibC/Softfloat/Softfloat.inf index 99763bcb57ba..460406c38fa4 100644 --- a/StdLib/LibC/Softfloat/Softfloat.inf +++ b/StdLib/LibC/Softfloat/Softfloat.inf @@ -71,4 +71,4 @@ [Packages] # Nasty things could happen if you do. [BuildOptions] - GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-tree-vrp + GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-tree-vrp -fno-lto -- 2.7.4 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

