[edk2-devel] [PATCH v3 2/7] ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library

Ard Biesheuvel ard.biesheuvel at linaro.org
Fri May 31 13:22:25 UTC 2019


On Fri, 31 May 2019 at 15:20, Leif Lindholm <leif.lindholm at linaro.org> wrote:
>
> On Fri, May 31, 2019 at 02:49:53PM +0200, Ard Biesheuvel wrote:
> > diff --git a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
> > index cbb49f49ade6..4d0c94df83db 100644
> > --- a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
> > +++ b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
> > @@ -2,7 +2,7 @@
> >  #  ARM Software floating point Library.
> >  #
> >  #  Copyright (c) 2014, ARM Ltd. All rights reserved.
> > -#  Copyright (c) 2015, Linaro Ltd. All rights reserved.
> > +#  Copyright (c) 2015 - 2019, Linaro Ltd. All rights reserved.
> >  #
> >  #  SPDX-License-Identifier: BSD-2-Clause-Patent
> >  #
> > @@ -10,7 +10,7 @@
> >  ##
> >
> >  [Defines]
> > -  INF_VERSION                    = 0x00010005
> > +  INF_VERSION                    = 0x0001001B
> >    BASE_NAME                      = ArmSoftFloatLib
> >    FILE_GUID                      = a485f921-749e-41a0-9f91-62f09a38721c
> >    MODULE_TYPE                    = BASE
> > @@ -22,26 +22,71 @@
> >  #
> >
> >  [Sources]
> > -  bits32/softfloat.c
> > -  Arm/__aeabi_dcmpeq.c
> > -  Arm/__aeabi_fcmpeq.c
> > -  Arm/__aeabi_dcmpge.c
> > -  Arm/__aeabi_fcmpge.c
> > -  Arm/__aeabi_dcmpgt.c
> > -  Arm/__aeabi_fcmpgt.c
> > -  Arm/__aeabi_dcmple.c
> > -  Arm/__aeabi_fcmple.c
> > -  Arm/__aeabi_dcmplt.c
> > -  Arm/__aeabi_fcmplt.c
> > -  Arm/__aeabi_dcmpun.c
> > -  Arm/__aeabi_fcmpun.c
> > +  berkeley-softfloat-3/source/ARM-VFPv2/s_propagateNaNF64UI.c
> > +  berkeley-softfloat-3/source/ARM-VFPv2/softfloat_raiseFlags.c
> > +  berkeley-softfloat-3/source/ARM-VFPv2/specialize.h
> > +  berkeley-softfloat-3/source/f32_add.c
> > +  berkeley-softfloat-3/source/f32_div.c
> > +  berkeley-softfloat-3/source/f32_eq.c
> > +  berkeley-softfloat-3/source/f32_le.c
> > +  berkeley-softfloat-3/source/f32_lt.c
> > +  berkeley-softfloat-3/source/f32_mul.c
> > +  berkeley-softfloat-3/source/f32_sub.c
> > +  berkeley-softfloat-3/source/f32_to_f64.c
> > +  berkeley-softfloat-3/source/f32_to_i32_r_minMag.c
> > +  berkeley-softfloat-3/source/f32_to_i64_r_minMag.c
> > +  berkeley-softfloat-3/source/f32_to_ui32_r_minMag.c
> > +  berkeley-softfloat-3/source/f32_to_ui64_r_minMag.c
> > +  berkeley-softfloat-3/source/f64_add.c
> > +  berkeley-softfloat-3/source/f64_div.c
> > +  berkeley-softfloat-3/source/f64_eq.c
> > +  berkeley-softfloat-3/source/f64_le.c
> > +  berkeley-softfloat-3/source/f64_lt.c
> > +  berkeley-softfloat-3/source/f64_mul.c
> > +  berkeley-softfloat-3/source/f64_sub.c
> > +  berkeley-softfloat-3/source/f64_to_f32.c
> > +  berkeley-softfloat-3/source/f64_to_i32_r_minMag.c
> > +  berkeley-softfloat-3/source/f64_to_i64_r_minMag.c
> > +  berkeley-softfloat-3/source/f64_to_ui32_r_minMag.c
> > +  berkeley-softfloat-3/source/f64_to_ui64_r_minMag.c
> > +  berkeley-softfloat-3/source/i32_to_f32.c
> > +  berkeley-softfloat-3/source/i32_to_f64.c
> > +  berkeley-softfloat-3/source/i64_to_f32.c
> > +  berkeley-softfloat-3/source/i64_to_f64.c
> > +  berkeley-softfloat-3/source/include/internals.h
> > +  berkeley-softfloat-3/source/include/opts-GCC.h
> > +  berkeley-softfloat-3/source/include/primitiveTypes.h
> > +  berkeley-softfloat-3/source/include/primitives.h
> > +  berkeley-softfloat-3/source/include/softfloat.h
> > +  berkeley-softfloat-3/source/include/softfloat_types.h
> > +  berkeley-softfloat-3/source/s_addMagsF32.c
> > +  berkeley-softfloat-3/source/s_addMagsF64.c
> > +  berkeley-softfloat-3/source/s_countLeadingZeros32.c
> > +  berkeley-softfloat-3/source/s_countLeadingZeros64.c
> > +  berkeley-softfloat-3/source/s_countLeadingZeros8.c
> > +  berkeley-softfloat-3/source/s_mul64To128.c
> > +  berkeley-softfloat-3/source/s_normRoundPackToF32.c
> > +  berkeley-softfloat-3/source/s_normRoundPackToF64.c
> > +  berkeley-softfloat-3/source/s_normSubnormalF32Sig.c
> > +  berkeley-softfloat-3/source/s_normSubnormalF64Sig.c
> > +  berkeley-softfloat-3/source/s_roundPackToF32.c
> > +  berkeley-softfloat-3/source/s_roundPackToF64.c
> > +  berkeley-softfloat-3/source/s_shiftRightJam32.c
> > +  berkeley-softfloat-3/source/s_shiftRightJam64.c
> > +  berkeley-softfloat-3/source/s_shortShiftRightJam64.c
> > +  berkeley-softfloat-3/source/s_subMagsF32.c
> > +  berkeley-softfloat-3/source/s_subMagsF64.c
> > +  berkeley-softfloat-3/source/softfloat_state.c
> > +  berkeley-softfloat-3/source/ui32_to_f32.c
> > +  berkeley-softfloat-3/source/ui32_to_f64.c
> > +  berkeley-softfloat-3/source/ui64_to_f32.c
> > +  berkeley-softfloat-3/source/ui64_to_f64.c
> >
> > -  Arm/__aeabi_cdcmp.asm   | RVCT
> > -  Arm/__aeabi_cfcmp.asm   | RVCT
> > +  ArmSoftFloatLib.c
> > +  platform.h
> >
> >  [Packages]
> >    MdePkg/MdePkg.dec
> >
> >  [BuildOptions]
> > -  GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-lto
> > -  RVCT:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC
>
> It doesn't need to be a separate patch, but could you add a note to
> commit message about dropping RVCT support?
>
> > +  GCC:*_*_*_CC_FLAGS = -fno-lto -ffreestanding -Wno-unused-label
>
> Hmm. You add -ffreestanding here, but you also add it to the CLANG
> profiles in 4/7. Could we do one of:
> - dropping this one, adding -ffreestanding to GCC profiles too in 4/7
> - keeping this one, dropping the -ffreestanding from 4/7?
>

In my opinion, we should be using -ffreestanding for all GCC family
toolchains for all architectures.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#41745): https://edk2.groups.io/g/devel/message/41745
Mute This Topic: https://groups.io/mt/31879989/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list