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>
124 lines
3.3 KiB
INI
124 lines
3.3 KiB
INI
## @file
|
|
# Standard C library: Miscelaneous implementations.
|
|
#
|
|
# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = LibC
|
|
FILE_GUID = 695bec93-82ae-4c17-bdad-7f184f4e651d
|
|
MODULE_TYPE = UEFI_APPLICATION
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = LibC
|
|
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 IPF
|
|
#
|
|
|
|
[Sources]
|
|
Main/errno.c
|
|
Main/assert.c
|
|
Main/isinfd_ieee754.c
|
|
Main/isinff_ieee754.c
|
|
Main/isnand_ieee754.c
|
|
Main/isnanf_ieee754.c
|
|
Main/infinityf_ieee754.c
|
|
Main/Main.c
|
|
Main/HtoNtoH.c
|
|
Main/ByteSwap.c
|
|
Main/longjmp.c
|
|
|
|
[Sources.IA32]
|
|
Main/x86flt_rounds.c
|
|
Main/Ia32/fpu_rmode.asm | MSFT
|
|
Main/Ia32/fpu_rmode.asm | INTEL
|
|
Main/Ia32/fpu_rmode.S | GCC
|
|
Main/Ia32/isinfl.c
|
|
Main/Ia32/isnanl.c
|
|
|
|
# Compiler helper (C RunTime) functions
|
|
CRT/Ia32/llmul.c | MSFT # __allmul
|
|
CRT/Ia32/llshl.c | MSFT # __allshl
|
|
CRT/Ia32/llshr.c | MSFT # __allshr
|
|
CRT/Ia32/ulldiv.c | MSFT # __aulldiv
|
|
CRT/Ia32/ullrem.c | MSFT # __aullrem
|
|
CRT/Ia32/ullshr.c | MSFT # __aullshr
|
|
CRT/Ia32/lldiv.c | MSFT # __alldiv
|
|
CRT/Ia32/llrem.c | MSFT # __allrem
|
|
CRT/Ia32/lldvrm.c | MSFT # __alldvrm
|
|
CRT/Ia32/ulldvrm.c | MSFT # __aulldvrm
|
|
|
|
CRT/Ia32/llmul.c | INTEL
|
|
CRT/Ia32/llshl.c | INTEL
|
|
CRT/Ia32/llshr.c | INTEL
|
|
CRT/Ia32/ulldiv.c | INTEL
|
|
CRT/Ia32/ullrem.c | INTEL
|
|
CRT/Ia32/ullshr.c | INTEL
|
|
CRT/Ia32/lldiv.c | INTEL
|
|
CRT/Ia32/llrem.c | INTEL
|
|
CRT/Ia32/lldvrm.c | INTEL
|
|
CRT/Ia32/ulldvrm.c | INTEL
|
|
|
|
CRT/Gcc.c | GCC
|
|
|
|
[Sources.X64]
|
|
Main/x86flt_rounds.c
|
|
Main/X64/fpu_rmode.asm | MSFT
|
|
Main/X64/fpu_rmode.asm | INTEL
|
|
Main/X64/fpu_rmode.S | GCC
|
|
Main/X64/isinfl.c
|
|
Main/X64/isnanl.c
|
|
|
|
[Sources.IPF]
|
|
Main/x86flt_rounds.c
|
|
Main/Ipf/FpuRmode.s
|
|
|
|
[Sources.ARM]
|
|
Main/Arm/fixunsdfsi.c
|
|
Main/Arm/floatunsidf.c
|
|
Main/Arm/flt_rounds.c
|
|
|
|
[Sources.AARCH64]
|
|
Main/Arm/flt_rounds.c
|
|
|
|
[Binaries.IA32]
|
|
LIB|Main/Ia32/ftol2.obj|*|MSFT
|
|
|
|
[Packages]
|
|
StdLib/StdLib.dec
|
|
StdLibPrivateInternalFiles/DoNotUse.dec
|
|
MdePkg/MdePkg.dec
|
|
ShellPkg/ShellPkg.dec
|
|
|
|
[LibraryClasses]
|
|
ShellCEntryLib
|
|
UefiLib
|
|
BaseLib
|
|
BaseMemoryLib
|
|
MemoryAllocationLib
|
|
LibStdLib
|
|
LibStdio
|
|
LibString
|
|
DevConsole
|
|
|
|
################################################################
|
|
#
|
|
# The Build Options, below, are only used when building the C library.
|
|
# DO NOT use them when building your application!
|
|
# Nasty things could happen if you do.
|
|
#
|
|
[BuildOptions]
|
|
MSFT:*_*_IA32_CC_FLAGS = /GL-
|
|
GCC:*_*_ARM_CC_FLAGS = -fno-lto
|