ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library

Update the INF description and the top level .c files in order to
switch to the new version of the SoftFloat library imported as a
Git submodule in the previous patch.

Note that we no longer use the code that travelled a long way from
the 2002 version of the softfloat library via NetBsd and the StdLib
package. Instead, we are using the upstream version unmodified, with
the glue .c file adopted from the OP-TEE project. This approach is
much cleaner and much more maintainable.

Note that support for the RVCT toolchains is being dropped at the same
time. RVCT is mostly untested, and planned to be removed, and so it
makes little sense to go to the trouble of upgrading this library for
RVCT as well.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
Acked-by: Jian J Wang <jian.j.wang@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
This commit is contained in:
Ard Biesheuvel
2019-05-24 16:52:13 +02:00
parent 85af0b8116
commit 3cc57695df
3 changed files with 358 additions and 19 deletions

View File

@@ -2,7 +2,7 @@
# ARM Software floating point Library.
#
# Copyright (c) 2014, ARM Ltd. All rights reserved.
# Copyright (c) 2015, Linaro Ltd. All rights reserved.
# Copyright (c) 2015 - 2019, Linaro Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -10,7 +10,7 @@
##
[Defines]
INF_VERSION = 0x00010005
INF_VERSION = 0x0001001B
BASE_NAME = ArmSoftFloatLib
FILE_GUID = a485f921-749e-41a0-9f91-62f09a38721c
MODULE_TYPE = BASE
@@ -22,26 +22,71 @@
#
[Sources]
bits32/softfloat.c
Arm/__aeabi_dcmpeq.c
Arm/__aeabi_fcmpeq.c
Arm/__aeabi_dcmpge.c
Arm/__aeabi_fcmpge.c
Arm/__aeabi_dcmpgt.c
Arm/__aeabi_fcmpgt.c
Arm/__aeabi_dcmple.c
Arm/__aeabi_fcmple.c
Arm/__aeabi_dcmplt.c
Arm/__aeabi_fcmplt.c
Arm/__aeabi_dcmpun.c
Arm/__aeabi_fcmpun.c
berkeley-softfloat-3/source/ARM-VFPv2/s_propagateNaNF64UI.c
berkeley-softfloat-3/source/ARM-VFPv2/softfloat_raiseFlags.c
berkeley-softfloat-3/source/ARM-VFPv2/specialize.h
berkeley-softfloat-3/source/f32_add.c
berkeley-softfloat-3/source/f32_div.c
berkeley-softfloat-3/source/f32_eq.c
berkeley-softfloat-3/source/f32_le.c
berkeley-softfloat-3/source/f32_lt.c
berkeley-softfloat-3/source/f32_mul.c
berkeley-softfloat-3/source/f32_sub.c
berkeley-softfloat-3/source/f32_to_f64.c
berkeley-softfloat-3/source/f32_to_i32_r_minMag.c
berkeley-softfloat-3/source/f32_to_i64_r_minMag.c
berkeley-softfloat-3/source/f32_to_ui32_r_minMag.c
berkeley-softfloat-3/source/f32_to_ui64_r_minMag.c
berkeley-softfloat-3/source/f64_add.c
berkeley-softfloat-3/source/f64_div.c
berkeley-softfloat-3/source/f64_eq.c
berkeley-softfloat-3/source/f64_le.c
berkeley-softfloat-3/source/f64_lt.c
berkeley-softfloat-3/source/f64_mul.c
berkeley-softfloat-3/source/f64_sub.c
berkeley-softfloat-3/source/f64_to_f32.c
berkeley-softfloat-3/source/f64_to_i32_r_minMag.c
berkeley-softfloat-3/source/f64_to_i64_r_minMag.c
berkeley-softfloat-3/source/f64_to_ui32_r_minMag.c
berkeley-softfloat-3/source/f64_to_ui64_r_minMag.c
berkeley-softfloat-3/source/i32_to_f32.c
berkeley-softfloat-3/source/i32_to_f64.c
berkeley-softfloat-3/source/i64_to_f32.c
berkeley-softfloat-3/source/i64_to_f64.c
berkeley-softfloat-3/source/include/internals.h
berkeley-softfloat-3/source/include/opts-GCC.h
berkeley-softfloat-3/source/include/primitiveTypes.h
berkeley-softfloat-3/source/include/primitives.h
berkeley-softfloat-3/source/include/softfloat.h
berkeley-softfloat-3/source/include/softfloat_types.h
berkeley-softfloat-3/source/s_addMagsF32.c
berkeley-softfloat-3/source/s_addMagsF64.c
berkeley-softfloat-3/source/s_countLeadingZeros32.c
berkeley-softfloat-3/source/s_countLeadingZeros64.c
berkeley-softfloat-3/source/s_countLeadingZeros8.c
berkeley-softfloat-3/source/s_mul64To128.c
berkeley-softfloat-3/source/s_normRoundPackToF32.c
berkeley-softfloat-3/source/s_normRoundPackToF64.c
berkeley-softfloat-3/source/s_normSubnormalF32Sig.c
berkeley-softfloat-3/source/s_normSubnormalF64Sig.c
berkeley-softfloat-3/source/s_roundPackToF32.c
berkeley-softfloat-3/source/s_roundPackToF64.c
berkeley-softfloat-3/source/s_shiftRightJam32.c
berkeley-softfloat-3/source/s_shiftRightJam64.c
berkeley-softfloat-3/source/s_shortShiftRightJam64.c
berkeley-softfloat-3/source/s_subMagsF32.c
berkeley-softfloat-3/source/s_subMagsF64.c
berkeley-softfloat-3/source/softfloat_state.c
berkeley-softfloat-3/source/ui32_to_f32.c
berkeley-softfloat-3/source/ui32_to_f64.c
berkeley-softfloat-3/source/ui64_to_f32.c
berkeley-softfloat-3/source/ui64_to_f64.c
Arm/__aeabi_cdcmp.asm | RVCT
Arm/__aeabi_cfcmp.asm | RVCT
ArmSoftFloatLib.c
platform.h
[Packages]
MdePkg/MdePkg.dec
[BuildOptions]
GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-lto
RVCT:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC
GCC:*_*_*_CC_FLAGS = -fno-lto -ffreestanding -Wno-unused-label