|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0120 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 0120.
Report 0120 Actions
Problem Report Number 0120 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0120 Raised 1993-11-15 08:00 Updated 2003-03-13 08:00 Published 1993-11-19 08:00 Product Standard Internationalised System Calls and Libraries (XPG4) Certification Program The Open Brand certification program Test Suite VSX4 version 4.2.4 Test Identification XOPEN.os/maths/y0andXPG4.hdr/misc/float/ Linked Problem Reports PG3.590, (in, old, system) Problem Summary TSD4.120 Each of these tests has the following in common: The mlmachar() function has previously set the signal action for the SIGFPE signal to SIG_IGN. A floating point exception occurs, which generates a SIG... Problem Text
Each of these tests has the following in common: The mlmachar()
function has previously set the signal action for the SIGFPE signal
to SIG_IGN. A floating point exception occurs, which generates a
SIGFPE signal. Since the action for SIGFPE is SIG_IGN, the process
ignores the signal. After the signal is ignored, our implementation
forces a SIGFPE signal to be delivered.
XSH4 page 378 states: "The behaviour of a process is undefined after
it ignores a SIGFPE, SIGILL, or SIGSEGV signal that was not generated
by the kill() function or the raise() function." XPG4 does not
specify what happens after a process ignores a SIGFPE signal which
was generated by a floating point exception. VSX assumes nothing
will happen and the test will continue on its way. However, our
implementation chose to force delivery of a SIGFPE signal, and XPG4
allows this. By the way, our implementation does not force delivery
of a SIGFPE signal when the SIGFPE was generated by a call to kill()
or raise().
When the signal action for the SIGFPE signal is changed from SIG_IGN
to a pointer to a signal catching function, the floating point
exception causes the signal catching function to be executed, and the
test continues as expected by VSX. Most applications will not ignore
a floating point exception because any resulting calculations are not
reliable. It is better to catch the floating point exception, and
take appropriate action.
The VSX code is not portable because it depends on undefined behavior.
For this reason, either a permanent waiver or permission to alter VSX
is requested. Here are the suggested changes to the file
SRC/INC/FPCOMP.h:
1. Define a do-nothing signal catching function.
2. Change the signal action for the SIGFPE signal from SIG_IGN to
the address of the new signal catching function.
Here is the diff output between the original file and the file with
my changes:
148a149,155
> static void
> ignore_fpe(sig)
> int sig;
> {
> return;
> }
>
177c184
< new.sa_handler = SIG_IGN;
---
> new.sa_handler = ignore_fpe;
With these changes, the above tests compile and run successfully on
our implementation. By the way, XPG3 waiver PG3.590 was granted to
us for this same problem.Test Output
/tset/XOPEN.os/maths/y0/T.y0 10 Unresolved
Test Description:
When the result would overflow (due to the argument being too small),
y1() returns either -HUGE_VAL or zero, and may set errno to ERANGE.
This test is not executed in XPG3 mode.
Test Information:
child process was terminated by signal 8 (SIGFPE)
************************************************************************
/tset/XOPEN.os/maths/y0/T.y0 11 Unresolved
Test Description:
When the result would overflow (due to the argument being too small),
yn() returns either -HUGE_VAL or zero, and may set errno to ERANGE.
This test is not executed in XPG3 mode.
Test Information:
child process was terminated by signal 8 (SIGFPE)
************************************************************************
/tset/XPG4.hdr/misc/float/T.float 4 Unresolved
Test Description:
When the values for the following symbolic names can be determined
arithmetically, then the symbolic names evaluate to the same value:
FLT_DIG, DBL_DIG, LDBL_DIG, FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP,
FLT_MIN_10_EXP, DBL_MIN_10_EXP, LDBL_MIN_10_EXP, FLT_MAX_EXP,
DBL_MAX_EXP, LDBL_MAX_EXP, FLT_MAX_10_EXP, DBL_MAX_10_EXP,
LDBL_MAX_10_EXP, FLT_MAX, DBL_MAX, LDBL_MAX, FLT_EPSILON, DBL_EPSILON,
LDBL_EPSILON, FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG, FLT_MIN,
DBL_MIN, LDBL_MIN and FLT_RADIX.
Test Information:
child process was terminated by signal 8 (SIGFPE)
Feature test macros: -D_XOPEN_SOURCE
Test returned unexpected exit code -1
child process was terminated by signal 8 (SIGFPE)
Feature test macros: -D_XOPEN_SOURCE -D_POSIX_SOURCE
Test returned unexpected exit code -1
child process was terminated by signal 8 (SIGFPE)
Feature test macros: -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=1
Test returned unexpected exit code -1
child process was terminated by signal 8 (SIGFPE)
Feature test macros: -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=2
Test returned unexpected exit code -1
child process was terminated by signal 8 (SIGFPE)
Feature test macros: -D_XOPEN_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=1
Test returned unexpected exit code -1
child process was terminated by signal 8 (SIGFPE)
Feature test macros: -D_XOPEN_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=2
Test returned unexpected exit code -1Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
The requested interpretation for XOPEN.os/maths/y0 test11 is covered by
TSD4.070.
The requested interpretation for XPG4.hdr/misc/float test4 is accepted as
a test suite deficiency.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
Please refer to TSD4.070 for XOPEN.os/maths/y0 11.
The request for XPG4.hdr/misc/float 4 is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 0120
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority