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

Joel Sherrill joel at rtems.org
Mon Aug 12 18:20:44 UTC 2019


Can you post or email me privately the full patch? I can try to see what I
spot.

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.

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/20190812/4f95b1e0/attachment.html>


More information about the devel mailing list