Sources to port fenv.h to ARM and AARCH64

Eshan Dhawan eshandhawan51 at gmail.com
Sat Mar 21 04:59:28 UTC 2020


I went through the FreeBSD and NetBSD sources for implementation
In FreeBSD there is an architecture-specific implementation with different
header file for each architecture it supports .
Whereas in NetBSD there is a single fenv.h defined but each architecture
has its own C file to implement the functions.
Also FreeBSD has soft-float for ARM
So, I think FreeBSD would be a better option.

On Sat, Mar 21, 2020 at 2:37 AM Joel Sherrill <joel at rtems.org> wrote:

>
>
> On Fri, Mar 20, 2020 at 3:33 PM Eshan Dhawan <eshandhawan51 at gmail.com>
> wrote:
>
>> thanks, dr Joel
>>
>> I had gone through the musl-libc library but it doesn't have much
>> architecture specific support for ARM as well as AARCH64
>> It has support for s390x, m68k, powerpc64
>>
>
> This type of evaluation is important.  The architecture may be supported
> in only one implementation or one may be more complete than another.
>
> Ignoring the license requirements of course.
>
>>
>>
>> On Sat, Mar 21, 2020 at 1:32 AM Joel Sherrill <joel at rtems.org> wrote:
>>
>>>
>>>
>>> On Fri, Mar 20, 2020 at 2:43 PM Eshan Dhawan <eshandhawan51 at gmail.com>
>>> wrote:
>>>
>>>> What would be the preferred source to port fenv.h to ARM and AARCH64
>>>> its implementation is present in both FreeBSD as well AS NetBSD
>>>> -> ARM
>>>> ---FreeBSD Source
>>>> # https://github.com/freebsd/freebsd/tree/master/lib/msun/arm
>>>> ---NetBSD Source
>>>> # https://github.com/NetBSD/src/tree/trunk/lib/libm/arch/arm
>>>>
>>>> ->AARCH64
>>>> ---FreeBSD Source
>>>> # https://github.com/freebsd/freebsd/tree/master/lib/msun/aarch64
>>>> ---NetBSD Source
>>>> # https://github.com/NetBSD/src/tree/trunk/lib/libm/arch/aarch64
>>>>
>>>
>>> Don't forget MUSL-C Library which has a lot of architectures and
>>> is appropriately licensed.
>>>
>>> https://git.musl-libc.org/cgit/musl/tree/src/fenv
>>>
>>> I think our the order is going to be FreeBSD, NetBSD, then other places.
>>>
>>> The code drops into newlib's libm in a particular way which may require
>>> some refactoring. fenv.h is shared across all ports and machine/fenv.h is
>>> where port code goes. There must be an architecture specific file for
>>> each
>>> method. But the entire implementation could go in one file and the others
>>> be stubs. The i386 does this.
>>>
>>> --joel
>>>
>>>>
>>>>
>>>> <https://github.com/NetBSD/src/tree/trunk/lib/libm/arch/aarch64>
>>>>
>>>> Thanks
>>>> -Eshan
>>>> _______________________________________________
>>>> devel mailing list
>>>> devel at rtems.org
>>>> http://lists.rtems.org/mailman/listinfo/devel
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200321/6e41a157/attachment.html>


More information about the devel mailing list