diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-08-08 12:46:50 +0200 |
---|---|---|
committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-08-09 10:08:35 +0200 |
commit | 78d706e23512435c8166afe88600c4de493e0e68 (patch) | |
tree | a915fc104b19ef6cf9b1c188dc53d6d6c9e2a4d4 /StdLib | |
parent | 0f73cca02b645267cb11ab8ddf1ba88af5ec3246 (diff) | |
download | edk2-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.inf | 1 | ||||
-rw-r--r-- | StdLib/LibC/Softfloat/Softfloat.inf | 2 |
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
|