[PATCH] Remove multiple defination error

Sebastian Huber sebastian.huber@embedded-brains.de
Mon Jul 13 05:48:40 GMT 2020


On 13/07/2020 07:36, Sebastian Huber wrote:
> On 11/07/2020 19:18, Eshan Dhawan wrote:
>>
>>
>> On Sat, Jul 11, 2020 at 8:46 PM Sebastian Huber 
>> <sebastian.huber@embedded-brains.de 
>> <mailto:sebastian.huber@embedded-brains.de>> wrote:
>>
>>     On 11/07/2020 00:41, Eshan dhawan wrote:
>>
>>      > Signed-off-by: Eshan dhawan<eshandhawan51@gmail.com
>>     <mailto:eshandhawan51@gmail.com>>
>>      > ---
>>      >   newlib/libm/machine/arm/fenv-vfp.c |  7 ++++-
>>      >   newlib/libm/machine/arm/fenv.c     | 47
>>     +++++++++++++++++++-----------
>>      >   2 files changed, 36 insertions(+), 18 deletions(-)
>>
>>     What are the design goals of this implementation? Should it work with
>>     some sort of run time VFP detection? Should it select the support 
>> using
>>     builtin defines?
>>
>> It used the GCC flags to detect VPF
>> if VPF is not selected all the symbols of vfp won't appear :)
>>
>>
>>     I would use builtin defines only and then just use a single file.
>>
>> I tried converting into a single file but the file becomes too complex 
>> to handle and check for errors. :)
> 
> Complexity is always a bit subjective.
> 
> How did you test the ARM implementation? I doubt the soft-float support 
> works at all. FreeBSD ships its own soft-float library. Newlib uses the 
> one from libgcc by default. They are not compatible.
> 
> I guess the MIPS soft-float fenv support has this issue as well.
> 
> Having an GCC incompatible soft-float fenv support in Newlib makes no 
> sense to me. How can we fix this? Disable it completely or return some 
> run time errors?
> 
> Maybe we should remove the ARM fenv support from Newlib until these 
> issues are fixed and a working implementation is available.

I noticed that the PowerPC fenv support unconditionally assumes that a 
floating-point unit is available. Not all PowerPC processors support a 
floating-point unit and some applications may intentionally use 
soft-float. Using this code may result in an unimplemented exception if 
MSR[FP]=1, or an FP Unavailable exception if MSR[FP]=0.

If this is a desirable behaviour, then we can use the same on ARM. Just 
provide the VFP implementation. If you use the stuff in other setups you 
get an exception.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


More information about the Newlib mailing list