Austin Group Editors Notes arising from SD/5 Austin-280r1 Page 1 of 1 Submitted by Andrew Josey, The Open Group. May 12, 2006 This document is informative and for editors use only. Note that text may be edited further. Last Updated May 12 2006 (correction applied June 23 2006 to SD5 XSH ERN 4) First pass now completed on XSH/XCU/XBD up to May 2nd 2006 Note where a bug has raised issues on the reflector it will not be in this file. Changes for the revision: ---------------------------------------------------- Note to editor, when applying the change unless a specific change history is separately recorded, we need to record a reference, for example: SD5 XSH ERN 113 is applied, updating the APPLICATION USAGE. ------------------------------------------------- SD5 XSH ERN 113 (19 Jun 2003) SD5 XSH ERN 42 (14 Jun 2004) sighold et al: mark the synopsis OB (obsolescent) Add to the 2nd para of APP USAGE The sigprocmask or pthread_sigmask functions should be used in preference over sighold and sigrelse for broader portability Add to RATIONALE: Each of these historic functions has a direct analog in the other functions which are required to be per-thread and thread-safe (aside from sigprocmask, which is replaced by pthread_sigmask). sigset is a simple wrapper for sigaction. sighold is sigprocmask/pthread_sigmask with SIG_BLOCK. sigignore is sigaction with SIG_IGN. sigpause is sigsuspend. sigrelse is sigprocmask/pthread_sigmask with SIG_UNBLOCK. Change history SD5 XSH ERN 113/42 are applied, marking the functions as obsolescent and updating the APPLICATION USAGE and RATIONALE. ---------------------------------------------------- SD5 XBD ERN 4 (4 Nov 2003) The enumeration to go along with option 1 is that in general EMFILE error descriptions change from {OPEN_MAX} file descriptors are currently open in the calling process. to: All file descriptors available to the process are currently open CH: The [EMFILE] ERROR text is rewritten .... ---------------------------------------------------- SD5 XSH ERN 30 (23 Dec 2003) Change from "The environment of the executed command shall be as if a child process were created using fork(), and the child process invoked the sh utility using execl() as follows:" To: "The system() function shall behave as if a child process were created using fork(), and the child process invoked the sh utility using execl() as follows:" and then add "It is unspecified whether the handlers registered with pthread_atfork() are called as part of the creation of the child process" after that (after 45853). Add to APPLICATION USAGE "Using the system() function in more than one thread in a process or when the SIGCHLD signal is being manipulated by more than one thread in a process may produce unexpected results." Also see xshbug2.txt ERN 125 ---------------------------------------------------- SD5 XSH ERN 39 (10 May 2004) page 1096 Add to DESCRIPTION after line 34692 If pthread_mutex_setprioceiling( ) is called while holding the mutex the result is undefined, unless the mutex is of type PTHREAD_MUTEX_RECURSIVE. ---------------------------------------------------- Arising from the LSB Conflicts TR Add to unlink RATIONALE The standard developers reviewed DTR 24715-200x and note that LSB conforming implementations may return EISDIR instead of EPERM when unlinking a directory. A change to permit this behavior by changing the requirement for EPERM to EPERM or EISIDR was considered but decided against since it would break existing strictly conforming and conforming applications. Applications written for portability to both this standard and the LSB should be prepared to handle either error code. ---------------------------------------------------- SD5 XSH ERN 2 (18 Sep 2003) XSH page 16 line 606 should be changed from: h_, n_, p_, s_ to ai_, h_, n_, p_, s_ ---------------------------------------------------- SD5 XSH ERN 9 (26 Sep 2003) XSH page 448, fscanf DESCRIPTION fscanf() is listed twice on line 14798 which starts: "The st_atime field shall be marked for update by the first successful execution of.." the second fscanf should be scanf ---------------------------------------------------- SD5 XSH ERN 22 (6 Nov 2003) XSH page 796 mprotect APPLICATION USAGE Delete the APPLICATION USAGE text since it erroneously refers to an EINVAL error being marked EX. Delete "The [EINVAL] error above is marked EX because it is defined as an optional error in the POSIX Realtime Extension." ---------------------------------------------------- SD5 XSH ERN 23 (Nov 28 2003) On XSH Page 33 ,in section 2.4.3 in the table of functions sleep() on line 1365 should be in alphabetic order after sigsuspend. ---------------------------------------------------- SD5 XSH ERN 25 (12 Dec 2003) In XSH ctime Add to APPLICATION USAGE Attempts to use ctime(), or ctime_r() for times before the Epoch or for times beyond the year 9999 produce undefined results. Refer to asctime(). ---------------------------------------------------- SD5 XSH ERN 29 (1 Jan 2004) In XSH page 1445 strfmon EXAMPLES Update the two examples for %(#5n and %!(#5n to be %(#5n [ $ 123.45 ] Use an alternative pos/neg style [($ 123.45)] [ $ 3,456.78 ] %!(#5n [ 123.45 ] Disable the currency symbol [( 123.45)] [ 3,456.78 ] ---------------------------------------------------- SD5 XSH ERN 36 (12 Apr 2004) Page: 29 Line: 1189 Section: 2.4.2 Change from: void(*)(unsigned sigval) sigev_notify_function Notification function. To: void(*)(union sigval) sigev_notify_function Notification function. (The parameter type was incorrect) ---------------------------------------------------- SD5 XSH ERN 38 (12 Apr 2004) In XSH page 800 mq_notify Line 26273: add or mq_timedreceive() after mq_receive() and add TMO shading to the new text. Line 26274: add or mq_timedreceive() respectively after mq_receive() and add TMO shading. ---------------------------------------------------- SD5 XSH ERN 43 (25 Jun 2004) In XSH pthread_mutex_lock line 37494 (first EINVAL error) page 1100 Mark the whole of the first [EINVAL] error as dependant on the TPP option. (this is the shall fail case) ---------------------------------------------------- SD5 XSH ERN 44 (25 Jun 2004) IN XSH pthread_cond_timedwait , page 1051 For the error EINVAL, line 33330 change: "The value specified by abstime is invalid." with: "The abstime argument specified a nanosecond value less than zero or greater than or equal to 1000 million." ---------------------------------------------------- SD5 XSH ERN 51 (9 Aug 2004) Page: 887 Line: 28902 Section: posix_openpt Change line 28902 from slavefd = open(slave, O_RDWR|O_NOCTTY); to slavefd = open(slavedevice, O_RDWR|O_NOCTTY); ---------------------------------------------------- SD5 XSH ERN 54 (29 Aug 2004) Page: 1279 Line: 40074 Section: sem_trywait() Replace line 40074 with The sem_trywait() function shall fail if: Remove the following text from line 40076 "(sem_trywait() only)" ---------------------------------------------------- SD5 XSH ERN 56 (30 Aug 2004) Page: 1644 Line: 51083 Section: wcstol Change "These functions shall convert the initial portion of the wide-character string pointed to by nptr to long, long long, unsigned long, and unsigned long long representation, respectively." to "These functions shall convert the initial portion of the wide-character string pointed to by nptr to long, and long long respectively." ---------------------------------------------------- SD5 XSH ERN 59 (23 Sep 2004) GLOBAL CHANGE For Page: 123 Line: 4514-4515 Section: asctime, and similar occurrences of the following text: Change from: The asctime() function need not be reentrant. A function that is not required to be reentrant is not required to be thread-safe. To: The asctime() function need not be thread-safe. A function that is not required to be thread-safe is not required to be reentrant. Make an equivalent change on all the other pages in XSH that have a similar statement. ---------------------------------------------------- SD5 XSH ERN 61 (7 Oct 2004) Page: 146 Line: 5088 Section: atol/atoll Change atoll(str) in line 4953 to atoll(nptr). ---------------------------------------------------- SD5 XSH ERN 66 (9 Nov 2004) Page: 1010 Line: 32316 Section: pthread_attr_getstack Replace "addr" with "attr" in the following text on line 32316: The pthread_attr_getstack() function may fail if: [EINVAL] The value specified by *addr* does not refer to an initialized thread attribute object. ---------------------------------------------------- SD5 XSH ERN 67 (20 Jan 2005) In XSH p1463 strptime The following change to the APPLICATION USAGE for strptime page 1463 line 45613 should be made to remove the impression that %Y is four digit years: Applications should use %Y (year including century) in preference to %y (2-digit years). ---------------------------------------------------- SD5 XSH ERN 69 (24 Feb 2005) Page: 387 Section: fma After line 12499 add a new paragraph: If the result overflows or underflows, a range error may occur. [MX] On systems that support the MX option, if the result overflows a range error shall occur.[/MX] Remove the MX shading from lines 12527-12531 (the "may fail" underflow range error), and add an unshaded overflow range error to the "may fail" block. Add to CH . ISO C TC2 #57 adds a "may" range error for non-MX systems ---------------------------------------------------- SD5 XSH ERN 70 (24 Feb 2005) Page: 416 Line: 13588 Section: fprintf Add to CH. ISO C TC2 #68 is applied. Action: Change from: g, G The double argument shall be converted in the style f or e (or in the style F or E in the case of a G conversion specifier), with the precision specifying the number of significant digits. If an explicit precision is zero, it shall be taken as 1. The style used depends on the value converted; style e (or E ) shall be used only if the exponent resulting from such a conversion is less than -4 or greater than or equal to the precision. Trailing zeros shall be removed from the fractional portion of the result; a radix character shall appear only if it is followed by a digit or a '#' flag is present. To: g, G The double argument representing a floating-point number shall be converted in the style f or e (or in the style F or E in the case of a G conversion specifier), depending on the value converted and the precision. Let P equal the precision if non-zero, 6 if the precision is omitted, or 1 if the precision is zero. Then, if a conversion with style E would have an exponent of X: - if P > X >= -4, the conversion shall be with style f (or F) and precision P - (X+1) . - otherwise, the conversion shall be with style e (or E) and precision P - 1 . Finally, unless the # flag is used, any trailing zeros shall be removed from the fractional portion of the result and the decimal-point character shall be removed if there is no fractional portion remaining. _____________________________________________________________________________ SD5 XSH ERN 71 (24 Feb 2005) IN XSH ilogb p608 Add to CH ISO C TC2 #48 is applied. Replace line 20039 with: If x is 0, the value FP_ILOGB0 shall be returned. [XSI] On XSI-conformant systems a domain error shall occur,[/XSI] otherwise a [CX] domain [/CX] error may occur. Replace line 20040 with: If x is +/-Inf, the value INT_MAX shall be returned. [XSI] On XSI-conformant systems a domain error shall occur,[/XSI] otherwise a [CX] domain [/CX] error may occur. Replace line 20041 with: If x is a NaN, the value FP_ILOGBNAN shall be returned. [XSI] On XSI-conformant systems a domain error shall occur,[/XSI] otherwise a [CX] domain [/CX] error may occur. In the ERRORS section, add a "may fail" block, with an unshaded domain error for the "zero, NaN, or +/-Inf" cases. _____________________________________________________________________________ SD5 XSH ERN 72 (24 Feb 2005) IN XSH ilogb p608 Add to CH: ISO C TC2 #49 is applied. ISO C TC2 #79 is applied. Replace lines 20042-20045 with: If the correct value is greater than INT_MAX, [MX] a domain error shall occur and [/MX] an unspecified value shall be returned. [XSI] On XSI-conformant systems, a domain error shall occur and INT_MAX shall be returned.[/XSI] If the correct value is less than INT_MIN, [MX] a domain error shall occur and [/MX] an unspecified value shall be returned. [XSI] On XSI-conformant systems, a domain error shall occur and INT_MIN shall be returned.[/XSI] In the ERRORS section, the description of the "shall fail" domain error needs to be split in two, so that the "correct value not representable" part is shaded MX|XSI and the "zero, NaN, or ±Inf" part is shaded XSI. _____________________________________________________________________________ SD5 XSH ERN 75 (24 Feb 2005) Page: 705 Line: 23315-21 Section: llround Add to CH ISO C TC2 #54 is applied. Replace lines 23318-23321 with: If the correct value is positive and too large to represent as a long long, an unspecified value shall be returned. [MX] On systems that support the MX option, a domain error shall occur,[/MX] otherwise a [CX] domain [/CX] error may occur. If the correct value is negative and too large to represent as a long long, an unspecified value shall be returned. [MX] On systems that support the MX option, a domain error shall occur,[/MX] otherwise a [CX] domain [/CX] error may occur. In the ERRORS section add a "may fail" block with an unshaded domain error for the "correct value is not representable as an integer" case. e.g. These functions may fail: Domain error The correct value is not representable as an integer (stdtext for domain error) If the integer expression (math_errhandling & MATH_ERRNO) is non-zero, then errno shall be set to [EDOM]. If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then the invalid floating-point exception shall be raised. _____________________________________________________________________________ SD5 XSH ERN 76 (24 Feb 2005) Page: 726 Line: 24033 Section: logb Add to CH ISO C TC2 #50 is applied. Replace lines 24027-24028 with: If x is 0, logb(), logbf(), and logbl() shall return -HUGE_VAL, -HUGE_VALF, and -HUGE_VALL, respectively. [MX] On systems that support the MX option a pole error shall occur,[/MX] otherwise a [CX] pole [/CX] error may occur. In the ERRORS section add MX shading to the "shall fail" pole error, and add a "may fail" block with an unshaded pole error for the "x is 0" case. _____________________________________________________________________________ SD5 XSH ERN 77 (24 Feb 2005) page 732 lrint Add to CH ISO C TC2 #53 is applied Replace lines 24158-24161 with: If the correct value is positive and too large to represent as a long , an unspecified value shall be returned. [MX] On systems that support the MX option, a domain error shall occur,[/MX] otherwise a [CX] domain [/CX] error may occur. If the correct value is negative and too large to represent as a long , an unspecified value shall be returned. [MX] On systems that support the MX option, a domain error shall occur,[/MX] otherwise a [CX] domain [/CX] error may occur. In the ERRORS section add a "may fail" block with an unshaded domain error for the "correct value is not representable as an integer" case. _____________________________________________________________________________ SD5 XSH ERN 78 (24 Feb 2005) page 734 lround Add to CH ISO C TC2 #54 is applied Replace lines 24210-25213 with: If the correct value is positive and too large to represent as a long , an unspecified value shall be returned. [MX] On systems that support the MX option, a domain error shall occur,[/MX] otherwise a [CX] domain [/CX] error may occur. If the correct value is negative and too large to represent as a long , an unspecified value shall be returned. [MX] On systems that support the MX option, a domain error shall occur,[/MX] otherwise a [CX] domain [/CX] error may occur. In the ERRORS section add a "may fail" block with an unshaded domain error for the "correct value is not representable as an integer" case. _____________________________________________________________________________ SD5 XSH ERN 81 (24 Feb 2005) page 983 pow Add to CH ISO C TC2 #51 is applied Replace lines 31424-31427 with: For y < 0, if x is zero, a [CX] pole [/CX] error may occur and pow(), powf(), and powl() shall return +/-HUGE_VAL, +/-HUGE_VALF, and +/-HUGE_VALL, respectively. [MX] On systems that support the MX option a pole error shall occur and pow(), powf(), and powl() shall return +/-HUGE_VAL, +/-HUGE_VALF, and +/-HUGE_VALL, respectively if y is an odd integer, or HUGE_VAL, HUGE_VALF, and HUGE_VALL, respectively if y is not an odd integer.[/MX] (These lines could also be moved to after 31407 if desired.) In the ERRORS section add a "may fail" block with an unshaded pole error for the "x is zero and y is negative" case. _____________________________________________________________________________ SD5 XSH ERN 82 (24 Feb 2005) page 1225 remainder Add to CH ISO C TC2 #55 is applied Insert a new paragraph after line 38475: On systems that do not support the MX option, if y is zero it is implementation-defined whether a domain error occurs or zero is returned. In the ERRORS section add a "may fail" block with an unshaded domain error for the "y is zero" case. _____________________________________________________________________________ SD5 XSH ERN 83 (24 Feb 2005) page 1230 remquo Add to CH ISO C TC2 #56 is applied Insert a new paragraph after line 38584: On systems that do not support the MX option, if y is zero it is implementation-defined whether a domain error occurs or zero is returned. Append to line 38578: "If y is zero, the value stored in the object pointed to by quo is unspecified." In the ERRORS section add a "may fail" block with an unshaded domain error for the "y is zero" case. _____________________________________________________________________________ SD5 XSH ERN 85 (24 Feb 2005) page 1535 tgamma Add to CH ISO C TC2 #52 is applied Replace lines 47772-47773 with: If x is a negative integer, a [CX] domain [/CX] error may occur and either a NaN (if supported) or an implementation-defined value shall be returned. [MX] On systems that support the MX option a domain error shall occur and a NaN shall be returned.[/MX] If x is +/-0, tgamma(), tgammaf(), and tgammal() shall return +/-HUGE_VAL, +/-HUGE_VALF, and +/-HUGE_VALL, respectively. [MX] On systems that support the MX option a pole error shall occur,[/MX] otherwise a [CX] pole [/CX] error may occur. Delete lines 47779-47780. In the ERRORS section add a "may fail" block with an unshaded domain error for the "x is a negative integer" case and an unshaded pole error for the "x is zero" case. Extend the MX shading to the whole of the "shall fail" domain error. _____________________________________________________________________________ SD5 XSH ERN 93 (4 may 2005) XSH link page 694 THIS CHANGE CAN ONLY BE DONE IN D2 if linkat() is added at the same time. Append the following after XSH page 694 line 23017 (link() RATIONALE): Earlier versions of this standard specified only the link() function, and required it to behave like linkat() with the AT_SYMLINK_FOLLOW flag. However, historical practice from SVR4 and Linux kernels had link() behaving like linkat() with no flags, and many systems that attempted to provide a conforming link() function did so in a way that was rarely used, and when it was used did not conform to the standard (e.g., by not being atomic, or by dereferencing the symbolic link incorrectly). Since applications could not rely on link() following links in practice, the linkat() function was added taking a flag to specify the desired behavior for the application. _____________________________________________________________________________ SD5 XSH ERN 97 (19 may 2005) XSH 2.8.4 line 1981 Change P47 L1981 from: Execution time is defined in Section 2.2.2 (on page 14). To: Execution time is defined in POSIX Base Definitions, Chapter Definitions, Section 3.155 _____________________________________________________________________________ SD5 XSH ERN 100 (7 jun 2005) XSH isatty On line 21091 change: "The fildes argument is not associated with a terminal." to: "The file associated with the fildes argument is not a terminal." XSH ioctl On page 632 line 20922 section ioctl change: "The fildes argument is not associated with a STREAMS device that accepts control functions." to: "The file associated with the fildes argument is not a STREAMS device that accepts control functions." XSH sockatmark On page 1410 line 44047 section sockatmark change: "The s argument does not specify a descriptor for a socket." to: "The file associated with the s argument is not a socket." XSH ttyname On page 1565 line 48760 section ttyname change: "The fildes argument does not refer to a terminal." to: "The file associated with the fildes argument is not a terminal." On page 1565 line 48763 section ttyname change: "The fildes argument does not refer to a terminal." to: "The file associated with the fildes argument is not a terminal." _____________________________________________________________________________ SD5 XSH ERN 105 (7 Aug 2005) XSH many is*() Add isblank() to every function listed in the SEE ALSO list for isblank() The functions are: isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isupper(), isxdigit(), setlocale() _____________________________________________________________________________ SD5 XSH ERN 110 (27 Oct 2005) XSH msync Page: 827 Line: 27084 Section: msync Change: "Either MS_ASYNC or MS_SYNC is specified, but not both." to: "Either MS_ASYNC or MS_SYNC shall be specified, but not both." _____________________________________________________________________________ SD5 XSH ERN 111 (20 Oct 2005) Page: 999 Line: 31981 Section: pthread_attr_setguardsize() Remove the words "or stack" in the last paragraph of the DESCRIPTION _____________________________________________________________________________ SD5 XSH ERN 116 (1 dec 2005) Page: 929 Line: 30023 Section: posix_trace_attr_getstreamfullpolicy() The declaration of posix_trace_attr_getstreamfullpolicy() is missing the 'restrict' keyword. Same problem on P936, L30240. Action: Change: int posix_trace_attr_getstreamfullpolicy(const trace_attr_t *attr, int *streampolicy); to: int posix_trace_attr_getstreamfullpolicy(const trace_attr_t *restrict attr, int *restrict streampolicy); _____________________________________________________________________________ OPEN OPEN OPEN SD5 XSH ERN 120 (14 Jan 2006) OPEN (re-opened May 11 2006) XSH sched_yield Add to APPLICATION USAGE Since there may not be more than one thread runnable in a process a call to sched_yield() might not relinquish the processor at all. In a single threaded application this will always be case. OPEN OPEN OPEN _____________________________________________________________________________ SD5 XSH ERN 121 (8 Jan 2006) In XSH 2.9.5.2 Page 53 table of cancellation points (may occur) In the table on page 56, after the link entry, add lio_listio. _____________________________________________________________________________ SD5 XSH ERN 122 (19 Jan 2006) XSH pselect/ sigsuspend For pselect() Add a new para after line 31621 (shared with THR): If a thread gets canceled during a pselect() call the signal mask in effect when executing the registered cleanup functions is either the original signal mask or the signal mask installed as part of the pselect() call. Add to the RATIONALE section for pselect: Code which wants to avoid the ambiguity of the signal mask for thread cancellation handlers can install an additional cancellation handler which resets the signal mask to the expected value. void cleanup(void *arg) { sigset_t *ss = (sigset_t *) arg; pthread_sigmask(SIG_SETMASK, ss, NULL); } int call_pselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set errorfds, const struct timespec *timeout, const sigset_t *sigmask) { sigset_t oldmask; int result; pthread_sigmask(SIG_SETMASK, NULL, &oldmask); pthread_cleanup_push(cleanup, &oldmask); result = pselect(nfds, readfds, writefds, errorfds, timeout, sigmask); pthread_cleanup_pop(0); return result; } Add to the RATIONALE section for sigsuspend: Code which wants to avoid the ambiguity of the signal mask for thread cancellation handlers can install an additional cancellation handler which resets the signal mask to the expected value. void cleanup(void *arg) { sigset_t *ss = (sigset_t *) arg; pthread_sigmask(SIG_SETMASK, ss, NULL); } int call_sigsuspend(const sigset_t *mask) { sigset_t oldmask; int result; pthread_sigmask(SIG_SETMASK, NULL, &oldmask); pthread_cleanup_push(cleanup, &oldmask); result = sigsuspend(sigmask); pthread_cleanup_pop(0); return result; } ------------------------------------ XCU CHANGES _____________________________________________________________________________ SD5 XCU ERN 2 (29 Aug 2003) pax page 700 line 27134 -c and -n should be mutually exclusive and so need to be [-c|-n] in the SYNOPSIS Change From: pax [-cdnv][-H|-L][-f archive][-s replstr]...[pattern...] pax -r[-cdiknuv][-H|-L][-f archive][-o options]...[-p string]... [-s replstr]...[pattern...] To: pax [-dv][-c|-n][-H|-L][-f archive][-s replstr]...[pattern...] pax -r[-c|-n][-dikuv][-H|-L][-f archive][-o options]...[-p string]... [-s replstr]...[pattern...] _____________________________________________________________________________ SD5 XCU ERN 3 (29 Aug 2003) pax page 703, line 27231, 27259 (last sentences of -H and -L) Change from The default behavior shall be to archive the symbolic link itself. To: The default behavior, when neither -H or -L are specififed shall be to archive the symbolic link itself. _____________________________________________________________________________ SD5 XCU ERN 4 (24 Sep 2003) file page 446 (table 4-8, add note 3 to multiple lines) In Table 4-8 File Utility Output Strings on page 446 lines 17263-17270 change: Executable binary executable 4,6 ar archive library (see ar) archive 4,6 Extended cpio format (see pax) cpio archive 4,6 Extended tar format (see ustar in pax) tar archive 4,6 Shell script commands text 5,6 C-language source c program text 5,6 FORTRAN source fortran program text 5,6 Regular file whose type cannot be determined data to Executable binary executable 3,4,6 ar archive library (see ar) archive 3,4,6 Extended cpio format (see pax) cpio archive 3,4,6 Extended tar format (see ustar in pax) tar archive 3,4,6 Shell script commands text 3,5,6 C-language source c program text 3,5,6 FORTRAN source fortran program text 3,5,6 Regular file whose type cannot be determined data 3 _____________________________________________________________________________ SD5 XCU ERN 5 (24 Sep 2003) pax page 708 line 28525 (wrong table reference) In List Mode Format Specifications, item 6, line 28525 change Change line 27251 from: to the form required by Table 4-16 (on page xxx). to: to the form required by Table 4-15 (on page xxx). _____________________________________________________________________________ SD5 XCU ERN 6 (24 Sep 2003) pax page 709 line 27555 (numbered item 11, typo) Change: Change line 27281 from: "specify a symbolic line" to: "specify a symbolic link" _____________________________________________________________________________ SD5 XCU ERN 7 (22 Sep 2003) pax EXAMPLES page 724 Change line 28191 to: -rw-rw--- Jan 12 15:53 2003 1492 /usr/foo/bar Change line 28198 to: Jan 12 15:53 1991 Change line 28199 to: Jan 31 15:53 2003 _____________________________________________________________________________ SD5 XCU ERN 8 (30 Sep 2003) XCU chgrp page 234 SYNOPSIS Change from: chgrp [-hR] group file ... chgrp -R [-H | -L | -P] group file to: chgrp [-h] group file ... chgrp -R [-H | -L | -P] group file _____________________________________________________________________________ SD5 XCU ERN 9 (30 Sep 2003) XCU chown page 244 SYNOPSIS Change from: chown [-hR] owner[:group] file ... chown -R [-H | -L | -P] owner[:group] file to: chown [-h] owner[:group] file ... chown -R [-H | -L | -P] owner[:group] file _____________________________________________________________________________ SD5 XCU ERN 10 (23 Oct 2003) XCU c99 page 214 OUTPUT FILES Add a new sentence to the end of the paragraph in the OUTPUT FILES section: If an existing file that does not resolve to a regular file matches the name of an object file being written or matches the name of an executable file being created by c99, it is unspecified whether c99 shall attempt to write the object file or create the executable file, or shall issue a diagnostic and exit with a non-zero exit status. Add a new paragraph to the enf of the rationale This standard specifies that the c99 utility must be able to use regular files for *.o files and for a.out files. Implementations are free to overwrite existing files of other types when attempting to create object files and executable files, but are not required to do so. If something other than a regular file is specified and using it fails for any reason, c99 is required to issue a diagnostic message and exit with a non-zero exit status. But for some file types, the problem may not be noticed for a long time. For example, if a FIFO named a.out exists in the current directory, c99 may attempt to open a.out and will hang in the open() call until another process opens the FIFO for reading. Then c99 may write most of the a.out to the FIFO and fail when it tries to seek back close to the start of the file to insert a timestamp (FIFOs are not seekable files). The c99 utility is also allowed to issues a diagnostic immediately if it encounters an a.out or *.o file that is not a regular file. For portable use, applications should ensure that any a.out, -o option-argument, or *.o files corresponding to any *.c files do not conflict with names already in use that are not regular files or symbolic links that point to regular files. _____________________________________________________________________________ SD5 XCU ERN 11 (31 Oct 2003) XCU c99 page 214 EXTENDED DESCRIPTION On the c99 utility page in the description of the -l c in the EXTENDED DESCRIPTION section add: to the existing list of headers. XCU page 214 line 8428 Further down in the -l xnet description, add the same header to the existing list of headers. _____________________________________________________________________________ SD5 XCU ERN 13 (7 Nov 2003) XCU mv SYNOPSIS Change: mv [-fi] source_file... target_file to: mv [-if] source_file... target_dir _____________________________________________________________________________ SD5 XCU ERN 17 (18 Feb 2004) Page: 705 Line: 27392 Section: pax On line 27392 change: atime, ctime, and mtime extended header records to: atime and mtime extended header records _____________________________________________________________________________ SD5 XCU ERN 26 (8 Jul 2004) XCU Page 952 in OPTIONS line 36855 Change from: The uncompress utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, 36866 Section 12.2, Utility Syntax Guidelines. To: The uncompress utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, 36866 Section 12.2, Utility Syntax Guidelines, except that guideline one does apply since the utility name has ten letters. _____________________________________________________________________________ SD5 XCU ERN 27 (24 Jun 2004) XCU Page: 551 Line: 21257 Section: ln Add new paragraph to the start of RATIONALE: The Consequence of Errors section does not require "ln -f a b" to remove "b" if a subsequent link operation would fail. _____________________________________________________________________________ SD5 XCU ERN 30 (29 Jun 2004) XCU Page: 932 Line: 36141 Section: tr RATIONALE Change tr -d \200-\377 to tr -cd \000-\177 _____________________________________________________________________________ SD5 XCU ERN 31 (30 Jun 2004) XCU Page: 269 Line: 10511 Section: cp DESCRIPTION Change 10511 from If source_file is a file of type symbolic link, the pathname... To: If source_file is a file of type symbolic link, and the options require the symbolic link itself to be acted on, the pathname... _____________________________________________________________________________ SD5 XCU ERN 32 (26 Jul 2004) XCU Page: 664 Line: 25710 Section: nice Replace the following text in page 664 lines 25710-25712: With no options and only if the user has appropriate privileges, the executed utility shall be run with a nice value that is some implementation-defined quantity less than or equal to the nice value of the current process. with: With no options, the executed utility shall be run with a nice value that is some implementation-defined quantity greater than or equal to the nice value of the current process. In page 665 line 25770, change "the default lower nice value" to "the default higher-or-equal nice value". In page 665 line 25772, change "lower nice value" to "higher nice value". In page 666 line 25808, change "lower the nice value" to "raise the nice value". _____________________________________________________________________________ SD5 XCU ERN 33 (26 Jul 2004) XCU Page: 666 Line: 25800 Section: nice Replace the following text in page 666 line 25800 Neither was considered clearly superior, so the behavior was left unspecified. with: The standard specifies the System V behavior together with an optional BSD-style "permission denied" message. _____________________________________________________________________________ SD5 XCU ERN 37 (6 Sep 2004) XCU Page: 679 Line: 26312 Section: od OPERANDS In XCU page 679 line 26312, replace: ... none of the -A, -j, -N, or -t options is specified, ... with: ... none of the -A, -j, -N, -t, or -v options is specified, ... _____________________________________________________________________________ SD5 XCU ERN 38 (27 Sep 2004) XCU Page: 51 Line: 2068 Section: 2.9.3.1 Asynchronous Lists Change in bullet 2 at the top of the page From: Another asynchronous list invoked before to: Another asynchronous list is invoked before _____________________________________________________________________________ SD5 XCU ERN 42 (6 Oct 2004) XCU Page: 267 Line: 10411 Section: cp DESCRIPTION In the Description for cp, change the wordings of paragraphs 2, 4, and 6 as follows: ... It shall be an error if any source_file is a file of type directory, if target does not exist, or if target does not name a directory. ... ... - If target exists and names an existing directory, the name of the corresponding destination path ... ... It shall be an error if target does not exist and more than two operands are specified, or if target exists and does not name a directory. _____________________________________________________________________________ SD5 XCU ERN 44 (5 Oct 2004) XCU Page: 738 Line: 28742 Section: pr OPTIONS On line 28742 change "replace multiple s with s wherever two or more" to "replace s with s wherever one or more". Appending the following to line 28746: "If the first character of the -i option-argument is a digit the entire option argument shall be assumed to be gap." and the following to line 28735: "If the first character of the -e option-argument is a digit the entire option argument shall be assumed to be gap." Note in CH: PASC interpretation 1003.2-92 #151 is applied. _____________________________________________________________________________ SD5 XCU ERN 45 (1 Oct 2004) XCU Page: 923 Line: 35789 Section: touch RATIONALE Add to the end of the RATIONALE section In previous editions of the standard, if at least two operands are specified, and the first operand is an eight- or ten-digit decimal integer, the first operand was assumed to be a date_time operand. This usage was removed in this edition of the standard since it had been marked obsolescent previously. ---------------------------------------------------- SD5 XCU ERN 46 (19 Oct 2004) Move the UUCP utilities to a separate UUCP option group (possibly denoted UU). This includes uucp, uux, uustat, this will need a new margin code and change history to note the move. ---------------------------------------------------- SD5 XCU ERN 48 (12 Nov 2004) XCU Page: 452 Line: 17520 Section: find add the text "If the referenced file does not exist, the file information and type shall be for the link itself" to the description of the -L option ---------------------------------------------------- SD5 XCU ERN 50 (16 Jan 2005) XCU Page: 571 Line: 22019-22058 Section: ls In the SYNOPSIS, change from: ls [-CFRacdilqrtu1] to: ls [-ACFRacdilqrtu1] Insert at line 22019 after "associated information.": Filenames beginning with a period ('.') and any associated information shall not be written out unless explicitly referenced, the -A or -a option is supplied, or an implementation-defined condition causes them to be written. Insert after line 22035: -A Write out all directory entries, including those whose names begin with a period ('.') but excluding the entries dot and dot-dot (if they exist). On lines 22056-22058 delete: Entries beginning with a period shall not be written out unless explicitly referenced, the -a option is supplied, or an implementation-defined condition shall cause them to be written. Change page 577 lines 22298-22299: from The BSD ls provides a -A option (like -a, but dot and dot-dot are not written out). The small difference from -a did not seem important enough to require both. To: Earlier versions of this standard did not describe the BSD -A option (like -a, but dot and dot-dot are not written out). It has been added due to widespread implementation. ---------------------------------------------------- SD5 XCU ERN 51 (28 Jan 2005) XCU page 656 line 25426 mv DESCRIPTION Add to mv DESCRIPTION Page 656 before 25426 Insert into p656 before the existing para that states: "If the duplication of the file hierarchy fails for any reason, mv shall write a diagnostic message to standard error, do nothing more with the current source_file, and go on to any remaining source_files." If files being duplicated to another filesystem have hard links to other files it is unspecified whether the files copied to the new filesystem have the hard links preserved or separate copies are created for the linked files. ---------------------------------------------------- SD5 XCU ERN 56 (10 Mar 2005) XCU Page: 638 Line: 24731 Section: mkdir Change "If the -m option is specified, the mode option-argument overrides this default." to "If the -m option is specified, the value of the mkdir() mode argument is unspecified, but the directory shall at no time have permissions less restrictive than the -m mode option-argument." (The CHANGE HISTORY section for both mkdir and mkfifo should also be updated to record this change. The -m option has been aligned with POSIX.2b to clarify an ambiguity. ---------------------------------------------------- SD5 XCU ERN 58 (28 Feb 2005) XCU who page 1051 line 40531 In OPTIONS Change the -b option from: -b Write the time and date of the last reboot. To: -b Write the time and date of the last system reboot. The system reboot time is the time at which the implementation is able to commence running processes. In the STDOUT section add to the XSI shaded text beginning "XSI-conformant systems shall write the default information to the standard output in the following general format: ...." after 40595: For the -b option, shall be "system boot". The is unspecified. In the STDOUT section (on page 1053) Add after line 40602 This entry is not associated with a terminal. *CROSS VOLUME CHANGE* In XBD Chapter 3 Definitions Add a definition: System Boot should be added with the current text for the definition of System Reboot And change the current System Reboot definition to be: "See System Boot" ---------------------------------------------------- SD5 XCU ERN 60 (15 Mar 2005) XCU pax page 700 line 27497 Remove on page 708: 27497 In copy mode, if no -x format is specified, pax shall behave as if -xpax were 27498 specified. On Page 700 27173 Replace "an archive" with "a pax format archive" ---------------------------------------------------- SD5 XCU ERN 65 (20 Jun 2005) XCU page 218 line 8571 c99 EXAMPLES Change line 8571 from In this case the -l Q operand need only precede the first -l p operand, since both libQ.a and libp.a reside in the same directory. to In this case the -L operand need only precede the first -l operand, since both libQ.a and libp.a reside in the same directory. ---------------------------------------------------- SD5 XCU ERN 67 (16 Jun 2005) XCU page 211 line 8266 c99 SYNOPSIS Change "[-Ooptlevel]" to "[-O optlevel]". ---------------------------------------------------- SD5 XCU ERN 68 (21 Jun 2005) XCU page 1058,1059 xargs Change the SYNOPSIS on P1058, L40762-40763 from: xargs [-t] [-p]] [-E eofstr] {XSI}[-I replstr] [-L number]{/XSI} [-n number [-x]] [-s size] [utility [argument...]] to: xargs [-ptx] [-E eofstr] [-s size] [{XSI}-I replstr | -L number | {/XSI}-n number] [utility [argument...]] Delete the last sentence in the description of the -L option on P1059, L40809-40810: The -L and -n options are mutually-exclusive; the last one specified shall take effect. Change the description of the -x option on P1059, L40834-40836 from: Terminate if a command line containing number arguments (see the -n option above) {XSI}or number lines (see the -L option above) {/XSI} will not fit in the implied or specified size (see the -s option above). to: Terminate if a constructed command line will not fit in the implied or specified size (see the -s option above). Add to RATIONALE The -I, -L, and -n options are mutually-exclusive. Some implementations use the last one specified if more than one is given on a command line , other implementations treat combinations of the options in different ways. ---------------------------------------------------- SD5 XCU ERN 69 (6 Jul 2005) XCU page 597 line 23114 mailx In "Declare Alternatives" Change "(See also the metoo command.)" to "(See also the metoo variable.)" ---------------------------------------------------- SD5 XCU ERN 73 (15 Jul 2005) XCU page 161 line 6217 awk (OFS) Change "separation" to "separator" Add to CH. PASC Interpretation 1003.2-1992 #107 is applied. ---------------------------------------------------- SD5 XCU ERN 79 (13 Dec 2005) XCU page 156 line 6005 awk Table 4-1 (pages 156-157, lines 6005-6047) is missing some horizontal lines. Lines 5997-5999 say "In the following table, valid expression operations are given in groups from highest precedence first to lowest precedence last, with equal-precedence operators grouped between horizontal lines." But the horizontal lines are missing. They are present on page 168 of IEEE Std 1003.2-1992 Part 2, but were inadvertently removed at some point. Restore the horizontal lines in Table 4-1, pages 156-157, so that they look like the horizontal lines in Table 4-1 of the 1992 standard. ---------------------------------------------------- SD5 XCU ERN 80 (13 Dec 2005) XCU page 156 line 6012 awk (table 4-1) In table 4-1 move 6012 and 6013 before 6010 and 6011 and add a line between them ---------------------------------------------------- SD5 XCU ERN 81 (14 Dec 2005) XCU page 871 line 33844 sort Insert the following after XCU page 871 line 33844 (sort -i): The behavior is undefined for a sort key for which -n also applies. ====================================================== XBD Changes ====================================================== ---------------------------------------------------- SD5 XBD ERN 5 (8 Mar 2004) headers: sys/mman.h XBD page 343 sys/mman.h SYNOPSIS: Changed the SYNOPSIS to [MC4] |X> #include Range Memory Locking (hard to see if this is still in TC2) Errata, extra white space not needed in the function prototype for globfree, a space is printed in between the function name `globfree' and the following opening bracket. The space should be removed. (hard to see if this is still in TC2) In the list of function prototypes, a space is printed in between the function name `localeconv' and the following opening bracket. The space should be removed. XBD 1.5.1: Add the new MC4 notation to XBD 1.5.1 Codes, and also to the html help file. I Add after the paragraph describing [MC3]: ---start--- [MC4] |X> Memory Mapped Files, Shared Memory Objects, Process Memory Locking, Memory Protection, Typed Memory Objects, Synchronized Input and Output, Advisory Information, or Range Memory Locking The MC4 margin code is shorthand for MF|SHM|ML|MPR|TYM|SIO|ADV|MR. Features which are shaded with this margin code require support of either the Memory Mapped Files, Shared Memory Objects, Process Memory Locking, Memory Protection, Typed Memory Objects, Synchronized Input and Output, Advisory Information, or Range Memory Locking options. header shall define the fd_set type as a structure. The header shall define the following macro: FD_SETSIZE Maximum number of file descriptors in an fd_set structure. The following shall be declared as functions, defined as macros, or both. If functions are declared, function prototypes shall be provided." (ed note:code segment) void FD_CLR(int fd, fd_set *fdset); int FD_ISSET(int fd, fd_set *fdset); void FD_SET(int fd, fd_set *fdset); void FD_ZERO(fd_set *fdset); (ed note: end code segment) If implemented as macros, these may evaluate their arguments more than once, so applications should ensure that the arguments they supply are never expressions with side effects. The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided. --end-- The header shall define the following macro name: XBD page 430 wctype.h line 15278: Remove "name" from the end of the sentence: XBD page 214 ctype.h line 7601 Change The following are defined as macros: to The header shall define the following as macros: XBD page 208 arpa/inet.h line 7351 Change: "The following shall either be declared as functions, defined as macros, or both." To: "The following shall be declared as functions, or defined as macros, or both." XBD page 303 setjmp.h line 10760 Change from: "The following may be declared as a function, or defined as a macro, or both. Function prototypes shall be provided." To: "The following shall be declared as functions, or defined as macros, or both. If functions are declared, function prototypes shall be provided.". ---------------------------------------------------- SD5 XBD ERN 10 (29 Apr 2004) headers: sys/select.h XBD page 3841 page 119 Change from: shall be of the same type, and interpreted in byte order from first to last with the least significant byte of the multi-byte character specified by the last constant. To: shall be of the same type, and interpreted in sequence from first to last with the first byte of the multibyte character specified by the first byte in the sequence. ---------------------------------------------------- SD5 XBD ERN 13 (14 May 2004) sched.h page 298 line 10597 sched.h Change from: "In addition, if _POSIX_SPORADIC_SERVER or _POSIX_THREAD_SPORADIC_SERVER is defined, the sched_param structure defined in shall contain the following members in addition to those specified above:" To: The sched_param structure defined in shall contain the following members in addition to those specified above:" ---------------------------------------------------- SD5 XBD ERN 14 (3 June 2004) netdb.h XBD page 278 line 9871 netdb.h Change: The port number at which the service resides, in network byte order. To: A value which, when converted to uint16_t, yields the port number in network byte order at which the service resides. *CROSS VOL CHANGE* Similarly in XSH6 at page 287 line 9366 section endservent objection Change: The port argument shall be in network byte order. To: The port argument shall be a value obtained by converting a uint16_t in network byte order to int. ---------------------------------------------------- SD5 XBD ERN 15 (10 Aug 2004) string.h page 333 line 11860 string.h In the prototype for strerror_r() should read: int strerror_r(int, char *, size_t); ---------------------------------------------------- SD5 XBD ERN 17 (28 Aug 2004) 2.1.6 options In XBD 2.1.6 page 31 line 1175, change "split" in the first column to "csplit" ---------------------------------------------------- SD5 XBD ERN 21 (28 Sep 2004) XBD page 204 line 7223 Section 12.2, Change from: Guideline 10: The argument -- should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character. The -- argument should not be used as an option or as an operand. To: Guideline 10: The first -- argument that is not an option argument should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character. *CROSS VOLUME CHANGE* Add the following text to the rationale for Guideline 7 (after XRAT page 75 line 3062): Guideline 7 allows any string to be an option-argument: an option-argument can begin with any character, can be "-" or "--", and can be an empty string. For example, the commands "pr -h -", "pr -h --", "pr -h -d", "pr -h +2", and "pr -h ''" contain the option-arguments "-", "--", "-d", "+2" and "", respectively. Conversely, the command "pr -h -- -d" treats "-d" as an option, not as an argument, because the "--" is an option-argument here, not a delimiter. ---------------------------------------------------- SD5 XBD ERN 22 (29 Sep 2004) Add the following text to the Utility Syntax Guidelines (after XBD page 204 line 7236): Guideline 14: If an argument can be identified according to guidelines 3 through 10 as an option, or as a group of options without option-arguments behind one '-' delimiter, then it should be treated as such. *CROSS VOL CHANGE* Add the following text to the Utility Syntax Guidelines rationale (after XRAT page 76 line 3075): Guideline 14 is intended to prohibit implementations that would treat the command "ls -l -d" as if it were "ls -- -l -d" or "ls -l -- -d". ---------------------------------------------------- SD5 XBD ERN 25 (2 Nov 2004) In XBD page 100, section 4.10, on XBD page 100 add at line 3132 The pthread_mutex_lock() function need not synchronize memory if the mutex type is PTHREAD_MUTEX_RECURSIVE and the calling thread already owns the mutex. The pthread_mutex_unlock() function need not synchronize memory if the mutex type is PTHREAD_MUTEX_RECURSIVE and the mutex has a lock count greater than one. CROSS VOL CHANGE TO XSH: Add to the SEE ALSO section, "XBD 4.10 Memory Synchronization" for each of the following functions listed in the table in XBD 4.10: fork () pthread_barrier_wait() pthread_cond_broadcast() pthread_cond_signal () pthread_cond_timedwait() pthread_cond_wait() pthread_create() pthread_join () pthread_mutex_lock() pthread_mutex_timedlock() pthread_mutex_trylock() pthread_mutex_unlock() pthread_spin_lock() pthread_spin_trylock() pthread_spin_unlock() pthread_rwlock_rdlock() pthread_rwlock_timedrdlock() pthread_rwlock_timedwrlock() pthread_rwlock_tryrdlock() pthread_rwlock_trywrlock() pthread_rwlock_unlock() pthread_rwlock_wrlock() sem_post() sem_trywait() sem_wait() wait() waitpid ()) ---------------------------------------------------- SD5 XBD ERN 28 (4 Nov 2004) XBD page 100 section 4.10 3122-3130 Add sem_timedwait() to the list of functions that "synchronize memory with respect to other threads". ---------------------------------------------------- SD5 XBD ERN 30 (4 Nov 2004) XBD page 100 section 4.10 3122-3130 Add semop() and semctl() to the list of functions that "synchronize memory with respect to other threads" in the table in 4-10. ---------------------------------------------------- SD5 XBD ERN 33 (9 Nov 2004) *CROSS VOL* XSH page 835 nanosleep Add before "If the rmtp argument is NULL..." in the RETURN VALUE The arguments /rqtp/ and /rmtp/ may point to the same object. ---------------------------------------------------- SD5 XBD ERN 35 (29 Nov 2004) Page: 384 Line: 13466 Section: termios.h Add the following to termios.h OFDEL Fill is DEL ---------------------------------------------------- SD5 XBD ERN 36 (10 Dec 2004) Page: 251 Line: 8784 Section: limits.h change from: {RE_DUP_MAX} The number of repeated occurrences of a BRE permitted by the regexec() and regcomp() functions when using the interval notation {\(m,n\}; see section 9.3.6 (on page 174) Minimum Acceptable Value: {_POSIX2_RE_DUP_MAX} to: {RE_DUP_MAX} The number of repeated occurrences of a BRE or ERE interval expression; see section 9.3.6 (on page 174) and section 9.4.6 (on page 177). Minimum Acceptable Value: {_POSIX2_RE_DUP_MAX} ---------------------------------------------------- SD5 XBD ERN 38 (7 Jan 2005) Page: 51 Line: 0 Section: 3.114 Change the 2nd sentence of the definition to: Certain input sequences from the controlling terminal cause signals to be sent to all processes in the foreground process group associated with the controlling terminal. ---------------------------------------------------- SD5 XBD ERN 39 (27 Jan 2005) Page: 307 Line: 10913 Section: signal.h Delete page 307 100913-10916 (removes the sigstack structure which should have been removed at the same time as the legacy sigstack() function) ---------------------------------------------------- SD5 XBD ERN 41 (7 Feb 2005) Add to unistd.h Add a new paragragh after _POSIX_SYNC_IO Synchronized input or output operations may be performed for the associated file. on page 410 after line 14449: If the following constant is defined in the unistd.h header it applies to files and all paths in all file systems on the implementation _POSIX2_SYMLINKS ---------------------------------------------------- SD5 XBD ERN 42 (24 Feb 2005) Page: 7 Line: 277-281 Section: 1.5.1 In XBD6 at page 7 line 280 and also XSH6 page 4 line 139 and XCU6 page 10 line 372: Change "Such limitations are not considered conflicts." to "Such limitations and other compatible differences are not considered conflicts, even if a CX mark is missing. The CX markings are for information only." ---------------------------------------------------- SD5 XBD ERN 43 (24 Feb 2005) Page: 47 Line: 1601 Section: 3.85 Byte Input/Output Functions Insert perror() into the list of functions. (this change for ISO C TC2 #67) ---------------------------------------------------- SD5 XBD ERN 44 (24 Feb 2005) Page: 116 Line: 3727 Section: 6.2 ISO C TC2 #3 (XBD Section 6.2 Character Encoding) Change from: lines 3727- A byte with all bits zero shall be interpreted as the null character independent of shift state. Thus a byte with all bits zero shall never occur in the second or subsequent bytes of a character. To: A byte with all bits zero shall be interpreted as the null character independent of shift state. Such a byte shall not occur as part of any other character. ---------------------------------------------------- SD5 XBD ERN 48 (22 Feb 2005) On page 226 fenv.h Change 7943 "shall define the following" to "shall define each of the following" After 7952 Add [MX]If the implementation supports the IEC 60559 Floating-Point option, all five constants shall be defined. [/MX] Additional implementation-defined floating-point exceptions with constants beginning with FE_ and an uppercase letter may also specified by the implementation. **CROSS VOLUME CHANGE** Related change in XSH page 16 add after 597 Prefix column FE_[A-Z] ---------------------------------------------------- SD5 XBD ERN 49 (24 Feb 2005) Page: 226 Line: 7953 Section: fenv.h Add to CH ISO C TC2 #37 is applied. Change from: "The header shall define the following constant, which is simply the bitwise-inclusive OR of all floating-point exception constants defined above: FE_ALL_EXCEPT" to: "The header shall define the constant FE_ALL_EXCEPT as the bitwise-inclusive OR of all floating-point exception constants defined by the implementation, if any. If no such constants are defined then the constant FE_ALL_EXCEPT shall be defined as zero." ---------------------------------------------------- SD5 XBD ERN 50 (24 Feb 2005) Page: 229 Line: 8083 Section: float.h Add to CH ISO C TC2 #4 is applied Add a new paragraph after line 8083 in float.h DESCRIPTION An implementation may give zero and non-numeric values, such as infinities and NaNs, a sign or may leave them unsigned. Wherever such values are unsigned, any requirement in this standard to retrieve the sign shall produce an unspecified sign, and any requirement to set the sign shall be ignored. ---------------------------------------------------- SD5 XBD ERN 51 (24 Feb 2005) Page: 229 Line: 8084 Section: float.h Add to CH ISO C TC2 #5 is applied Change from: "The accuracy of the floating-point operations ( '+', '-', '*', '/' ) and of the library functions in and that return floating-point results is implementation-defined. The implementation may state that the accuracy is unknown." To: "The accuracy of the floating-point operations ( '+', '-', '*', '/' ) and of the functions in and that return floating-point results is implementation-defined, as is the accuracy of the conversion between floating-point internal representations and string representations performed by the functions in , , and . The implementation may state that the accuracy is unknown." ---------------------------------------------------- SD5 XBD ERN 52 (24 Feb 2005) Page: 267 Line: 9446 Section: math.h Add to CH ISO C TC2 #47 is applied. Change from: If defined, the FP_FAST_FMA macro shall indicate that the fma() function generally executes about as fast as, or faster than, a multiply and an add of double operands. If undefined, the speed of execution is unspecified. The other macros have the equivalent meaning for the float and long double versions. To: If defined, the FP_FAST_FMA macro shall expand to the integer constant 1 and shall indicate that the fma() function generally executes about as fast as, or faster than, a multiply and an add of double operands. If undefined, the speed of execution is unspecified. The other macros have the equivalent meaning for the float and long double versions. ---------------------------------------------------- SD5 XBD ERN 55 (12 Mar 2005) Page: 292 Line: 10358 Section: pthread.h Change lines 10358-10359 from: int pthread_mutex_timedlock(pthread_mutex_t *, const struct timespec *); to: int pthread_mutex_timedlock(pthread_mutex_t *restrict, const struct timespec *restrict); ---------------------------------------------------- SD5 XBD ERN 56 (14 Apr 2005) XBD Headers For , the following should be added unshaded after P238, L8324: The size_t type shall be defined as described in . For , P240, L8376 change: The gid_t type shall be defined as described in . To: The gid_t and size_t types shall be defined as described in . For , P241, L8414-8415 change: The header shall define the following type: iconv_t Identifies the conversion from one codeset to another. To: The header shall define the following types: iconv_t Identifies the conversion from one codeset to another. size_t As described in . For , P295, L10487 change: The gid_t and uid_t types shall be defined as described in . To: The gid_t, uid_t and size_t types shall be defined as described in . For , the following should be added after P307, L10912: The size_t type shall be defined as described in . For , P335, L11908 change: The size_t type shall be defined through typedef as described in . To: The size_t type shall be defined as described in . For , the following should be added after P358, L12605: The ssize_t type shall be defined as described in . For , P398, L13935-13939 change: The following types shall be defined as described in : trace_attr_t trace_id_t trace_event_id_t trace_event_set_t To: The following types shall be defined as described in : size_t trace_attr_t trace_id_t trace_event_id_t trace_event_set_t ---------------------------------------------------- SD5 XBD ERN 57 (17 Jun 2005) XBD semaphore.h Change 10725 (last para in DESCRIPTION) to: Inclusion of the header may make visible symbols defined in the headers , , and . Add to CH SD5 ERN 57 is applied allowing the header to make visible symbols from the header. ---------------------------------------------------- SD5 XBD ERN 58 (11 Jul 2005) Page: 201 Line: 7099-7127 Section: 12.1 Change line 7100 from: [-d|-e] [-foption_argument] [operand...] to: [-d|-e] [-f[option_argument]] [operand...] Change lines 7108-7127 from: 2. Option-arguments are sometimes shown separated from their options by s, sometimes directly adjacent. This reflects the situation that in some cases an option-argument is included within the same argument string as the option; in most cases it is the next argument. The Utility Syntax Guidelines in Section 12.2 (on page 203) require that the option be a separate argument from its option-argument, but there are some exceptions in IEEE Std 1003.1-2001 to ensure continued operation of historical applications: a. If the SYNOPSIS of a standard utility shows a between an option and option-argument (as with [-c option_argument] in the example), a conforming application shall use separate arguments for that option and its option-argument. b. If a is not shown (as with [ -f option_argument] in the example), a conforming application shall place an option and its option-argument directly adjacent in the same argument string, without intervening s. c. Notwithstanding the preceding requirements on conforming applications, a conforming implementation shall permit an application to specify options and option-arguments as a single argument or as separate arguments whether or not a is shown on the synopsis line, [XSI] except in those cases (marked with the XSI portability warning) where an option-argument is optional and no separation can be used.[/XSI] d. A standard utility may also be implemented to operate correctly when the required separation into multiple arguments is violated by a non-conforming application. to: 2. Option-arguments are shown separated from their options by s except when the option-argument is enclosed in the '[' and ']' notation to indicate that it is optional. This reflects the situation that an optional option-argument (if present) is included within the same argument string as the option; for a mandatory option-argument it is the next argument. The Utility Syntax Guidelines in Section 12.2 (on page 203) require that the option be a separate argument from its option-argument and that option-arguments not be optional, but there are some exceptions in IEEE Std 1003.1-2001 to ensure continued operation of historical applications: a. If the SYNOPSIS of a standard utility shows an option with a mandatory option-argument (as with [-c option_argument] in the example), a conforming application shall use separate arguments for that option and its option-argument. However, a conforming implementation shall also permit applications to specify the option and option-argument in the same argument string without intervening s. b. If the SYNOPSIS shows an optional option-argument (as with [-f[option_argument]] in the example), a conforming application shall place any option-argument for that option directly adjacent to the option in the same argument string, without intervening s. If the utility receives an argument containing only the option, it shall behave as specified in its description for an omitted option-argument; it shall not treat the next argument (if any) as the option-argument for that option. Cross-volume change to XRAT page 73-74 line 2971-2985 section A.12.1 comment Replace the table at lines 2971-2977 with the following table: _____________________________________________________________ | | SYNOPSIS Shows: | | |______________________________________| | | -a arg | -c[arg] | |______________________|____________________|_________________| | Conforming | | | | application uses: | -a arg | -carg or -c | |______________________|____________________|_________________| | System supports: | -a arg and -aarg | -carg and -c | |______________________|____________________|_________________| | Non-conforming | | | |applications may use: | -aarg | N/A | |______________________|____________________|_________________| Change lines 2978-2985 from: Allowing s after an option (that is, placing an option and its option-argument into separate argument strings) when IEEE Std 1003.1-2001 does not require it encourages portability of users, while still preserving backwards-compatibility of scripts. Inserting s between the option and the option-argument is preferred; however, historical usage has not been consistent in this area; therefore, s are required to be handled by all implementations, but implementations are also allowed to handle the historical syntax. Another justification for selecting the multiple-argument method was that the single-argument case is inherently ambiguous when the option-argument can legitimately be a null string. to: Earlier versions of this standard included obsolescent syntax which showed some options with (mandatory) adjacent option-arguments in the SYNOPSIS for some utilities. These have since been removed. For all options with mandatory option-arguments, the SYNOPSIS now shows s between the option and the option-argument; however, historical usage has not been consistent in this area; therefore, s are required to be used by conforming applications and to be handled by all implementations, but implementations are also required to handle an adjacent option-argument in order to preserve backwards-compatibility for old scripts. One of the justifications for selecting the multiple-argument method was that the single-argument case is inherently ambiguous when the option-argument can legitimately be a null string. ---------------------------------------------------- SD5 XBD ERN 60 (25 Aug 2005) Page: 296 Line: 10529 Section: regex.h / regoff_t Change XBD page 296 lines 10529-10530 from: The type regoff_t shall be defined as a signed integer type that can hold the largest value that can be stored in either a type off_t or type ssize_t. to: The type regoff_t shall be defined as a signed integer type that can hold the largest value that can be stored in either a type ptrdiff_t or a type ssize_t. *Cross Volume change* Change XSI page 1222 lines 38367-38375 from: The substrings reported in pmatch[] are defined using offsets from the start of the string rather than pointers. Since this is a new interface, there should be no impact on historical implementations or applications, and offsets should be just as easy to use as pointers. The change to offsets was made to facilitate future extensions in which the string to be searched is presented to regexec() in blocks, allowing a string to be searched that is not all in memory at once. The type regoff_t is used for the elements of pmatch[] to ensure that the application can represent either the largest possible array in memory (important for an application conforming to the Shell and Utilities volume of IEEE Std 1003.1-2001) or the largest possible file (important for an application using the extension where a file is searched in chunks). to: The substrings reported in pmatch[] are defined using offsets from the start of the string rather than pointers. This allows type-safe access to both constant and non-constant strings. The type regoff_t is used for the elements of pmatch[] to ensure that the application can represent large arrays in memory (important for an application conforming to the Shell and Utilities volume of IEEE Std 1003.1-2001). The 1992 edition of this standard required regoff_t to be at least as wide as off_t, to facilitate future extensions in which the string to be searched is taken from a file. However, these future extensions have not appeared. The requirement rules out popular implementations with 32-bit regoff_t and 64-bit off_t, so it has been withdrawn. ---------------------------------------------------- SD5 XBD ERN 61 (4 Nov 2005) XBD page 99 lines 3089-3091 (File Times Update) Change XBD page 99 lines 3089-3091 (File Times Update) from: All fields that are marked for update shall be updated when the file ceases to be open by any process, or when a stat(), fstat(), or lstat() is performed on the file. to: All fields that are marked for update shall be updated when the file ceases to be open by any process or before a stat(), fstat(), lstat(), fsync(), utime(), or utimes() is successfully performed on the file. *cross volume change* XSH Page 472 ftw Change 15542 null-terminated character string containing the name of the object, a pointer to a stat structure 15543 containing information about the object, and an integer. To: 15542 null-terminated character string containing the name of the object, a pointer to a stat structure 15543 containing information about the object filled in as if stat() or lstat() had been called to retrieve the information,... XSH 841 nftw Change 27470 "The second argument is a pointer to the stat buffer containing information on the object. To: 27470 "The second argument is a pointer to the stat buffer containing information on the object filled in as if stat() or lstat() had been called to retrieve the information. ---------------------------------------------------- SD5 XBD ERN 62 (4 Dec 2005) Page: 357 Line: 12589 Section: Replace line 12589 recvfrom(), recvmsg(), sendmsg(), or sendto() calls: with recv(), recvfrom(), recvmsg(), send(), sendmsg(), or sendto() calls: ---------------------------------------------------- SD5 XBD ERN 62 (4 Dec 2005) Page: 290 Line: 10245-10257 Section: pthread.h Add TPS shading to the PTHREAD_EXPLICIT_SCHED and PTHREAD_INHERIT_SCHED constants (lines 10245 and 10256). Add TSH|SPI shading to the PTHREAD_PROCESS_SHARED and PTHREAD_PROCESS_PRIVATE constants (lines 10256 and 10257). ---------------------------------------------------- SD5 XBD ERN 66 (20 Feb 2006) *cross volume change* XSH page 72 Add to XSH page 72, join to end of para shown below in 2983: Results are undefined if the application performs any operation on a file descriptor associated with an active or pre-recorded trace stream until posix_trace_shutdown() orposix_trace_close()is called for that trace stream... "Results are also undefined if the analyzer process and the traced process do not share the same programming environment (add cxref to c99, Programming Environments, page 319 in xcu)."