summaryrefslogtreecommitdiff
path: root/StdLib
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-08-08 12:46:50 +0200
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2016-08-09 10:08:35 +0200
commit78d706e23512435c8166afe88600c4de493e0e68 (patch)
treea915fc104b19ef6cf9b1c188dc53d6d6c9e2a4d4 /StdLib
parent0f73cca02b645267cb11ab8ddf1ba88af5ec3246 (diff)
downloadedk2-78d706e23512435c8166afe88600c4de493e0e68.zip
edk2-78d706e23512435c8166afe88600c4de493e0e68.tar.gz
edk2-78d706e23512435c8166afe88600c4de493e0e68.tar.bz2
StdLib/LibC: avoid LTO code for compiler intrinsics
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 <ard.biesheuvel@linaro.org> Reviewed-by: Michael Zimmermann <sigmaepsilon92@gmail.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Diffstat (limited to 'StdLib')
-rw-r--r--StdLib/LibC/LibC.inf1
-rw-r--r--StdLib/LibC/Softfloat/Softfloat.inf2
2 files changed, 2 insertions, 1 deletions
diff --git a/StdLib/LibC/LibC.inf b/StdLib/LibC/LibC.inf
index f136306..6039bb8 100644
--- a/StdLib/LibC/LibC.inf
+++ b/StdLib/LibC/LibC.inf
@@ -120,3 +120,4 @@
#
[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 99763bc..460406c 100644
--- a/StdLib/LibC/Softfloat/Softfloat.inf
+++ b/StdLib/LibC/Softfloat/Softfloat.inf
@@ -71,4 +71,4 @@
# 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