GSoC 2019: POSIX Compliance - FENV Environment probably not working properly in RISCV

Joel Sherrill joel at rtems.org
Tue Aug 13 22:34:27 UTC 2019


On Tue, Aug 13, 2019 at 5:09 PM Vaibhav Gupta <vaibhavgupta40 at gmail.com>
wrote:

>
>
> On Mon, Aug 12, 2019 at 11:50 PM Joel Sherrill <joel at rtems.org> wrote:
>
>> Can you post or email me privately the full patch? I can try to see what
>> I spot.
>>
> I have sent you the patch.
>
>>
>> Can you check with objdump or gdb that the methods which don't appear to
>> work
>> are actually the RISC-V implementation? Look at the disassembly and see
>> if it
>> looks like you expect.
>>
> I am exploring for this.
>

Since I don't know how to attach gdb to the new sis for griscv, I emailed
Jiri privately.
Your program works as expected on Linux. Perhaps Jiri has some advice for my
debugging setup ignorance and fenv on RISC-V.

Do you happen to have fenv support for another architecture queued up? It
would be
interesting to see if it works on other targets.

--joel


>
> - Vaibhav Gupta
>
>>
>> Does this require a patch to newlib as well?
>>
>> --joel
>>
>> On Sun, Aug 11, 2019 at 10:49 AM Vaibhav Gupta <vaibhavgupta40 at gmail.com>
>> wrote:
>>
>>> Configure command I used to build BSP:
>>> ==============================================
>>> $ /home/varodek/development/rtems/kernel/rtems/configure
>>> --prefix=/home/varodek/development/rtems/5 --enable-maintainer-mode
>>> --target=riscv-rtems5 --enable-rtemsbsp=rv32imac --enable-tests
>>> --enable-posix --disable-networking --enable-cxx RISCV_ENABLE_HTIF_SUPPORT=1
>>> ==============================================
>>> .
>>> .
>>> .
>>> .
>>> Qemu command I used to run test:
>>> ==============================================
>>> $ qemu-system-riscv32 -no-reboot -nographic -machine virt -m 256M
>>> -kernel psxfenv01.exe
>>> ==============================================
>>> .
>>> .
>>> .
>>> .
>>> Makefile.am
>>> ==============================================
>>> + if TEST_psxfenv01
>>> + psx_tests += psxfenv01
>>> + psxfenv01_SOURCES = psxfenv01/init.c
>>> + psxfenv01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxfenv01) \
>>> +       $(support_includes)
>>> + psxfenv01_LDADD = -lm $(LDADD)
>>> + endif
>>> +
>>> ==============================================
>>>
>>> On Sun, Aug 11, 2019 at 8:36 PM Vaibhav Gupta <vaibhavgupta40 at gmail.com>
>>> wrote:
>>>
>>>> My code of testsuite:
>>>> ===============================================
>>>>   /* Test 'FE_DIVBYZERO' */
>>>>   puts( "\nDivide by zero and confirm fetestexcept()." );
>>>>   a = 0.0;
>>>>   b = 1.0;
>>>>   c = b/a;
>>>>   printf("\n%d",FE_DIVBYZERO);
>>>>   fegetexceptflag(&excepts,FE_ALL_EXCEPT);
>>>>   printf("\n%d",excepts);
>>>>   r = feraiseexcept(FE_DIVBYZERO);
>>>>   printf("\n%d\n",r);
>>>>   rtems_test_assert( fetestexcept( FE_DIVBYZERO ) );
>>>> ==============================================
>>>> OUTPUT
>>>> ==============================================
>>>> Divide by zero and confirm fetestexcept().
>>>>
>>>> 8
>>>> 0
>>>> 1
>>>> /home/varodek/development/rtems/kernel/rtems/c/src/../../testsuites/psxtests/psxfenv01/init.c:
>>>> 84 fetestexcept( FE_DIVBYZERO )
>>>> ==============================================
>>>> EXPECTED OUTPUT
>>>> ==============================================
>>>> Divide by zero and confirm fetestexcept().
>>>>
>>>> 8
>>>> 8
>>>> 0
>>>> ==============================================
>>>> - fetestexcept( FE_DIVBYZERO ), should return a non-zero value as
>>>> division-by-zero was performed.
>>>> .
>>>> - feraiseexcept(FE_DIVBYZERO); is also not working. It should return
>>>> zero when successful
>>>> .
>>>> ==============================================
>>>>
>>>> Thank You
>>>> Vaibhav Gupta
>>>>
>>>> _______________________________________________
>>> 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/20190813/5ce96386/attachment-0001.html>


More information about the devel mailing list