[Info-vax] gnulib test-fmal-ieee failure help needed.

John E. Malmberg wb8tyw at qsl.net_work
Sun Jul 23 17:51:47 EDT 2017


On 7/22/2017 11:01 PM, John E. Malmberg wrote:
> On 7/22/2017 10:52 PM, John E. Malmberg wrote:
>> On 7/22/2017 10:09 PM, Craig A. Berry wrote:
>>> On 7/22/17 8:54 PM, John E. Malmberg wrote:
>>>> The gnulib test-fmal-ieee is failing for the gnulib provided fmal 
>>>> routine.
>>>>
>>>> Actually a lot of the IEEE tests are failing.
>>>>
>>>> My compiler command line on OpenVMS 8.4 is:
>>>>
>>>> CC/STANDARD=(RELAXED)/ACCEPT=(NOVAXC,RESTR,C99)-
>>>>    /LIST/SHOW=(EXPAN,INCLU)/NAMES=(AS_IS,SHORT)-
>>>>    /MAIN=POSIX_EXIT-
>>>>    /FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS-
>>>>    /NESTED=NONE-
>>>>    /PREFIX=EXCEPT=(STRTOIMAX,STRTOUMAX,ISWBLANK,ISBLANK)-
>>>>    /WARN=(DISABLE=QUESTCOMPARE)-
>>>>    /DEBUG/NOOPTIMIZE/DEB=ALL/NOOPT-
>>>>    /DEF=-(HAVE_CONFIG_H,EXEEXT="",EXEEXT="",NO_XMALLOC,EXEEXT="",-
>>>>           GNULIB_STRICT_CHECKING=1,_POSIX_EXIT,_USE_STD_STAT,-
>>>>        _  _USE_STD_IOSTREAM)-
>>>>     /INC=(./,../)/OBJECT=SYS$DISK:[]fmal.o SYS$DISK:[]fmal.c
>>>>
>>>> The floating variables involved are declared double.
>>>>
>>>> The input to the failed call is:
>>>>
>>>>   fmal(Infinity, 2.0L, -Infinity) and the result is expected to be NaN.
>>>>
>>>> Is there some other compile settings that I should be using to be 
>>>> more compatible with GNULIB's expectations for IEEE math?
>>>
>>> fmal is for long doubles, so passing doubles to it is unlikely to work.
>>> For example, you probably want LDBL_INFINITY instead of Infinity.
>>> Possibly related is that none of the IEEE test macros (isnan, isinf,
>>> etc.) in math.h on VMS works for floats or long doubles -- they only
>>> work for doubles. Which is a bug. We have some workarounds in Perl for
>>> some of it.
>>
>> Your right, the gnulib fmal code is long doubles, not doubles.
>>
>> VMS has a number of the declarations that should be in math.h in fp.h.
>>
>> In this case INFINITY is defined as decc$gt_gbl_infinity by fp.h and 
>> is reported as Infinity in the VMS debugger.
> 
> The test-fmal1 fails in the same way as test-fmal-ieee.
> 
> The test-malm2 fails when fma returns what the debugger says is Infinity 
> and the test was expecting "-Infinity".
> 
> DBG> eval result
> Infinity
> DBG> eval -result
> -Infinity

Latest failure:

ASSERT (ILOGB (L_(0.0)) == FP_ILOGB0)
ILOG_B is ilogb()
FP_ILOGB0 is - 2147483647
L_(0.0) is 0.0L

> These results are showing up while am running the failed tests in debug 
> to get more information.  So as soon as I exit one failed test, the 
> script moves on to the next.  I am not sure how many more tests are 
> going to run in this pass.

And to clarify, this is on HPE OpenVMS 8.4 on Itanium.

Regards,
   -John
   wb8tyw at qsl.net_work




More information about the Info-vax mailing list