public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
@ 2019-05-27 20:51 Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 1/7] ArmPkg: import latest version (3e) of the Berkeley Softfloat library Ard Biesheuvel
                   ` (11 more replies)
  0 siblings, 12 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney

Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
the ARM software floating point library, which lacks some intrinsics
that the ARM EABI spec defines.

Since the code was in pretty sorry state, let's fix this by upgrading
to the very latest version of the core library this code is based on,
dated January 2018 (whereas the NetBSD fork of the old code dates back
to 2002)

Note that this drops support for RVCT, but this toolchain is untested
and will likely be removed. [0]

Code can be found here:
https://github.com/ardbiesheuvel/edk2/tree/arm-softfloat-upgrade-v2

Changes since v1:
- Update the INLINE macro to pass __attribute__((always_inline)), to work
  around a build issue that occurs when optimization is disabled.
- Add a patch to remove the unused files. As it turns out, 385 of the ~450
  files are unused (which is a lot more than Laszlo reported), and so it
  makes sense to merge patch #4 into patch #1
- Add a patch to add SPDX identifiers to the files that we are keeping (#5).
  This patch can be merged into #1 as well.
- Add patches to work around issues that prevent the new code to build with
  Clang. Patch #6 is actually related to the OpenSSL upgrade, while patch #7
  is related to Clang 7 (and has been posted already 6 months ago)

Note that another issue popped up, which affects the OpenSSL 1.1.1b upgrade:

  .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:71:12:
  error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized]
    return ret;
           ^~~
  .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:44:12:
  note: initialize the variable 'ret' to silence this warning
    int ret;
           ^
            = 0
  1 error generated.

This appears to be a regression in the OpenSSL upstream code (commit
25eb9299cec), which no longer initializes ret if OPENSSL_SYS_UEFI is #defined.

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: "Gao, Liming" <liming.gao@intel.com>
Cc: "Wang, Jian J" <jian.j.wang@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>

[0] https://bugzilla.tianocore.org/show_bug.cgi?id=1750

Ard Biesheuvel (7):
  ArmPkg: import latest version (3e) of the Berkeley Softfloat library
  ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
  ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
  ArmPkg/ArmSoftFloatLib: remove new source files that are not used
  ArmPkg/ArmSoftFloatLib: add SPDX identifiers
  BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
  ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S

 ArmPkg/Library/ArmLib/Arm/ArmV7Support.S                                            |    1 +
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm                                |   41 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm                                |   37 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c                                 |   28 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c                                 |   35 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c                                 |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c                                 |   35 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h                                      |  345 ---
 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c                                    |  283 +++
 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf                                  |   84 +-
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt                             |   37 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html                             |   49 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt                              |   21 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    |   54 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html              |  258 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html               |  686 ++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html                      | 1527 +++++++++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  |   64 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           |  377 ++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        |  181 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        |  138 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     |   94 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            |   90 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            |   95 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           |   89 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           |   91 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        |   75 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        |  173 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         |   68 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         |   68 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        |  151 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        |   75 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     |   89 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            |   97 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            |  101 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           |   89 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           |   94 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              |  279 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               |  115 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         |   86 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1161 ++++++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              |  373 ++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        |   82 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   |  127 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   |  129 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          |   74 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               |  114 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               |  118 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   |  144 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   |  142 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    |   60 +
 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h                                            |  108 -
 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros                              |  648 ------
 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c                                   | 2354 --------------------
 ArmPkg/Library/ArmSoftFloatLib/milieu.h                                             |   38 -
 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h                                  |  242 --
 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize                                 |  525 -----
 BaseTools/Conf/tools_def.template                                                   |    8 +-
 91 files changed, 9812 insertions(+), 4730 deletions(-)
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
 create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/milieu.h
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h
 delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize

-- 
2.20.1


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH v2 1/7] ArmPkg: import latest version (3e) of the Berkeley Softfloat library
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 2/7] ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library Ard Biesheuvel
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney, Xiaoyu Lu

In preparation of bringing ArmSoftFloatLib up to date in order
to provide some missing routines, import the unmodified SoftFloat-3e
source into the tree.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
Build-tested-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Jian J Wang <jian.j.wang@intel.com>
Tested-by: Xiaoyu Lu <xiaoyux.lu@intel.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt                                          |   37 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html                                          |   49 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt                                           |   21 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-GCC/Makefile                         |  325 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-GCC/platform.h                       |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-SSE2-GCC/Makefile                    |  325 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-SSE2-GCC/platform.h                  |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/Makefile                   |  323 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h                 |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-x86_64-GCC/Makefile                      |  390 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-x86_64-GCC/platform.h                    |   54 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-MinGW/Makefile                           |  325 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-MinGW/platform.h                         |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-SSE2-MinGW/Makefile                      |  325 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-SSE2-MinGW/platform.h                    |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win64-MinGW-w64/Makefile                       |  390 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win64-MinGW-w64/platform.h                     |   54 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-FAST_INT64/Makefile                   |  391 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-FAST_INT64/platform.h                 |   50 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-not-FAST_INT64/Makefile               |  325 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-not-FAST_INT64/platform.h             |   50 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html                           |  258 ++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html                            |  686 +++++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html                                   | 1527 ++++++++++++++++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c             |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c               |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c               |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c              |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c                 |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c                |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c                 |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c                 |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c                 |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c               |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c              |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c                 |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c                |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c                 |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c                 |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c                 |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c              |  107 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c             |  106 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c                |   76 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c               |   81 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c                |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c                |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c                |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c               |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/specialize.h                         |  376 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c                 |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c                   |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c                   |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c                  |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF128M.c                     |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c                    |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c                     |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c                     |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c                     |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c                   |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c                  |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c                     |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c                    |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c                     |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c                     |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c                     |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c                  |  107 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c                 |  106 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF128M.c                    |  108 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c                   |  105 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c                    |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c                    |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c                    |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/softfloat_raiseFlags.c                   |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/specialize.h                             |  376 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c   |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c   |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c  |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c     |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c    |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c   |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c  |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c    |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c     |    5 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c  |   74 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c    |   68 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c   |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c    |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c    |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c    |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c   |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h             |  407 ++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c            |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c              |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c              |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c             |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c                |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c               |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c                |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c                |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c                |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c              |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c             |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c                |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c               |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c                |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c                |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c                |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c             |   86 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c            |   83 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c               |   77 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c              |   83 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c               |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c               |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c               |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c              |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h                        |  376 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_add.c                                 |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_div.c                                 |  194 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_eq.c                                  |   98 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_eq_signaling.c                        |   92 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_le.c                                  |  106 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_le_quiet.c                            |  112 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_lt.c                                  |  106 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_lt_quiet.c                            |  112 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_mul.c                                 |  139 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_rem.c                                 |  204 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_roundToInt.c                          |  176 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_sqrt.c                                |  180 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_sub.c                                 |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f128M.c                            |  125 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f16.c                              |  112 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f32.c                              |  112 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f64.c                              |  112 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i32.c                              |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c                     |  120 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i64.c                              |   97 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c                     |  115 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui32.c                             |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c                    |  111 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui64.c                             |   97 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c                    |  108 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_add.c                                  |   80 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_div.c                                  |  203 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_eq.c                                   |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_eq_signaling.c                         |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_isSignalingNaN.c                       |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_le.c                                   |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_le_quiet.c                             |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_lt.c                                   |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_lt_quiet.c                             |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_mul.c                                  |  158 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_rem.c                                  |  225 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_roundToInt.c                           |  154 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_sqrt.c                                 |  176 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_sub.c                                  |   80 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f128.c                              |   75 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f16.c                               |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f32.c                               |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f64.c                               |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i32.c                               |   83 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i32_r_minMag.c                      |   97 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i64.c                               |   89 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i64_r_minMag.c                      |   94 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui32.c                              |   83 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c                     |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui64.c                              |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c                     |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_add.c                                   |   97 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_div.c                                   |  187 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_eq.c                                    |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_eq_signaling.c                          |   92 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_le.c                                    |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_le_quiet.c                              |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_lt.c                                    |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_lt_quiet.c                              |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_mul.c                                   |  158 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_mulAdd.c                                |   92 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_rem.c                                   |  182 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_roundToInt.c                            |  223 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_sqrt.c                                  |  228 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_sub.c                                   |   97 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_extF80M.c                            |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_f16.c                                |  113 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_f32.c                                |  109 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_f64.c                                |  112 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i32.c                                |   98 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i32_r_minMag.c                       |  106 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i64.c                                |  102 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i64_r_minMag.c                       |  124 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui32.c                               |   98 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c                      |  102 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui64.c                               |  102 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c                      |  114 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_add.c                                    |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_div.c                                    |  199 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_eq.c                                     |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_eq_signaling.c                           |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_isSignalingNaN.c                         |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_le.c                                     |   72 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_le_quiet.c                               |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_lt.c                                     |   72 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_lt_quiet.c                               |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_mul.c                                    |  163 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_mulAdd.c                                 |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_rem.c                                    |  190 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_roundToInt.c                             |  172 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_sqrt.c                                   |  201 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_sub.c                                    |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_extF80.c                              |  109 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_f16.c                                 |   95 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_f32.c                                 |   95 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_f64.c                                 |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i32.c                                 |   85 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i32_r_minMag.c                        |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i64.c                                 |   95 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i64_r_minMag.c                        |  113 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui32.c                                |   86 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui32_r_minMag.c                       |   89 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui64.c                                |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui64_r_minMag.c                       |  105 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_add.c                                     |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_div.c                                     |  186 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_eq.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_eq_signaling.c                            |   61 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_isSignalingNaN.c                          |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_le.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_le_quiet.c                                |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_lt.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_lt_quiet.c                                |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_mul.c                                     |  140 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_mulAdd.c                                  |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_rem.c                                     |  171 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_roundToInt.c                              |  120 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_sqrt.c                                    |  136 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_sub.c                                     |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_extF80.c                               |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_extF80M.c                              |  111 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f128.c                                 |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f128M.c                                |  111 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f32.c                                  |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f64.c                                  |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i32.c                                  |   87 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i32_r_minMag.c                         |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i64.c                                  |   87 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i64_r_minMag.c                         |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui32.c                                 |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui32_r_minMag.c                        |   87 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui64.c                                 |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui64_r_minMag.c                        |   87 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                                     |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                                     |  180 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq_signaling.c                            |   61 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_isSignalingNaN.c                          |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le_quiet.c                                |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt_quiet.c                                |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                                     |  137 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mulAdd.c                                  |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_rem.c                                     |  168 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_roundToInt.c                              |  120 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sqrt.c                                    |  121 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                                     |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_extF80.c                               |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_extF80M.c                              |  111 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f128.c                                 |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f128M.c                                |  115 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f16.c                                  |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                                  |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32.c                                  |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c                         |   89 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64.c                                  |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c                         |   94 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32.c                                 |   84 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c                        |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64.c                                 |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c                        |   90 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                                     |   74 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                                     |  172 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                                      |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq_signaling.c                            |   61 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_isSignalingNaN.c                          |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                                      |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le_quiet.c                                |   72 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                                      |   67 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt_quiet.c                                |   72 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                                     |  150 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mulAdd.c                                  |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_rem.c                                     |  189 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_roundToInt.c                              |  120 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sqrt.c                                    |  133 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                                     |   74 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_extF80.c                               |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_extF80M.c                              |  111 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f128.c                                 |   98 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f128M.c                                |  117 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f16.c                                  |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                                  |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32.c                                  |   82 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c                         |   96 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64.c                                  |  103 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c                         |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32.c                                 |   82 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c                        |   88 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64.c                                 |  103 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c                        |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_extF80.c                               |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_extF80M.c                              |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f128.c                                 |   64 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f128M.c                                |   81 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f16.c                                  |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                                  |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                                  |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_extF80.c                               |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_extF80M.c                              |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f128.c                                 |   72 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f128M.c                                |   92 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f16.c                                  |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                                  |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                                  |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h                           |  278 ++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h                            |  114 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h                      |   85 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h                          | 1160 +++++++++++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h                           |  372 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h                     |   81 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_add128.c                                    |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_add256M.c                                   |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addCarryM.c                                 |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addComplCarryM.c                            |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addExtF80M.c                                |  186 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addF128M.c                                  |  211 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addM.c                                      |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsExtF80.c                             |  156 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF128.c                               |  154 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF16.c                                |  183 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                                |  126 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                                |  128 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecip32_1.c                           |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecipSqrt32_1.c                       |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c                       |   49 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecip_1Ks.c                           |   49 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_compare128M.c                               |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_compare96M.c                                |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_compareNonnormExtF80M.c                     |  111 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros16.c                       |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c                       |   64 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c                       |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c                        |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_eq128.c                                     |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_invalidExtF80M.c                            |   49 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_invalidF128M.c                              |   53 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_isNaNF128M.c                                |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_le128.c                                     |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_lt128.c                                     |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul128By32.c                                |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul128MTo256M.c                             |  100 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul128To256M.c                              |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64ByShifted32To128.c                     |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                                |   66 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128M.c                               |   68 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF128.c                                |  350 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF128M.c                               |  382 +++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF16.c                                 |  226 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF32.c                                 |  224 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF64.c                                 |  496 +++++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_negXM.c                                     |   63 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normExtF80SigM.c                            |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c                   |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackMToF128M.c                     |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToExtF80.c                     |   71 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF128.c                       |   81 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF16.c                        |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c                        |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c                        |   58 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalExtF80Sig.c                    |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF128Sig.c                      |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF128SigM.c                     |   61 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF16Sig.c                       |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c                       |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c                       |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_remStepMBy32.c                              |   86 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundMToI64.c                               |  102 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundMToUI64.c                              |   98 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackMToExtF80M.c                       |  256 ++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackMToF128M.c                         |  178 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToExtF80.c                         |  256 ++++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF128.c                           |  171 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF16.c                            |  113 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c                            |  113 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c                            |  117 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToI32.c                                |   98 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToI64.c                                |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToUI32.c                               |   93 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToUI64.c                               |   97 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftLeftM.c                                |   91 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftNormSigF128M.c                         |   78 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam128.c                          |   69 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam128Extra.c                     |   77 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam256M.c                         |  126 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c                           |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c                           |   51 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64Extra.c                      |   62 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJamM.c                            |  101 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightM.c                               |   91 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftLeft128.c                         |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftLeft64To96M.c                     |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftLeftM.c                           |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRight128.c                        |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightExtendM.c                    |   73 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam128.c                     |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam128Extra.c                |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c                      |   50 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64Extra.c                 |   56 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJamM.c                       |   72 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightM.c                          |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_sub128.c                                    |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_sub1XM.c                                    |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_sub256M.c                                   |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subM.c                                      |   70 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsExtF80.c                             |  158 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF128.c                               |  139 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF16.c                                |  187 +++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                                |  143 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                                |  141 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c                    |   64 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_tryPropagateNaNF128M.c                      |   55 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                             |   52 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_extF80.c                              |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_extF80M.c                             |   74 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f128.c                                |   60 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f128M.c                               |   76 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f16.c                                 |   65 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                                 |   57 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                                 |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_extF80.c                              |   59 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_extF80M.c                             |   74 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f128.c                                |   68 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f128M.c                               |   86 ++
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f16.c                                 |   64 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                                 |   64 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                                 |   59 +
 451 files changed, 47155 insertions(+)

diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt
new file mode 100644
index 000000000000..9c05d49ca452
--- /dev/null
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt
@@ -0,0 +1,37 @@
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions, and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors
+    may be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html
new file mode 100644
index 000000000000..7989e0c2602e
--- /dev/null
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html
@@ -0,0 +1,49 @@
+
+<HTML>
+
+<HEAD>
+<TITLE>Berkeley SoftFloat Package Overview</TITLE>
+</HEAD>
+
+<BODY>
+
+<H1>Package Overview for Berkeley SoftFloat Release 3e</H1>
+
+<P>
+John R. Hauser<BR>
+2018 January 20<BR>
+</P>
+
+<P>
+Berkeley SoftFloat is a software implementation of binary floating-point that
+conforms to the IEEE Standard for Floating-Point Arithmetic.
+SoftFloat is distributed in the form of C source code.
+Building the SoftFloat sources generates a library file (typically
+<CODE>softfloat.a</CODE> or <CODE>libsoftfloat.a</CODE>) containing the
+floating-point subroutines.
+</P>
+
+<P>
+The SoftFloat package is documented in the following files in the
+<CODE>doc</CODE> subdirectory:
+<BLOCKQUOTE>
+<TABLE>
+<TR>
+<TD><A HREF="doc/SoftFloat.html"><NOBR><CODE>SoftFloat.html</CODE></NOBR></A></TD>
+<TD>Documentation for using the SoftFloat functions.</TD>
+</TR>
+<TR>
+<TD><A HREF="doc/SoftFloat-source.html"><NOBR><CODE>SoftFloat-source.html</CODE></NOBR></A></TD>
+<TD>Documentation for building SoftFloat.</TD>
+</TR>
+<TR>
+<TD><A HREF="doc/SoftFloat-history.html"><NOBR><CODE>SoftFloat-history.html</CODE></A><CODE>&nbsp;&nbsp;&nbsp;</CODE></NOBR></TD>
+<TD>History of the major changes to SoftFloat.</TD>
+</TR>
+</TABLE>
+</BLOCKQUOTE>
+Other files in the package comprise the source code for SoftFloat.
+</P>
+
+</BODY>
+
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt
new file mode 100644
index 000000000000..f819baa5c5cc
--- /dev/null
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt
@@ -0,0 +1,21 @@
+
+Package Overview for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+Berkeley SoftFloat is a software implementation of binary floating-point
+that conforms to the IEEE Standard for Floating-Point Arithmetic.  SoftFloat
+is distributed in the form of C source code.  Building the SoftFloat sources
+generates a library file (typically "softfloat.a" or "libsoftfloat.a")
+containing the floating-point subroutines.
+
+The SoftFloat package is documented in the following files in the "doc"
+subdirectory:
+
+    SoftFloat.html          Documentation for using the SoftFloat functions.
+    SoftFloat-source.html   Documentation for building SoftFloat.
+    SoftFloat-history.html  History of the major changes to SoftFloat.
+
+Other files in the package comprise the source code for SoftFloat.
+

---
Remaining content omitted.
Please refer to http://www.jhauser.us/arithmetic/SoftFloat-3e.zip

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v2 2/7] ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 1/7] ArmPkg: import latest version (3e) of the Berkeley Softfloat library Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 3/7] ArmPkg/ArmSoftFloatLib: remove source files that are no longer used Ard Biesheuvel
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney, Xiaoyu Lu

Update the INF description and the top level .c files in order to
switch to the new version of the SoftFloat library imported 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.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
Build-tested-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Jian J Wang <jian.j.wang@intel.com>
Tested-by: Xiaoyu Lu <xiaoyux.lu@intel.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c                                 | 283 ++++++++++++++++++++
 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf                               |  84 ++++--
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h |   2 +-
 3 files changed, 348 insertions(+), 21 deletions(-)

diff --git a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c
new file mode 100644
index 000000000000..42bed7700c99
--- /dev/null
+++ b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c
@@ -0,0 +1,283 @@
+/*
+ * Copyright (c) 2015 - 2019, Linaro Limited
+ *
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ */
+
+#include "platform.h"
+#include <softfloat.h>
+
+/*
+ * On ARM32 EABI defines both a soft-float ABI and a hard-float ABI,
+ * hard-float is basically a super set of soft-float. Hard-float requires
+ * all the support routines provided for soft-float, but the compiler may
+ * choose to optimize to not use some of them.
+ *
+ * The AEABI functions uses soft-float calling convention even if the
+ * functions are compiled for hard-float. So where float and double would
+ * have been expected we use aeabi_float_t and aeabi_double_t respectively
+ * instead.
+ */
+typedef uint32_t aeabi_float_t;
+typedef uint64_t aeabi_double_t;
+
+/*
+ * Helpers to convert between float32 and aeabi_float_t, and float64 and
+ * aeabi_double_t used by the AEABI functions below.
+ */
+static aeabi_float_t f32_to_f(float32_t val)
+{
+	return val.v;
+}
+
+static float32_t f32_from_f(aeabi_float_t val)
+{
+	float32_t res;
+
+	res.v = val;
+
+	return res;
+}
+
+static aeabi_double_t f64_to_d(float64_t val)
+{
+	return val.v;
+}
+
+static float64_t f64_from_d(aeabi_double_t val)
+{
+	float64_t res;
+
+	res.v = val;
+
+	return res;
+}
+
+/*
+ * From ARM Run-time ABI for ARM Architecture
+ * ARM IHI 0043D, current through ABI release 2.09
+ *
+ * 4.1.2 The floating-point helper functions
+ */
+
+/*
+ * Table 2, Standard aeabi_double_t precision floating-point arithmetic helper
+ * functions
+ */
+
+aeabi_double_t __aeabi_dadd(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_to_d(f64_add(f64_from_d(a), f64_from_d(b)));
+}
+
+aeabi_double_t __aeabi_ddiv(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_to_d(f64_div(f64_from_d(a), f64_from_d(b)));
+}
+
+aeabi_double_t __aeabi_dmul(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_to_d(f64_mul(f64_from_d(a), f64_from_d(b)));
+}
+
+
+aeabi_double_t __aeabi_drsub(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_to_d(f64_sub(f64_from_d(b), f64_from_d(a)));
+}
+
+aeabi_double_t __aeabi_dsub(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_to_d(f64_sub(f64_from_d(a), f64_from_d(b)));
+}
+
+/*
+ * Table 3, double precision floating-point comparison helper functions
+ */
+
+int __aeabi_dcmpeq(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_eq(f64_from_d(a), f64_from_d(b));
+}
+
+int __aeabi_dcmplt(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_lt(f64_from_d(a), f64_from_d(b));
+}
+
+int __aeabi_dcmple(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_le(f64_from_d(a), f64_from_d(b));
+}
+
+int __aeabi_dcmpge(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_le(f64_from_d(b), f64_from_d(a));
+}
+
+int __aeabi_dcmpgt(aeabi_double_t a, aeabi_double_t b)
+{
+	return f64_lt(f64_from_d(b), f64_from_d(a));
+}
+
+/*
+ * Table 4, Standard single precision floating-point arithmetic helper
+ * functions
+ */
+
+aeabi_float_t __aeabi_fadd(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_to_f(f32_add(f32_from_f(a), f32_from_f(b)));
+}
+
+aeabi_float_t __aeabi_fdiv(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_to_f(f32_div(f32_from_f(a), f32_from_f(b)));
+}
+
+aeabi_float_t __aeabi_fmul(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_to_f(f32_mul(f32_from_f(a), f32_from_f(b)));
+}
+
+aeabi_float_t __aeabi_frsub(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_to_f(f32_sub(f32_from_f(b), f32_from_f(a)));
+}
+
+aeabi_float_t __aeabi_fsub(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_to_f(f32_sub(f32_from_f(a), f32_from_f(b)));
+}
+
+/*
+ * Table 5, Standard single precision floating-point comparison helper
+ * functions
+ */
+
+int __aeabi_fcmpeq(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_eq(f32_from_f(a), f32_from_f(b));
+}
+
+int __aeabi_fcmplt(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_lt(f32_from_f(a), f32_from_f(b));
+}
+
+int __aeabi_fcmple(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_le(f32_from_f(a), f32_from_f(b));
+}
+
+int __aeabi_fcmpge(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_le(f32_from_f(b), f32_from_f(a));
+}
+
+int __aeabi_fcmpgt(aeabi_float_t a, aeabi_float_t b)
+{
+	return f32_lt(f32_from_f(b), f32_from_f(a));
+}
+
+/*
+ * Table 6, Standard floating-point to integer conversions
+ */
+
+int __aeabi_d2iz(aeabi_double_t a)
+{
+	return f64_to_i32_r_minMag(f64_from_d(a), false);
+}
+
+unsigned __aeabi_d2uiz(aeabi_double_t a)
+{
+	return f64_to_ui32_r_minMag(f64_from_d(a), false);
+}
+
+long long __aeabi_d2lz(aeabi_double_t a)
+{
+	return f64_to_i64_r_minMag(f64_from_d(a), false);
+}
+
+unsigned long long __aeabi_d2ulz(aeabi_double_t a)
+{
+	return f64_to_ui64_r_minMag(f64_from_d(a), false);
+}
+
+int __aeabi_f2iz(aeabi_float_t a)
+{
+	return f32_to_i32_r_minMag(f32_from_f(a), false);
+}
+
+unsigned __aeabi_f2uiz(aeabi_float_t a)
+{
+	return f32_to_ui32_r_minMag(f32_from_f(a), false);
+}
+
+long long __aeabi_f2lz(aeabi_float_t a)
+{
+	return f32_to_i64_r_minMag(f32_from_f(a), false);
+}
+
+unsigned long long __aeabi_f2ulz(aeabi_float_t a)
+{
+	return f32_to_ui64_r_minMag(f32_from_f(a), false);
+}
+
+/*
+ * Table 7, Standard conversions between floating types
+ */
+
+aeabi_float_t __aeabi_d2f(aeabi_double_t a)
+{
+	return f32_to_f(f64_to_f32(f64_from_d(a)));
+}
+
+aeabi_double_t __aeabi_f2d(aeabi_float_t a)
+{
+	return f64_to_d(f32_to_f64(f32_from_f(a)));
+}
+
+/*
+ * Table 8, Standard integer to floating-point conversions
+ */
+
+aeabi_double_t __aeabi_i2d(int a)
+{
+	return f64_to_d(i32_to_f64(a));
+}
+
+aeabi_double_t __aeabi_ui2d(unsigned a)
+{
+	return f64_to_d(ui32_to_f64(a));
+}
+
+aeabi_double_t __aeabi_l2d(long long a)
+{
+	return f64_to_d(i64_to_f64(a));
+}
+
+aeabi_double_t __aeabi_ul2d(unsigned long long a)
+{
+	return f64_to_d(ui64_to_f64(a));
+}
+
+aeabi_float_t __aeabi_i2f(int a)
+{
+	return f32_to_f(i32_to_f32(a));
+}
+
+aeabi_float_t __aeabi_ui2f(unsigned a)
+{
+	return f32_to_f(ui32_to_f32(a));
+}
+
+aeabi_float_t __aeabi_l2f(long long a)
+{
+	return f32_to_f(i64_to_f32(a));
+}
+
+aeabi_float_t __aeabi_ul2f(unsigned long long a)
+{
+	return f32_to_f(ui64_to_f32(a));
+}
diff --git a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
index cbb49f49ade6..7f49608a1592 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
+++ b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
@@ -2,15 +2,14 @@
 #  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
 #
-#
 ##
 
 [Defines]
-  INF_VERSION                    = 0x00010005
+  INF_VERSION                    = 0x0001001B
   BASE_NAME                      = ArmSoftFloatLib
   FILE_GUID                      = a485f921-749e-41a0-9f91-62f09a38721c
   MODULE_TYPE                    = BASE
@@ -22,26 +21,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
+  SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
+  SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
+  SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
+  SoftFloat-3e/source/ARM-VFPv2/specialize.h
+  SoftFloat-3e/source/f32_add.c
+  SoftFloat-3e/source/f32_div.c
+  SoftFloat-3e/source/f32_eq.c
+  SoftFloat-3e/source/f32_le.c
+  SoftFloat-3e/source/f32_lt.c
+  SoftFloat-3e/source/f32_mul.c
+  SoftFloat-3e/source/f32_sub.c
+  SoftFloat-3e/source/f32_to_f64.c
+  SoftFloat-3e/source/f32_to_i32_r_minMag.c
+  SoftFloat-3e/source/f32_to_i64_r_minMag.c
+  SoftFloat-3e/source/f32_to_ui32_r_minMag.c
+  SoftFloat-3e/source/f32_to_ui64_r_minMag.c
+  SoftFloat-3e/source/f64_add.c
+  SoftFloat-3e/source/f64_div.c
+  SoftFloat-3e/source/f64_eq.c
+  SoftFloat-3e/source/f64_le.c
+  SoftFloat-3e/source/f64_lt.c
+  SoftFloat-3e/source/f64_mul.c
+  SoftFloat-3e/source/f64_sub.c
+  SoftFloat-3e/source/f64_to_f32.c
+  SoftFloat-3e/source/f64_to_i32_r_minMag.c
+  SoftFloat-3e/source/f64_to_i64_r_minMag.c
+  SoftFloat-3e/source/f64_to_ui32_r_minMag.c
+  SoftFloat-3e/source/f64_to_ui64_r_minMag.c
+  SoftFloat-3e/source/i32_to_f32.c
+  SoftFloat-3e/source/i32_to_f64.c
+  SoftFloat-3e/source/i64_to_f32.c
+  SoftFloat-3e/source/i64_to_f64.c
+  SoftFloat-3e/source/include/internals.h
+  SoftFloat-3e/source/include/opts-GCC.h
+  SoftFloat-3e/source/include/primitiveTypes.h
+  SoftFloat-3e/source/include/primitives.h
+  SoftFloat-3e/source/include/softfloat.h
+  SoftFloat-3e/source/include/softfloat_types.h
+  SoftFloat-3e/source/s_addMagsF32.c
+  SoftFloat-3e/source/s_addMagsF64.c
+  SoftFloat-3e/source/s_countLeadingZeros32.c
+  SoftFloat-3e/source/s_countLeadingZeros64.c
+  SoftFloat-3e/source/s_countLeadingZeros8.c
+  SoftFloat-3e/source/s_mul64To128.c
+  SoftFloat-3e/source/s_normRoundPackToF32.c
+  SoftFloat-3e/source/s_normRoundPackToF64.c
+  SoftFloat-3e/source/s_normSubnormalF32Sig.c
+  SoftFloat-3e/source/s_normSubnormalF64Sig.c
+  SoftFloat-3e/source/s_roundPackToF32.c
+  SoftFloat-3e/source/s_roundPackToF64.c
+  SoftFloat-3e/source/s_shiftRightJam32.c
+  SoftFloat-3e/source/s_shiftRightJam64.c
+  SoftFloat-3e/source/s_shortShiftRightJam64.c
+  SoftFloat-3e/source/s_subMagsF32.c
+  SoftFloat-3e/source/s_subMagsF64.c
+  SoftFloat-3e/source/softfloat_state.c
+  SoftFloat-3e/source/ui32_to_f32.c
+  SoftFloat-3e/source/ui32_to_f64.c
+  SoftFloat-3e/source/ui64_to_f32.c
+  SoftFloat-3e/source/ui64_to_f64.c
 
-  Arm/__aeabi_cdcmp.asm   | RVCT
-  Arm/__aeabi_cfcmp.asm   | RVCT
+  ArmSoftFloatLib.c
 
 [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 -DSOFTFLOAT_FAST_INT64
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
index 420aa4e048f6..18ed054d4f4d 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
@@ -41,7 +41,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /*----------------------------------------------------------------------------
 *----------------------------------------------------------------------------*/
 #ifdef __GNUC_STDC_INLINE__
-#define INLINE inline
+#define INLINE inline __attribute__((always_inline))
 #else
 #define INLINE extern inline
 #endif
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v2 3/7] ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 1/7] ArmPkg: import latest version (3e) of the Berkeley Softfloat library Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 2/7] ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 4/7] ArmPkg/ArmSoftFloatLib: remove new source files that are not used Ard Biesheuvel
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney, Xiaoyu Lu

Now that we have switched to a new version of the SoftFloat code,
remove the source files that make up the old implementation, and
are no longer referenced.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
Build-tested-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Jian J Wang <jian.j.wang@intel.com>
Tested-by: Xiaoyu Lu <xiaoyux.lu@intel.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm   |   41 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm   |   37 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c    |   28 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c    |   35 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c    |   30 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c    |   35 -
 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h         |  345 ---
 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h               |  108 -
 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros |  648 ------
 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c      | 2354 --------------------
 ArmPkg/Library/ArmSoftFloatLib/milieu.h                |   38 -
 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h     |  242 --
 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize    |  525 -----
 21 files changed, 4706 deletions(-)

Patch content omitted.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH v2 4/7] ArmPkg/ArmSoftFloatLib: remove new source files that are not used
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (2 preceding siblings ...)
  2019-05-27 20:51 ` [PATCH v2 3/7] ArmPkg/ArmSoftFloatLib: remove source files that are no longer used Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-27 20:51 ` [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers Ard Biesheuvel
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney

Now that we have switched to a new version of the SoftFloat code,
remove the source files that are not in fact used to implement the
API that our library exposes.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
Acked-by: Jian J Wang <jian.j.wang@intel.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-GCC/Makefile                         | 325 -------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-GCC/platform.h                       |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-SSE2-GCC/Makefile                    | 325 -------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-386-SSE2-GCC/platform.h                  |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/Makefile                   | 323 -------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-x86_64-GCC/Makefile                      | 390 ---------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-x86_64-GCC/platform.h                    |  54 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-MinGW/Makefile                           | 325 -------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-MinGW/platform.h                         |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-SSE2-MinGW/Makefile                      | 325 -------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win32-SSE2-MinGW/platform.h                    |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win64-MinGW-w64/Makefile                       | 390 ---------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Win64-MinGW-w64/platform.h                     |  54 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-FAST_INT64/Makefile                   | 391 ---------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-FAST_INT64/platform.h                 |  50 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-not-FAST_INT64/Makefile               | 325 -------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/template-not-FAST_INT64/platform.h             |  50 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c             |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c               |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c               |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c              |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c                 |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c                |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c                 |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c                 |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c                 |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c               |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c              |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c                 |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c                |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c                 |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c                 |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c                 |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c              | 107 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c             | 106 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c                |  76 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c               |  81 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c                |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c                |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c                |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c               |  52 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086-SSE/specialize.h                         | 376 ---------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c                 |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c                   |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c                   |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c                  |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF128M.c                     |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c                    |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c                     |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c                     |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c                     |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c                   |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c                  |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c                     |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c                    |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c                     |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c                     |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c                     |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c                  | 107 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c                 | 106 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF128M.c                    | 108 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c                   | 105 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c                    |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c                    |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c                    |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/softfloat_raiseFlags.c                   |  52 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/8086/specialize.h                             | 376 ---------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c   |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c   |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c  |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c     |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c    |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c   |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c  |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c    |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c     |   5 -
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c  |  74 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c    |  68 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c   |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c    |  58 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c    |  58 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c    |  58 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c   |  52 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h             | 407 ----------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c            |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c              |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c              |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c             |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c                |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c               |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c                |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c                |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c                |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c              |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c             |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c                |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c               |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c                |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c                |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c                |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c             |  86 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c            |  83 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c               |  77 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c              |  83 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c               |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c               |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_add.c                                 | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_div.c                                 | 194 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_eq.c                                  |  98 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_eq_signaling.c                        |  92 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_le.c                                  | 106 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_le_quiet.c                            | 112 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_lt.c                                  | 106 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_lt_quiet.c                            | 112 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_mul.c                                 | 139 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_rem.c                                 | 204 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_roundToInt.c                          | 176 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_sqrt.c                                | 180 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_sub.c                                 | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f128M.c                            | 125 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f16.c                              | 112 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f32.c                              | 112 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_f64.c                              | 112 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i32.c                              | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c                     | 120 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i64.c                              |  97 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c                     | 115 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui32.c                             | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c                    | 111 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui64.c                             |  97 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c                    | 108 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_add.c                                  |  80 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_div.c                                  | 203 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_eq.c                                   |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_eq_signaling.c                         |  67 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_isSignalingNaN.c                       |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_le.c                                   |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_le_quiet.c                             |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_lt.c                                   |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_lt_quiet.c                             |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_mul.c                                  | 158 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_rem.c                                  | 225 ---------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_roundToInt.c                           | 154 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_sqrt.c                                 | 176 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_sub.c                                  |  80 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f128.c                              |  75 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f16.c                               |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f32.c                               |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_f64.c                               |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i32.c                               |  83 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i32_r_minMag.c                      |  97 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i64.c                               |  89 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_i64_r_minMag.c                      |  94 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui32.c                              |  83 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c                     |  88 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui64.c                              |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c                     |  88 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_add.c                                   |  97 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_div.c                                   | 187 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_eq.c                                    | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_eq_signaling.c                          |  92 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_le.c                                    |  93 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_le_quiet.c                              |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_lt.c                                    |  93 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_lt_quiet.c                              |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_mul.c                                   | 158 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_mulAdd.c                                |  92 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_rem.c                                   | 182 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_roundToInt.c                            | 223 ---------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_sqrt.c                                  | 228 ---------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_sub.c                                   |  97 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_extF80M.c                            | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_f16.c                                | 113 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_f32.c                                | 109 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_f64.c                                | 112 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i32.c                                |  98 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i32_r_minMag.c                       | 106 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i64.c                                | 102 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_i64_r_minMag.c                       | 124 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui32.c                               |  98 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c                      | 102 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui64.c                               | 102 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c                      | 114 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_add.c                                    |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_div.c                                    | 199 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_eq.c                                     |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_eq_signaling.c                           |  67 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_isSignalingNaN.c                         |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_le.c                                     |  72 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_le_quiet.c                               |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_lt.c                                     |  72 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_lt_quiet.c                               |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_mul.c                                    | 163 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_mulAdd.c                                 |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_rem.c                                    | 190 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_roundToInt.c                             | 172 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_sqrt.c                                   | 201 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_sub.c                                    |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_extF80.c                              | 109 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_f16.c                                 |  95 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_f32.c                                 |  95 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_f64.c                                 | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i32.c                                 |  85 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i32_r_minMag.c                        | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i64.c                                 |  95 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_i64_r_minMag.c                        | 113 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui32.c                                |  86 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui32_r_minMag.c                       |  89 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui64.c                                |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f128_to_ui64_r_minMag.c                       | 105 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_add.c                                     |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_div.c                                     | 186 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_eq.c                                      |  66 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_eq_signaling.c                            |  61 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_isSignalingNaN.c                          |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_le.c                                      |  66 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_le_quiet.c                                |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_lt.c                                      |  66 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_lt_quiet.c                                |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_mul.c                                     | 140 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_mulAdd.c                                  |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_rem.c                                     | 171 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_roundToInt.c                              | 120 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_sqrt.c                                    | 136 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_sub.c                                     |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_extF80.c                               | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_extF80M.c                              | 111 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f128.c                                 |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f128M.c                                | 111 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f32.c                                  |  93 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_f64.c                                  |  93 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i32.c                                  |  87 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i32_r_minMag.c                         |  88 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i64.c                                  |  87 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_i64_r_minMag.c                         |  88 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui32.c                                 |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui32_r_minMag.c                        |  87 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui64.c                                 |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f16_to_ui64_r_minMag.c                        |  87 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq_signaling.c                            |  61 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_isSignalingNaN.c                          |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le_quiet.c                                |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt_quiet.c                                |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mulAdd.c                                  |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_rem.c                                     | 168 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_roundToInt.c                              | 120 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sqrt.c                                    | 121 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_extF80.c                               | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_extF80M.c                              | 111 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f128.c                                 |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f128M.c                                | 115 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f16.c                                  |  88 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32.c                                  |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64.c                                  |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32.c                                 |  84 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64.c                                 |  96 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq_signaling.c                            |  61 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_isSignalingNaN.c                          |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le_quiet.c                                |  72 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt_quiet.c                                |  72 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mulAdd.c                                  |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_rem.c                                     | 189 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_roundToInt.c                              | 120 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sqrt.c                                    | 133 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_extF80.c                               | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_extF80M.c                              | 111 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f128.c                                 |  98 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f128M.c                                | 117 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f16.c                                  |  88 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32.c                                  |  82 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64.c                                  | 103 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32.c                                 |  82 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64.c                                 | 103 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_extF80.c                               |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_extF80M.c                              |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f128.c                                 |  64 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f128M.c                                |  81 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f16.c                                  |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_extF80.c                               |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_extF80M.c                              |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f128.c                                 |  72 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f128M.c                                |  92 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f16.c                                  |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_add128.c                                    |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_add256M.c                                   |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addCarryM.c                                 |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addComplCarryM.c                            |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addExtF80M.c                                | 186 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addF128M.c                                  | 211 ---------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addM.c                                      |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsExtF80.c                             | 156 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF128.c                               | 154 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF16.c                                | 183 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecip32_1.c                           |  66 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecipSqrt32_1.c                       |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c                       |  49 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_approxRecip_1Ks.c                           |  49 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_compare128M.c                               |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_compare96M.c                                |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_compareNonnormExtF80M.c                     | 111 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros16.c                       |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_eq128.c                                     |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_invalidExtF80M.c                            |  49 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_invalidF128M.c                              |  53 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_isNaNF128M.c                                |  57 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_le128.c                                     |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_lt128.c                                     |  51 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul128By32.c                                |  58 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul128MTo256M.c                             | 100 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul128To256M.c                              |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64ByShifted32To128.c                     |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128M.c                               |  68 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF128.c                                | 350 --------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF128M.c                               | 382 ---------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF16.c                                 | 226 ---------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF32.c                                 | 224 ---------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mulAddF64.c                                 | 496 --------------------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_negXM.c                                     |  63 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normExtF80SigM.c                            |  52 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c                   |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackMToF128M.c                     |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToExtF80.c                     |  71 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF128.c                       |  81 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF16.c                        |  58 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalExtF80Sig.c                    |  52 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF128Sig.c                      |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF128SigM.c                     |  61 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF16Sig.c                       |  52 --
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_remStepMBy32.c                              |  86 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundMToI64.c                               | 102 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundMToUI64.c                              |  98 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackMToExtF80M.c                       | 256 ----------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackMToF128M.c                         | 178 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToExtF80.c                         | 256 ----------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF128.c                           | 171 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF16.c                            | 113 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToI32.c                                |  98 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToI64.c                                | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToUI32.c                               |  93 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundToUI64.c                               |  97 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftLeftM.c                                |  91 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftNormSigF128M.c                         |  78 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam128.c                          |  69 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam128Extra.c                     |  77 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam256M.c                         | 126 -----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64Extra.c                      |  62 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJamM.c                            | 101 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightM.c                               |  91 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftLeft128.c                         |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftLeft64To96M.c                     |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftLeftM.c                           |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRight128.c                        |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightExtendM.c                    |  73 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam128.c                     |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam128Extra.c                |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64Extra.c                 |  56 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJamM.c                       |  72 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightM.c                          |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_sub128.c                                    |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_sub1XM.c                                    |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_sub256M.c                                   |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subM.c                                      |  70 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsExtF80.c                             | 158 -------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF128.c                               | 139 ------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF16.c                                | 187 --------
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c                    |  64 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_tryPropagateNaNF128M.c                      |  55 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_extF80.c                              |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_extF80M.c                             |  74 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f128.c                                |  60 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f128M.c                               |  76 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f16.c                                 |  65 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_extF80.c                              |  59 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_extF80M.c                             |  74 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f128.c                                |  68 ---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f128M.c                               |  86 ----
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f16.c                                 |  64 ---
 385 files changed, 37755 deletions(-)

Patch content omitted.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (3 preceding siblings ...)
  2019-05-27 20:51 ` [PATCH v2 4/7] ArmPkg/ArmSoftFloatLib: remove new source files that are not used Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-28 11:27   ` Laszlo Ersek
  2019-05-27 20:51 ` [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard Ard Biesheuvel
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney

Add the appropriate SPDX identifiers to all files taken from the
3-clause BSD licensed SoftFloat library.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
Acked-by: Jian J Wang <jian.j.wang@intel.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    | 1 +
 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    | 1 +
 60 files changed, 60 insertions(+)

diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
index 18ed054d4f4d..2a750e4f540e 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
index 8c67763818a1..1d7a8357e4c2 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
index 61046da3c05e..31c5760126fe 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
index 5321f33bcaad..194c23081a37 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
index 70e03e7f94fe..6e8d2ffb73dc 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
index 05ec701f76ff..8fec819c07f5 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
index 801bbfd73453..a1a18a8ecfd1 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
index d89d1e88df72..0eafd2c2a557 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
index 5b5fd22821ad..be535b63422c 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
index f5c856002f62..cb69afc84bd8 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
index 383484dae16a..c23e47496347 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
index 4f97519e8637..0cb7d40c6cd1 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
index 7652f2ebb024..437d79f76fdf 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
index 397ddf6d0dc5..f9089388e7e6 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
index cdeb75f9f2ca..a1f02b7fe752 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
index c0fe54f6e195..c4edba03b6e4 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
index 42f840dc59bf..56c9afe9c1f4 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
index 9c967bb740ab..e2c9f9b23aef 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
index 36020037953e..caa9858009b1 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
index 0b43d0467706..8d061c34a743 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
index 49ee05be031b..f16105ba9d1f 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
index 222e91dce4b7..a0acc0dd5c98 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
index b5ccb882bbd5..0d36252c903c 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
index a18106556da3..3ea137fbb6e7 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
index 8b7a91f1c068..de7bd7e39ba4 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
index 56c6a101016e..7ba2f927fc35 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
index 6e3d14e8f338..a83e70a03126 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
index 87eb0d05cb3b..36c7322efad3 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
index e6de3e837a04..34afdde5e4c3 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
index 24feda542d24..a52476dee076 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
index ca1dc7452be2..03bd681616f8 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
index ea9e821adf20..ecb861d5ba84 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
index 020b3402f59f..bce754cdd984 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
index 18c1523e9205..e80e5ed6b695 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
index a4a6dd11c65c..dafc6f003658 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
index 863ab45b57ca..6686066ddb3d 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
index b33374cd6c8b..673bb3b04c32 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
index bc30e3144066..553bb45ec0c6 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
index b74489decefe..0333d9ee7db6 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
index e8a489874562..6070bc52443e 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
index 53ab22824f7e..2167773b1198 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
index 13a222463643..89eaa6d96288 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
index a56f5a40c52e..ab066b4f65ca 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
index 5d360aa4b81e..061267bc10db 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
index 9fae916315e7..5789d4519024 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
index 109141fad029..dbd1c40a13d2 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
index d4bff9b419ae..24cc3595a7b4 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
index 0c63b97d5b26..d965f0afbeb3 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
index a69b8d4d7022..807d88dc2cd2 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
index f7f3abff52e4..b19b4b716010 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
index 2533fcd95621..50220bc1b4a7 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
index 4b40e3de68c0..5e31df867525 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
index d3044c853752..f2c48ffe2246 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
index 0c1f32ed6f89..dbc72ee36951 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
index a4a0ebc44fa6..d9505e303909 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
index 0f296654fd48..0810cdff6249 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
index d75911f2d397..5890237c3e5f 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
index 504f96e6e2b4..cc5684925851 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
index cbe3a9db2ad2..a92214a8c1d3 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
index 032894378503..b08937756811 100644
--- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
+++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
@@ -1,5 +1,6 @@
 
 /*============================================================================
+SPDX-License-Identifier: BSD-3-Clause
 
 This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
 Package, Release 3e, by John R. Hauser.
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (4 preceding siblings ...)
  2019-05-27 20:51 ` [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-28  0:17   ` Liming Gao
  2019-05-27 20:51 ` [PATCH v2 7/7] ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S Ard Biesheuvel
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney

When building OpenSSL for ARM or AARCH64 with recent Clang, the following
error may result:

  In file included from .../CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c:18:
  In file included from .../CryptoPkg/Library/OpensslLib/openssl/crypto/include/internal/x509_int.h:10:
  In file included from .../CryptoPkg/Library/OpensslLib/openssl/include/internal/refcount.h:21:
  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdatomic.h:35:
  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61:
  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
  #include <bits/libc-header-start.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
  1 error generated.

This is caused by the fact that the refcount.h header includes compiler
headers that in turn rely on system headers, which we don't support.

Since the C native atomics are a C11 feature, let's explicitly use the
C99 standard instead to work around this issue.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 BaseTools/Conf/tools_def.template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 26a2cf604f74..7fe6f4406a72 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -2280,8 +2280,8 @@ DEFINE CLANG35_ARM_TARGET        = -target arm-linux-gnueabi
 DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu
 
 DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unknown-warning-option
-DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)
-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG35_AARCH64_TARGET) -mcmodel=small DEF(CLANG35_WARNING_OVERRIDES)
+DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) -std=c99
+DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG35_AARCH64_TARGET) -mcmodel=small DEF(CLANG35_WARNING_OVERRIDES) -std=c99
 
 ##################
 # CLANG35 ARM definitions
@@ -2430,7 +2430,7 @@ NOOPT_CLANG38_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O0
 # CLANG38 ARM definitions
 ##################
 DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabi
-DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-movt
+DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-movt -std=c99
 DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)
 
 *_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
@@ -2474,7 +2474,7 @@ RELEASE_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L
 # CLANG38 AARCH64 definitions
 ##################
 DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu
-DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG38_AARCH64_TARGET) -mcmodel=small DEF(CLANG38_WARNING_OVERRIDES)
+DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG38_AARCH64_TARGET) -mcmodel=small DEF(CLANG38_WARNING_OVERRIDES) -std=c99
 DEFINE CLANG38_AARCH64_DLINK_FLAGS  = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
 
 *_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH v2 7/7] ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (5 preceding siblings ...)
  2019-05-27 20:51 ` [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard Ard Biesheuvel
@ 2019-05-27 20:51 ` Ard Biesheuvel
  2019-05-30  9:24   ` [edk2-devel] " Philippe Mathieu-Daudé
  2019-05-28  6:35 ` [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-27 20:51 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Laszlo Ersek, Gao, Liming, Wang, Jian J,
	Leif Lindholm, Michael D Kinney

Clang 7 complains about the vmsr instruction in ArmV7Support.S,
which is only available on cores that implement some flavour of
VFP. So set the .fpu to NEON like we do in some other places.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Note that the !clang alternative does not assembler for Clang-7 either
so this is probably the most straightforward approach.

 ArmPkg/Library/ArmLib/Arm/ArmV7Support.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S b/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
index 16c56f72e973..b5a6b9ea487d 100644
--- a/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
+++ b/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
@@ -262,6 +262,7 @@ ASM_FUNC(ArmEnableVFP)
 #ifndef __clang__
   mcr     p10,#0x7,r0,c8,c0,#0
 #else
+  .fpu    neon
   vmsr    fpexc, r0
 #endif
   bx      lr
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
  2019-05-27 20:51 ` [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard Ard Biesheuvel
@ 2019-05-28  0:17   ` Liming Gao
  2019-05-28  6:10     ` [edk2-devel] " Ard Biesheuvel
  0 siblings, 1 reply; 23+ messages in thread
From: Liming Gao @ 2019-05-28  0:17 UTC (permalink / raw)
  To: Ard Biesheuvel, devel@edk2.groups.io
  Cc: Laszlo Ersek, Wang, Jian J, Leif Lindholm, Kinney, Michael D

Ard:
  Is there any impact with new option? If no behavior change, I am OK for this patch. Reviewed-by: Liming Gao <liming.gao@intel.com> 

Thanks
Liming
>-----Original Message-----
>From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
>Sent: Tuesday, May 28, 2019 4:52 AM
>To: devel@edk2.groups.io
>Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo Ersek
><lersek@redhat.com>; Gao, Liming <liming.gao@intel.com>; Wang, Jian J
><jian.j.wang@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Kinney,
>Michael D <michael.d.kinney@intel.com>
>Subject: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force
>use of C99 standard
>
>When building OpenSSL for ARM or AARCH64 with recent Clang, the following
>error may result:
>
>  In file included
>from .../CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c:18:
>  In file included
>from .../CryptoPkg/Library/OpensslLib/openssl/crypto/include/internal/x509_
>int.h:10:
>  In file included
>from .../CryptoPkg/Library/OpensslLib/openssl/include/internal/refcount.h:2
>1:
>  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdatomic.h:35:
>  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61:
>  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not
>found
>  #include <bits/libc-header-start.h>
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~
>  1 error generated.
>
>This is caused by the fact that the refcount.h header includes compiler
>headers that in turn rely on system headers, which we don't support.
>
>Since the C native atomics are a C11 feature, let's explicitly use the
>C99 standard instead to work around this issue.
>
>Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>---
> BaseTools/Conf/tools_def.template | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/BaseTools/Conf/tools_def.template
>b/BaseTools/Conf/tools_def.template
>index 26a2cf604f74..7fe6f4406a72 100755
>--- a/BaseTools/Conf/tools_def.template
>+++ b/BaseTools/Conf/tools_def.template
>@@ -2280,8 +2280,8 @@ DEFINE CLANG35_ARM_TARGET        = -target arm-
>linux-gnueabi
> DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu
>
> DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -
>Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare
>-Wno-empty-body -Wno-unknown-warning-option
>-DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
>DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)
>-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
>DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
>DEF(CLANG35_WARNING_OVERRIDES)
>+DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
>DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) -
>std=c99
>+DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
>DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
>DEF(CLANG35_WARNING_OVERRIDES) -std=c99
>
> ##################
> # CLANG35 ARM definitions
>@@ -2430,7 +2430,7 @@ NOOPT_CLANG38_X64_DLINK2_FLAGS     =
>DEF(GCC5_X64_DLINK2_FLAGS) -O0
> # CLANG38 ARM definitions
> ##################
> DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabi
>-DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
>DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
>movt
>+DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
>DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
>movt -std=c99
> DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET)
>DEF(GCC_ARM_DLINK_FLAGS)
>
> *_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
>@@ -2474,7 +2474,7 @@ RELEASE_CLANG38_ARM_DLINK_FLAGS  =
>DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L
> # CLANG38 AARCH64 definitions
> ##################
> DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu
>-DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
>DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
>DEF(CLANG38_WARNING_OVERRIDES)
>+DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
>DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
>DEF(CLANG38_WARNING_OVERRIDES) -std=c99
> DEFINE CLANG38_AARCH64_DLINK_FLAGS  =
>DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z
>common-page-size=0x1000
>
> *_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
>--
>2.20.1


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [edk2-devel] [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
  2019-05-28  0:17   ` Liming Gao
@ 2019-05-28  6:10     ` Ard Biesheuvel
  2019-05-28  7:37       ` Wang, Jian J
  2019-05-28  8:25       ` Leif Lindholm
  0 siblings, 2 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-28  6:10 UTC (permalink / raw)
  To: edk2-devel-groups-io, Gao, Liming
  Cc: Laszlo Ersek, Wang, Jian J, Leif Lindholm, Kinney, Michael D

On Tue, 28 May 2019 at 02:17, Liming Gao <liming.gao@intel.com> wrote:
>
> Ard:
>   Is there any impact with new option? If no behavior change, I am OK for this patch. Reviewed-by: Liming Gao <liming.gao@intel.com>
>

We don't rely on anything provided by the C11 standard, so it should
not result in a behavior change. I do wonder whether x86 may be
affected as well, though.

Jian, did you try building OpenSSL 1.1.1b for x86 with the CLANG38
toolchain with a recent version of Clang?



> >-----Original Message-----
> >From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> >Sent: Tuesday, May 28, 2019 4:52 AM
> >To: devel@edk2.groups.io
> >Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo Ersek
> ><lersek@redhat.com>; Gao, Liming <liming.gao@intel.com>; Wang, Jian J
> ><jian.j.wang@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Kinney,
> >Michael D <michael.d.kinney@intel.com>
> >Subject: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force
> >use of C99 standard
> >
> >When building OpenSSL for ARM or AARCH64 with recent Clang, the following
> >error may result:
> >
> >  In file included
> >from .../CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c:18:
> >  In file included
> >from .../CryptoPkg/Library/OpensslLib/openssl/crypto/include/internal/x509_
> >int.h:10:
> >  In file included
> >from .../CryptoPkg/Library/OpensslLib/openssl/include/internal/refcount.h:2
> >1:
> >  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdatomic.h:35:
> >  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61:
> >  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not
> >found
> >  #include <bits/libc-header-start.h>
> >         ^~~~~~~~~~~~~~~~~~~~~~~~~~
> >  1 error generated.
> >
> >This is caused by the fact that the refcount.h header includes compiler
> >headers that in turn rely on system headers, which we don't support.
> >
> >Since the C native atomics are a C11 feature, let's explicitly use the
> >C99 standard instead to work around this issue.
> >
> >Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> >---
> > BaseTools/Conf/tools_def.template | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> >diff --git a/BaseTools/Conf/tools_def.template
> >b/BaseTools/Conf/tools_def.template
> >index 26a2cf604f74..7fe6f4406a72 100755
> >--- a/BaseTools/Conf/tools_def.template
> >+++ b/BaseTools/Conf/tools_def.template
> >@@ -2280,8 +2280,8 @@ DEFINE CLANG35_ARM_TARGET        = -target arm-
> >linux-gnueabi
> > DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu
> >
> > DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -
> >Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare
> >-Wno-empty-body -Wno-unknown-warning-option
> >-DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)
> >-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
> >DEF(CLANG35_WARNING_OVERRIDES)
> >+DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) -
> >std=c99
> >+DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
> >DEF(CLANG35_WARNING_OVERRIDES) -std=c99
> >
> > ##################
> > # CLANG35 ARM definitions
> >@@ -2430,7 +2430,7 @@ NOOPT_CLANG38_X64_DLINK2_FLAGS     =
> >DEF(GCC5_X64_DLINK2_FLAGS) -O0
> > # CLANG38 ARM definitions
> > ##################
> > DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabi
> >-DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
> >movt
> >+DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
> >movt -std=c99
> > DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET)
> >DEF(GCC_ARM_DLINK_FLAGS)
> >
> > *_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
> >@@ -2474,7 +2474,7 @@ RELEASE_CLANG38_ARM_DLINK_FLAGS  =
> >DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L
> > # CLANG38 AARCH64 definitions
> > ##################
> > DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu
> >-DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
> >DEF(CLANG38_WARNING_OVERRIDES)
> >+DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
> >DEF(CLANG38_WARNING_OVERRIDES) -std=c99
> > DEFINE CLANG38_AARCH64_DLINK_FLAGS  =
> >DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z
> >common-page-size=0x1000
> >
> > *_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
> >--
> >2.20.1
>
>
> 
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (6 preceding siblings ...)
  2019-05-27 20:51 ` [PATCH v2 7/7] ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S Ard Biesheuvel
@ 2019-05-28  6:35 ` Ard Biesheuvel
  2019-05-28 11:21 ` Laszlo Ersek
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-28  6:35 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Laszlo Ersek, Gao, Liming, Wang, Jian J, Leif Lindholm,
	Michael D Kinney

On Mon, 27 May 2019 at 22:51, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>
> Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
> the ARM software floating point library, which lacks some intrinsics
> that the ARM EABI spec defines.
>
> Since the code was in pretty sorry state, let's fix this by upgrading
> to the very latest version of the core library this code is based on,
> dated January 2018 (whereas the NetBSD fork of the old code dates back
> to 2002)
>
> Note that this drops support for RVCT, but this toolchain is untested
> and will likely be removed. [0]
>
> Code can be found here:
> https://github.com/ardbiesheuvel/edk2/tree/arm-softfloat-upgrade-v2
>
> Changes since v1:
> - Update the INLINE macro to pass __attribute__((always_inline)), to work
>   around a build issue that occurs when optimization is disabled.
> - Add a patch to remove the unused files. As it turns out, 385 of the ~450
>   files are unused (which is a lot more than Laszlo reported), and so it
>   makes sense to merge patch #4 into patch #1
> - Add a patch to add SPDX identifiers to the files that we are keeping (#5).
>   This patch can be merged into #1 as well.
> - Add patches to work around issues that prevent the new code to build with
>   Clang. Patch #6 is actually related to the OpenSSL upgrade, while patch #7
>   is related to Clang 7 (and has been posted already 6 months ago)
>

Another change I failed to mention:
- Get rid of the use of unions for type punning and designated
initializers. Instead, take advantage of the fact that the floatXX_t
types embed a type that is compatible with the respective
aeabi_float/double type.

> Note that another issue popped up, which affects the OpenSSL 1.1.1b upgrade:
>
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:71:12:
>   error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized]
>     return ret;
>            ^~~
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:44:12:
>   note: initialize the variable 'ret' to silence this warning
>     int ret;
>            ^
>             = 0
>   1 error generated.
>
> This appears to be a regression in the OpenSSL upstream code (commit
> 25eb9299cec), which no longer initializes ret if OPENSSL_SYS_UEFI is #defined.
>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: "Gao, Liming" <liming.gao@intel.com>
> Cc: "Wang, Jian J" <jian.j.wang@intel.com>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>
> [0] https://bugzilla.tianocore.org/show_bug.cgi?id=1750
>
> Ard Biesheuvel (7):
>   ArmPkg: import latest version (3e) of the Berkeley Softfloat library
>   ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
>   ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
>   ArmPkg/ArmSoftFloatLib: remove new source files that are not used
>   ArmPkg/ArmSoftFloatLib: add SPDX identifiers
>   BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
>   ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S
>
>  ArmPkg/Library/ArmLib/Arm/ArmV7Support.S                                            |    1 +
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm                                |   41 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm                                |   37 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c                                 |   28 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c                                 |   35 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c                                 |   35 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h                                      |  345 ---
>  ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c                                    |  283 +++
>  ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf                                  |   84 +-
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt                             |   37 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html                             |   49 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt                              |   21 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    |   54 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html              |  258 +++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html               |  686 ++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html                      | 1527 +++++++++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  |   64 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           |  377 ++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        |  181 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        |  138 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     |   94 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            |   90 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            |   95 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           |   91 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        |   75 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        |  173 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         |   68 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         |   68 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        |  151 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        |   75 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            |   97 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            |  101 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           |   94 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     |   66 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              |  279 +++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               |  115 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         |   86 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1161 ++++++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              |  373 ++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        |   82 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   |  127 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   |  129 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          |   65 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          |   74 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               |  114 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               |  118 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              |   52 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              |   52 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         |   51 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   |  144 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   |  142 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    |   58 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    |   65 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h                                            |  108 -
>  ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros                              |  648 ------
>  ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c                                   | 2354 --------------------
>  ArmPkg/Library/ArmSoftFloatLib/milieu.h                                             |   38 -
>  ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h                                  |  242 --
>  ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize                                 |  525 -----
>  BaseTools/Conf/tools_def.template                                                   |    8 +-
>  91 files changed, 9812 insertions(+), 4730 deletions(-)
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/milieu.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize
>
> --
> 2.20.1
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [edk2-devel] [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
  2019-05-28  6:10     ` [edk2-devel] " Ard Biesheuvel
@ 2019-05-28  7:37       ` Wang, Jian J
  2019-05-28  8:25       ` Leif Lindholm
  1 sibling, 0 replies; 23+ messages in thread
From: Wang, Jian J @ 2019-05-28  7:37 UTC (permalink / raw)
  To: Ard Biesheuvel, edk2-devel-groups-io, Gao, Liming
  Cc: Laszlo Ersek, Leif Lindholm, Kinney, Michael D

Ard,

> -----Original Message-----
> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> Sent: Tuesday, May 28, 2019 2:11 PM
> To: edk2-devel-groups-io <devel@edk2.groups.io>; Gao, Liming
> <liming.gao@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>; Wang, Jian J <jian.j.wang@intel.com>;
> Leif Lindholm <leif.lindholm@linaro.org>; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Subject: Re: [edk2-devel] [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM
> AARCH64: force use of C99 standard
> 
> On Tue, 28 May 2019 at 02:17, Liming Gao <liming.gao@intel.com> wrote:
> >
> > Ard:
> >   Is there any impact with new option? If no behavior change, I am OK for this
> patch. Reviewed-by: Liming Gao <liming.gao@intel.com>
> >
> 
> We don't rely on anything provided by the C11 standard, so it should
> not result in a behavior change. I do wonder whether x86 may be
> affected as well, though.
> 
> Jian, did you try building OpenSSL 1.1.1b for x86 with the CLANG38
> toolchain with a recent version of Clang?
> 
> 

We just tried but failed. Need to add similar options
for crypto lib. We'll do it in openssl upgrade patch v5.

> 
> > >-----Original Message-----
> > >From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> > >Sent: Tuesday, May 28, 2019 4:52 AM
> > >To: devel@edk2.groups.io
> > >Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo Ersek
> > ><lersek@redhat.com>; Gao, Liming <liming.gao@intel.com>; Wang, Jian J
> > ><jian.j.wang@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Kinney,
> > >Michael D <michael.d.kinney@intel.com>
> > >Subject: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force
> > >use of C99 standard
> > >
> > >When building OpenSSL for ARM or AARCH64 with recent Clang, the
> following
> > >error may result:
> > >
> > >  In file included
> > >from .../CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c:18:
> > >  In file included
> > >from .../CryptoPkg/Library/OpensslLib/openssl/crypto/include/internal/x509
> _
> > >int.h:10:
> > >  In file included
> > >from .../CryptoPkg/Library/OpensslLib/openssl/include/internal/refcount.h:2
> > >1:
> > >  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdatomic.h:35:
> > >  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61:
> > >  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not
> > >found
> > >  #include <bits/libc-header-start.h>
> > >         ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > >  1 error generated.
> > >
> > >This is caused by the fact that the refcount.h header includes compiler
> > >headers that in turn rely on system headers, which we don't support.
> > >
> > >Since the C native atomics are a C11 feature, let's explicitly use the
> > >C99 standard instead to work around this issue.
> > >
> > >Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > >---
> > > BaseTools/Conf/tools_def.template | 8 ++++----
> > > 1 file changed, 4 insertions(+), 4 deletions(-)
> > >
> > >diff --git a/BaseTools/Conf/tools_def.template
> > >b/BaseTools/Conf/tools_def.template
> > >index 26a2cf604f74..7fe6f4406a72 100755
> > >--- a/BaseTools/Conf/tools_def.template
> > >+++ b/BaseTools/Conf/tools_def.template
> > >@@ -2280,8 +2280,8 @@ DEFINE CLANG35_ARM_TARGET        = -target
> arm-
> > >linux-gnueabi
> > > DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu
> > >
> > > DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -
> > >Wno-tautological-compare -Wno-tautological-constant-out-of-range-
> compare
> > >-Wno-empty-body -Wno-unknown-warning-option
> > >-DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)
> > >-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG35_WARNING_OVERRIDES)
> > >+DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) -
> > >std=c99
> > >+DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG35_WARNING_OVERRIDES) -std=c99
> > >
> > > ##################
> > > # CLANG35 ARM definitions
> > >@@ -2430,7 +2430,7 @@ NOOPT_CLANG38_X64_DLINK2_FLAGS     =
> > >DEF(GCC5_X64_DLINK2_FLAGS) -O0
> > > # CLANG38 ARM definitions
> > > ##################
> > > DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabi
> > >-DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
> > >movt
> > >+DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
> > >movt -std=c99
> > > DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET)
> > >DEF(GCC_ARM_DLINK_FLAGS)
> > >
> > > *_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
> > >@@ -2474,7 +2474,7 @@ RELEASE_CLANG38_ARM_DLINK_FLAGS  =
> > >DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L
> > > # CLANG38 AARCH64 definitions
> > > ##################
> > > DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu
> > >-DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG38_WARNING_OVERRIDES)
> > >+DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG38_WARNING_OVERRIDES) -std=c99
> > > DEFINE CLANG38_AARCH64_DLINK_FLAGS  =
> > >DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z
> > >common-page-size=0x1000
> > >
> > > *_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
> > >--
> > >2.20.1
> >
> >
> > 
> >

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [edk2-devel] [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
  2019-05-28  6:10     ` [edk2-devel] " Ard Biesheuvel
  2019-05-28  7:37       ` Wang, Jian J
@ 2019-05-28  8:25       ` Leif Lindholm
  1 sibling, 0 replies; 23+ messages in thread
From: Leif Lindholm @ 2019-05-28  8:25 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: edk2-devel-groups-io, Gao, Liming, Laszlo Ersek, Wang, Jian J,
	Kinney, Michael D

On Tue, May 28, 2019 at 08:10:44AM +0200, Ard Biesheuvel wrote:
> On Tue, 28 May 2019 at 02:17, Liming Gao <liming.gao@intel.com> wrote:
> >
> > Ard:
> >   Is there any impact with new option? If no behavior change, I am OK for this patch. Reviewed-by: Liming Gao <liming.gao@intel.com>
> >
> 
> We don't rely on anything provided by the C11 standard, so it should
> not result in a behavior change. I do wonder whether x86 may be
> affected as well, though.

A minor concern would be that GCC defaults to "gnu11" since (after a
cursory search) 5.1, so we could be setting ourselves up for future
clashes. Which is possibly fine, as long as we're aware.

/
    Leif

> Jian, did you try building OpenSSL 1.1.1b for x86 with the CLANG38
> toolchain with a recent version of Clang?
> 
> 
> 
> > >-----Original Message-----
> > >From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> > >Sent: Tuesday, May 28, 2019 4:52 AM
> > >To: devel@edk2.groups.io
> > >Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo Ersek
> > ><lersek@redhat.com>; Gao, Liming <liming.gao@intel.com>; Wang, Jian J
> > ><jian.j.wang@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>; Kinney,
> > >Michael D <michael.d.kinney@intel.com>
> > >Subject: [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force
> > >use of C99 standard
> > >
> > >When building OpenSSL for ARM or AARCH64 with recent Clang, the following
> > >error may result:
> > >
> > >  In file included
> > >from .../CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7VerifyEku.c:18:
> > >  In file included
> > >from .../CryptoPkg/Library/OpensslLib/openssl/crypto/include/internal/x509_
> > >int.h:10:
> > >  In file included
> > >from .../CryptoPkg/Library/OpensslLib/openssl/include/internal/refcount.h:2
> > >1:
> > >  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdatomic.h:35:
> > >  In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61:
> > >  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not
> > >found
> > >  #include <bits/libc-header-start.h>
> > >         ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > >  1 error generated.
> > >
> > >This is caused by the fact that the refcount.h header includes compiler
> > >headers that in turn rely on system headers, which we don't support.
> > >
> > >Since the C native atomics are a C11 feature, let's explicitly use the
> > >C99 standard instead to work around this issue.
> > >
> > >Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > >---
> > > BaseTools/Conf/tools_def.template | 8 ++++----
> > > 1 file changed, 4 insertions(+), 4 deletions(-)
> > >
> > >diff --git a/BaseTools/Conf/tools_def.template
> > >b/BaseTools/Conf/tools_def.template
> > >index 26a2cf604f74..7fe6f4406a72 100755
> > >--- a/BaseTools/Conf/tools_def.template
> > >+++ b/BaseTools/Conf/tools_def.template
> > >@@ -2280,8 +2280,8 @@ DEFINE CLANG35_ARM_TARGET        = -target arm-
> > >linux-gnueabi
> > > DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu
> > >
> > > DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -
> > >Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare
> > >-Wno-empty-body -Wno-unknown-warning-option
> > >-DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)
> > >-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG35_WARNING_OVERRIDES)
> > >+DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES) -
> > >std=c99
> > >+DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG35_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG35_WARNING_OVERRIDES) -std=c99
> > >
> > > ##################
> > > # CLANG35 ARM definitions
> > >@@ -2430,7 +2430,7 @@ NOOPT_CLANG38_X64_DLINK2_FLAGS     =
> > >DEF(GCC5_X64_DLINK2_FLAGS) -O0
> > > # CLANG38 ARM definitions
> > > ##################
> > > DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabi
> > >-DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
> > >movt
> > >+DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS)
> > >DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-
> > >movt -std=c99
> > > DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET)
> > >DEF(GCC_ARM_DLINK_FLAGS)
> > >
> > > *_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)
> > >@@ -2474,7 +2474,7 @@ RELEASE_CLANG38_ARM_DLINK_FLAGS  =
> > >DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L
> > > # CLANG38 AARCH64 definitions
> > > ##################
> > > DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu
> > >-DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG38_WARNING_OVERRIDES)
> > >+DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS)
> > >DEF(CLANG38_AARCH64_TARGET) -mcmodel=small
> > >DEF(CLANG38_WARNING_OVERRIDES) -std=c99
> > > DEFINE CLANG38_AARCH64_DLINK_FLAGS  =
> > >DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z
> > >common-page-size=0x1000
> > >
> > > *_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)
> > >--
> > >2.20.1
> >
> >
> > 
> >

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (7 preceding siblings ...)
  2019-05-28  6:35 ` [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
@ 2019-05-28 11:21 ` Laszlo Ersek
  2019-05-28 11:29 ` Laszlo Ersek
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Laszlo Ersek @ 2019-05-28 11:21 UTC (permalink / raw)
  To: Ard Biesheuvel, devel
  Cc: Gao, Liming, Wang, Jian J, Leif Lindholm, Michael D Kinney

On 05/27/19 22:51, Ard Biesheuvel wrote:
> Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
> the ARM software floating point library, which lacks some intrinsics
> that the ARM EABI spec defines.
> 
> Since the code was in pretty sorry state, let's fix this by upgrading
> to the very latest version of the core library this code is based on,
> dated January 2018 (whereas the NetBSD fork of the old code dates back
> to 2002)
> 
> Note that this drops support for RVCT, but this toolchain is untested
> and will likely be removed. [0]
> 
> Code can be found here:
> https://github.com/ardbiesheuvel/edk2/tree/arm-softfloat-upgrade-v2
> 
> Changes since v1:
> - Update the INLINE macro to pass __attribute__((always_inline)), to work
>   around a build issue that occurs when optimization is disabled.
> - Add a patch to remove the unused files. As it turns out, 385 of the ~450
>   files are unused (which is a lot more than Laszlo reported), and so it
>   makes sense to merge patch #4 into patch #1
> - Add a patch to add SPDX identifiers to the files that we are keeping (#5).
>   This patch can be merged into #1 as well.
> - Add patches to work around issues that prevent the new code to build with
>   Clang. Patch #6 is actually related to the OpenSSL upgrade, while patch #7
>   is related to Clang 7 (and has been posted already 6 months ago)
> 
> Note that another issue popped up, which affects the OpenSSL 1.1.1b upgrade:
> 
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:71:12:
>   error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized]
>     return ret;
>            ^~~
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:44:12:
>   note: initialize the variable 'ret' to silence this warning
>     int ret;
>            ^
>             = 0
>   1 error generated.
> 
> This appears to be a regression in the OpenSSL upstream code (commit
> 25eb9299cec), which no longer initializes ret if OPENSSL_SYS_UEFI is #defined.

I've filed <https://github.com/openssl/openssl/issues/9026> about this
issue now.

Thanks
Laszlo

> 
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: "Gao, Liming" <liming.gao@intel.com>
> Cc: "Wang, Jian J" <jian.j.wang@intel.com>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> 
> [0] https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> 
> Ard Biesheuvel (7):
>   ArmPkg: import latest version (3e) of the Berkeley Softfloat library
>   ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
>   ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
>   ArmPkg/ArmSoftFloatLib: remove new source files that are not used
>   ArmPkg/ArmSoftFloatLib: add SPDX identifiers
>   BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
>   ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S
> 
>  ArmPkg/Library/ArmLib/Arm/ArmV7Support.S                                            |    1 +
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm                                |   41 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm                                |   37 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c                                 |   28 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c                                 |   35 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c                                 |   35 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h                                      |  345 ---
>  ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c                                    |  283 +++
>  ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf                                  |   84 +-
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt                             |   37 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html                             |   49 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt                              |   21 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    |   54 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html              |  258 +++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html               |  686 ++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html                      | 1527 +++++++++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  |   64 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           |  377 ++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        |  181 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        |  138 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     |   94 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            |   90 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            |   95 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           |   91 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        |   75 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        |  173 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         |   68 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         |   68 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        |  151 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        |   75 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            |   97 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            |  101 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           |   94 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     |   66 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              |  279 +++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               |  115 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         |   86 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1161 ++++++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              |  373 ++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        |   82 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   |  127 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   |  129 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          |   65 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          |   74 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               |  114 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               |  118 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              |   52 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              |   52 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         |   51 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   |  144 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   |  142 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    |   58 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    |   65 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h                                            |  108 -
>  ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros                              |  648 ------
>  ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c                                   | 2354 --------------------
>  ArmPkg/Library/ArmSoftFloatLib/milieu.h                                             |   38 -
>  ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h                                  |  242 --
>  ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize                                 |  525 -----
>  BaseTools/Conf/tools_def.template                                                   |    8 +-
>  91 files changed, 9812 insertions(+), 4730 deletions(-)
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/milieu.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize
> 


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers
  2019-05-27 20:51 ` [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers Ard Biesheuvel
@ 2019-05-28 11:27   ` Laszlo Ersek
  2019-05-28 11:28     ` Ard Biesheuvel
  0 siblings, 1 reply; 23+ messages in thread
From: Laszlo Ersek @ 2019-05-28 11:27 UTC (permalink / raw)
  To: Ard Biesheuvel, devel
  Cc: Gao, Liming, Wang, Jian J, Leif Lindholm, Michael D Kinney

On 05/27/19 22:51, Ard Biesheuvel wrote:
> Add the appropriate SPDX identifiers to all files taken from the
> 3-clause BSD licensed SoftFloat library.
> 
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
> Acked-by: Jian J Wang <jian.j.wang@intel.com>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    | 1 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    | 1 +
>  60 files changed, 60 insertions(+)
> 
> diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> index 18ed054d4f4d..2a750e4f540e 100644
> --- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> +++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> @@ -1,5 +1,6 @@
>  
>  /*============================================================================
> +SPDX-License-Identifier: BSD-3-Clause
>  
>  This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
>  Package, Release 3e, by John R. Hauser.

We generally replace the original license text with the SPDX identifier.
But, I guess we can do that later here.

Thanks,
Laszlo

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers
  2019-05-28 11:27   ` Laszlo Ersek
@ 2019-05-28 11:28     ` Ard Biesheuvel
  2019-05-28 12:22       ` Leif Lindholm
  0 siblings, 1 reply; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-28 11:28 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: edk2-devel-groups-io, Gao, Liming, Wang, Jian J, Leif Lindholm,
	Michael D Kinney

On Tue, 28 May 2019 at 13:27, Laszlo Ersek <lersek@redhat.com> wrote:
>
> On 05/27/19 22:51, Ard Biesheuvel wrote:
> > Add the appropriate SPDX identifiers to all files taken from the
> > 3-clause BSD licensed SoftFloat library.
> >
> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1845
> > Acked-by: Jian J Wang <jian.j.wang@intel.com>
> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > ---
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    | 1 +
> >  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    | 1 +
> >  60 files changed, 60 insertions(+)
> >
> > diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> > index 18ed054d4f4d..2a750e4f540e 100644
> > --- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> > +++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> > @@ -1,5 +1,6 @@
> >
> >  /*============================================================================
> > +SPDX-License-Identifier: BSD-3-Clause
> >
> >  This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
> >  Package, Release 3e, by John R. Hauser.
>
> We generally replace the original license text with the SPDX identifier.
> But, I guess we can do that later here.
>

No, we can't. The license does not actuall permit that ...

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (8 preceding siblings ...)
  2019-05-28 11:21 ` Laszlo Ersek
@ 2019-05-28 11:29 ` Laszlo Ersek
  2019-05-28 11:39 ` Laszlo Ersek
  2019-05-28 15:40 ` Leif Lindholm
  11 siblings, 0 replies; 23+ messages in thread
From: Laszlo Ersek @ 2019-05-28 11:29 UTC (permalink / raw)
  To: Ard Biesheuvel, devel
  Cc: Gao, Liming, Wang, Jian J, Leif Lindholm, Michael D Kinney

On 05/27/19 22:51, Ard Biesheuvel wrote:
> Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
> the ARM software floating point library, which lacks some intrinsics
> that the ARM EABI spec defines.
> 
> Since the code was in pretty sorry state, let's fix this by upgrading
> to the very latest version of the core library this code is based on,
> dated January 2018 (whereas the NetBSD fork of the old code dates back
> to 2002)
> 
> Note that this drops support for RVCT, but this toolchain is untested
> and will likely be removed. [0]
> 
> Code can be found here:
> https://github.com/ardbiesheuvel/edk2/tree/arm-softfloat-upgrade-v2
> 
> Changes since v1:
> - Update the INLINE macro to pass __attribute__((always_inline)), to work
>   around a build issue that occurs when optimization is disabled.
> - Add a patch to remove the unused files. As it turns out, 385 of the ~450
>   files are unused (which is a lot more than Laszlo reported), and so it
>   makes sense to merge patch #4 into patch #1
> - Add a patch to add SPDX identifiers to the files that we are keeping (#5).
>   This patch can be merged into #1 as well.
> - Add patches to work around issues that prevent the new code to build with
>   Clang. Patch #6 is actually related to the OpenSSL upgrade, while patch #7
>   is related to Clang 7 (and has been posted already 6 months ago)
> 
> Note that another issue popped up, which affects the OpenSSL 1.1.1b upgrade:
> 
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:71:12:
>   error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized]
>     return ret;
>            ^~~
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:44:12:
>   note: initialize the variable 'ret' to silence this warning
>     int ret;
>            ^
>             = 0
>   1 error generated.
> 
> This appears to be a regression in the OpenSSL upstream code (commit
> 25eb9299cec), which no longer initializes ret if OPENSSL_SYS_UEFI is #defined.
> 
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: "Gao, Liming" <liming.gao@intel.com>
> Cc: "Wang, Jian J" <jian.j.wang@intel.com>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> 
> [0] https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> 
> Ard Biesheuvel (7):
>   ArmPkg: import latest version (3e) of the Berkeley Softfloat library
>   ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
>   ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
>   ArmPkg/ArmSoftFloatLib: remove new source files that are not used
>   ArmPkg/ArmSoftFloatLib: add SPDX identifiers
>   BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
>   ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S

series
Acked-by: Laszlo Ersek <lersek@redhat.com>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (9 preceding siblings ...)
  2019-05-28 11:29 ` Laszlo Ersek
@ 2019-05-28 11:39 ` Laszlo Ersek
  2019-05-28 13:56   ` Ard Biesheuvel
  2019-05-28 16:57   ` [edk2-devel] " Michael D Kinney
  2019-05-28 15:40 ` Leif Lindholm
  11 siblings, 2 replies; 23+ messages in thread
From: Laszlo Ersek @ 2019-05-28 11:39 UTC (permalink / raw)
  To: Ard Biesheuvel, devel
  Cc: Gao, Liming, Wang, Jian J, Leif Lindholm, Michael D Kinney

On 05/27/19 22:51, Ard Biesheuvel wrote:
> Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
> the ARM software floating point library, which lacks some intrinsics
> that the ARM EABI spec defines.
> 
> Since the code was in pretty sorry state, let's fix this by upgrading
> to the very latest version of the core library this code is based on,
> dated January 2018 (whereas the NetBSD fork of the old code dates back
> to 2002)

Before I forget: thank you, Ard, for solving this problem on such short
notice!

Laszlo

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers
  2019-05-28 11:28     ` Ard Biesheuvel
@ 2019-05-28 12:22       ` Leif Lindholm
  0 siblings, 0 replies; 23+ messages in thread
From: Leif Lindholm @ 2019-05-28 12:22 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: Laszlo Ersek, edk2-devel-groups-io, Gao, Liming, Wang, Jian J,
	Michael D Kinney

On Tue, May 28, 2019 at 01:28:21PM +0200, Ard Biesheuvel wrote:
> > > diff --git a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> > > index 18ed054d4f4d..2a750e4f540e 100644
> > > --- a/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> > > +++ b/ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
> > > @@ -1,5 +1,6 @@
> > >
> > >  /*============================================================================
> > > +SPDX-License-Identifier: BSD-3-Clause
> > >
> > >  This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
> > >  Package, Release 3e, by John R. Hauser.
> >
> > We generally replace the original license text with the SPDX identifier.
> > But, I guess we can do that later here.
> 
> No, we can't. The license does not actuall permit that ...

I agree.

The named entity in the non-endorsement clause of BSD-3 means it
*cannot* be replaced by SPDX identifier.

Only a project that used the text in
https://spdx.org/licenses/BSD-3-Clause.html verbatim could.

/
    Leif

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-28 11:39 ` Laszlo Ersek
@ 2019-05-28 13:56   ` Ard Biesheuvel
  2019-05-28 16:57   ` [edk2-devel] " Michael D Kinney
  1 sibling, 0 replies; 23+ messages in thread
From: Ard Biesheuvel @ 2019-05-28 13:56 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: edk2-devel-groups-io, Gao, Liming, Wang, Jian J, Leif Lindholm,
	Michael D Kinney

On Tue, 28 May 2019 at 13:39, Laszlo Ersek <lersek@redhat.com> wrote:
>
> On 05/27/19 22:51, Ard Biesheuvel wrote:
> > Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
> > the ARM software floating point library, which lacks some intrinsics
> > that the ARM EABI spec defines.
> >
> > Since the code was in pretty sorry state, let's fix this by upgrading
> > to the very latest version of the core library this code is based on,
> > dated January 2018 (whereas the NetBSD fork of the old code dates back
> > to 2002)
>
> Before I forget: thank you, Ard, for solving this problem on such short
> notice!
>

Don't mention it - it was about time someone cleaned up that code :-)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
                   ` (10 preceding siblings ...)
  2019-05-28 11:39 ` Laszlo Ersek
@ 2019-05-28 15:40 ` Leif Lindholm
  11 siblings, 0 replies; 23+ messages in thread
From: Leif Lindholm @ 2019-05-28 15:40 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: devel, Laszlo Ersek, Gao, Liming, Wang, Jian J, Michael D Kinney

Hi Ard,

Many thanks for this.

Two comments:
- First, just the note I made on the -std=c99 patch - we're diverging
  behaviour between CLANG and modern GCC. I don't think we're really
  promoting use of c11 features anyway, but it could be worth
  considering adding an explicit flag to GCC5 as well, to lock them in
  step. This is in no way a gating issue.
- The patent grant concern I raised in my recent email. This is
  gating, but I'm hoping we can have a conclusion by tomorrow. All I
  want is explicit consensus. The fact that the library is only used
  on ARM mitigates the situation substantially.

For the series (pending patent grant consensus):
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

/
    Leif

On Mon, May 27, 2019 at 10:51:34PM +0200, Ard Biesheuvel wrote:
> Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in
> the ARM software floating point library, which lacks some intrinsics
> that the ARM EABI spec defines.
> 
> Since the code was in pretty sorry state, let's fix this by upgrading
> to the very latest version of the core library this code is based on,
> dated January 2018 (whereas the NetBSD fork of the old code dates back
> to 2002)
> 
> Note that this drops support for RVCT, but this toolchain is untested
> and will likely be removed. [0]
> 
> Code can be found here:
> https://github.com/ardbiesheuvel/edk2/tree/arm-softfloat-upgrade-v2
> 
> Changes since v1:
> - Update the INLINE macro to pass __attribute__((always_inline)), to work
>   around a build issue that occurs when optimization is disabled.
> - Add a patch to remove the unused files. As it turns out, 385 of the ~450
>   files are unused (which is a lot more than Laszlo reported), and so it
>   makes sense to merge patch #4 into patch #1
> - Add a patch to add SPDX identifiers to the files that we are keeping (#5).
>   This patch can be merged into #1 as well.
> - Add patches to work around issues that prevent the new code to build with
>   Clang. Patch #6 is actually related to the OpenSSL upgrade, while patch #7
>   is related to Clang 7 (and has been posted already 6 months ago)
> 
> Note that another issue popped up, which affects the OpenSSL 1.1.1b upgrade:
> 
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:71:12:
>   error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized]
>     return ret;
>            ^~~
>   .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:44:12:
>   note: initialize the variable 'ret' to silence this warning
>     int ret;
>            ^
>             = 0
>   1 error generated.
> 
> This appears to be a regression in the OpenSSL upstream code (commit
> 25eb9299cec), which no longer initializes ret if OPENSSL_SYS_UEFI is #defined.
> 
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: "Gao, Liming" <liming.gao@intel.com>
> Cc: "Wang, Jian J" <jian.j.wang@intel.com>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> 
> [0] https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> 
> Ard Biesheuvel (7):
>   ArmPkg: import latest version (3e) of the Berkeley Softfloat library
>   ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
>   ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
>   ArmPkg/ArmSoftFloatLib: remove new source files that are not used
>   ArmPkg/ArmSoftFloatLib: add SPDX identifiers
>   BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard
>   ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S
> 
>  ArmPkg/Library/ArmLib/Arm/ArmV7Support.S                                            |    1 +
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm                                |   41 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm                                |   37 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c                                 |   28 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c                                 |   35 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c                                 |   30 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c                                 |   35 -
>  ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h                                      |  345 ---
>  ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c                                    |  283 +++
>  ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf                                  |   84 +-
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt                             |   37 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html                             |   49 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt                              |   21 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h    |   54 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html              |  258 +++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html               |  686 ++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html                      | 1527 +++++++++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c  |   64 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h           |  377 ++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c                        |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c                        |  181 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c                        |  138 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c                        |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c                     |   94 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c            |   90 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c            |   95 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c           |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c           |   91 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c                        |   75 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c                        |  173 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c                         |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c                         |   68 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c                         |   68 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c                        |  151 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c                        |   75 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c                     |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c            |   97 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c            |  101 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c           |   89 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c           |   94 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c                     |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c                     |   66 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c                     |   71 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c                     |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h              |  279 +++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h               |  115 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h         |   86 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h             | 1161 ++++++++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h              |  373 ++++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h        |   82 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c                   |  127 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c                   |  129 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c          |   65 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c          |   74 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c           |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c                   |   67 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c           |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c           |   59 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c          |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c          |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c               |  114 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c               |  118 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c              |   52 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c              |   52 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c         |   51 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c                   |  144 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c                   |  142 ++
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c                |   53 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c                    |   58 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c                    |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c                    |   65 +
>  ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c                    |   60 +
>  ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h                                            |  108 -
>  ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros                              |  648 ------
>  ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c                                   | 2354 --------------------
>  ArmPkg/Library/ArmSoftFloatLib/milieu.h                                             |   38 -
>  ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h                                  |  242 --
>  ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize                                 |  525 -----
>  BaseTools/Conf/tools_def.template                                                   |    8 +-
>  91 files changed, 9812 insertions(+), 4730 deletions(-)
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/COPYING.txt
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/README.txt
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/build/Linux-ARM-VFPv2-GCC/platform.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-history.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat-source.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/doc/SoftFloat.html
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ARM-VFPv2/specialize.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_add.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_div.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_eq.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_le.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_lt.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_mul.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_sub.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_i64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_add.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_div.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_eq.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_le.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_lt.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_mul.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_sub.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_i64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/i64_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/internals.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/opts-GCC.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitiveTypes.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/primitives.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/include/softfloat_types.h
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_addMagsF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_countLeadingZeros8.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_mul64To128.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normRoundPackToF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF32Sig.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_normSubnormalF64Sig.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_roundPackToF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shiftRightJam64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_shortShiftRightJam64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/s_subMagsF64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/softfloat_state.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui32_to_f64.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f32.c
>  create mode 100644 ArmPkg/Library/ArmSoftFloatLib/SoftFloat-3e/source/ui64_to_f64.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/milieu.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h
>  delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize
> 
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [edk2-devel] [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version
  2019-05-28 11:39 ` Laszlo Ersek
  2019-05-28 13:56   ` Ard Biesheuvel
@ 2019-05-28 16:57   ` Michael D Kinney
  1 sibling, 0 replies; 23+ messages in thread
From: Michael D Kinney @ 2019-05-28 16:57 UTC (permalink / raw)
  To: devel@edk2.groups.io, lersek@redhat.com, Ard Biesheuvel,
	Kinney, Michael D
  Cc: Gao, Liming, Wang, Jian J, Leif Lindholm



> -----Original Message-----
> From: devel@edk2.groups.io
> [mailto:devel@edk2.groups.io] On Behalf Of Laszlo Ersek
> Sent: Tuesday, May 28, 2019 4:40 AM
> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>;
> devel@edk2.groups.io
> Cc: Gao, Liming <liming.gao@intel.com>; Wang, Jian J
> <jian.j.wang@intel.com>; Leif Lindholm
> <leif.lindholm@linaro.org>; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Subject: Re: [edk2-devel] [PATCH v2 0/7] update
> ArmSoftFloatLib to latest upstream version
> 
> On 05/27/19 22:51, Ard Biesheuvel wrote:
> > Currently, our move to OpenSSL 1.1.1b is being
> blocked by an issue in
> > the ARM software floating point library, which lacks
> some intrinsics
> > that the ARM EABI spec defines.
> >
> > Since the code was in pretty sorry state, let's fix
> this by upgrading
> > to the very latest version of the core library this
> code is based on,
> > dated January 2018 (whereas the NetBSD fork of the
> old code dates back
> > to 2002)
> 
> Before I forget: thank you, Ard, for solving this
> problem on such short
> notice!

+1

> 
> Laszlo
> 
> 


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [edk2-devel] [PATCH v2 7/7] ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S
  2019-05-27 20:51 ` [PATCH v2 7/7] ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S Ard Biesheuvel
@ 2019-05-30  9:24   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-05-30  9:24 UTC (permalink / raw)
  To: devel, ard.biesheuvel
  Cc: Laszlo Ersek, Gao, Liming, Wang, Jian J, Leif Lindholm,
	Michael D Kinney

Hi Ard,

On 5/27/19 10:51 PM, Ard Biesheuvel wrote:
> Clang 7 complains about the vmsr instruction in ArmV7Support.S,
> which is only available on cores that implement some flavour of
> VFP. So set the .fpu to NEON like we do in some other places.
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
> Note that the !clang alternative does not assembler for Clang-7 either
> so this is probably the most straightforward approach.
> 
>  ArmPkg/Library/ArmLib/Arm/ArmV7Support.S | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S b/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
> index 16c56f72e973..b5a6b9ea487d 100644
> --- a/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
> +++ b/ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
> @@ -262,6 +262,7 @@ ASM_FUNC(ArmEnableVFP)
>  #ifndef __clang__
>    mcr     p10,#0x7,r0,c8,c0,#0
>  #else
> +  .fpu    neon

If possible, can you add a short '@ reason why ...' comment on the same
line, previous to push this?

Regardless:
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>

>    vmsr    fpexc, r0
>  #endif
>    bx      lr
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2019-05-30  9:24 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-27 20:51 [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
2019-05-27 20:51 ` [PATCH v2 1/7] ArmPkg: import latest version (3e) of the Berkeley Softfloat library Ard Biesheuvel
2019-05-27 20:51 ` [PATCH v2 2/7] ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library Ard Biesheuvel
2019-05-27 20:51 ` [PATCH v2 3/7] ArmPkg/ArmSoftFloatLib: remove source files that are no longer used Ard Biesheuvel
2019-05-27 20:51 ` [PATCH v2 4/7] ArmPkg/ArmSoftFloatLib: remove new source files that are not used Ard Biesheuvel
2019-05-27 20:51 ` [PATCH v2 5/7] ArmPkg/ArmSoftFloatLib: add SPDX identifiers Ard Biesheuvel
2019-05-28 11:27   ` Laszlo Ersek
2019-05-28 11:28     ` Ard Biesheuvel
2019-05-28 12:22       ` Leif Lindholm
2019-05-27 20:51 ` [PATCH v2 6/7] BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard Ard Biesheuvel
2019-05-28  0:17   ` Liming Gao
2019-05-28  6:10     ` [edk2-devel] " Ard Biesheuvel
2019-05-28  7:37       ` Wang, Jian J
2019-05-28  8:25       ` Leif Lindholm
2019-05-27 20:51 ` [PATCH v2 7/7] ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S Ard Biesheuvel
2019-05-30  9:24   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-05-28  6:35 ` [PATCH v2 0/7] update ArmSoftFloatLib to latest upstream version Ard Biesheuvel
2019-05-28 11:21 ` Laszlo Ersek
2019-05-28 11:29 ` Laszlo Ersek
2019-05-28 11:39 ` Laszlo Ersek
2019-05-28 13:56   ` Ard Biesheuvel
2019-05-28 16:57   ` [edk2-devel] " Michael D Kinney
2019-05-28 15:40 ` Leif Lindholm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox