XBD D3R Aardvark Reports Austin-393 Page 1 of 1 Submitted by Andrew Josey, The Open Group. Sep 10, 2007 Aardvark Summary Table ______________________ ERN 1 Accept ERN 2 Accept as marked ERN 3 Accept as marked ERN 4 Accept as marked ERN 5 Accept ERN 6 Accept ERN 7 Accept ERN 8 Accept ERN 9 Accept ERN 10 Accept as marked ERN 11 Duplicate of 4 ERN 12 Accept ERN 13 Accept as marked ERN 14 Accept ERN 15 Accept ERN 16 Accept as marked ERN 17 Accept as marked ERN 18 Accept ERN 19 Accept ERN 20 Accept as marked ERN 21 Accept as marked _____________________________________________________________________________ OBJECTION Enhancement Request Number 1 gwc:xxxxxxxxxxxxx Bug in XBDd3 3.84 (rdvk# 1) [gwc byte oriented funcs] Fri, 6 Jul 2007 16:55:34 +0100 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 45 Line: 1424 Section: 3.84 Problem: Some of the functions added in the revision need to be included in the list of byte input/output functions. Also, perror() seems to have found its way into the list somehow, but it should not be there. Since psiginfo() and psignal() are counterparts to perror(), presumably they should not be added to the list, but should have the same requirement as perror() not to change the stream orientation. Action: Add getdelim() and getline() to the list. Remove perror() from the list. Cross-volume change to XSH: page 1491 line 48541 section psiginfo, add a new paragraph: "The psiginfo() and psignal() functions shall not change the orientation of the standard error stream." _____________________________________________________________________________ EDITORIAL Enhancement Request Number 2 gwc:xxxxxxxxxxxxx Bug in XBDd3 3.225 (rdvk# 3) [gwc monotonic clock def] Fri, 6 Jul 2007 09:22:58 +0100 _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Change from A realtime clock whose value cannot be set via clock_settime() and which cannot have negative clock jumps. to A clock measuring real time whose value cannot be set via clock_settime() and which cannot have negative clock jumps. CROSS VOL XSH On clock_getres() in DESCRIPTION para 4 change from This clock represents the realtime clock for the system. to This clock represents the clock measuring real time for the system. _____________________________________________________________________________ Page: 64 Line: 1964 Section: 3.225 Problem: XBD ERN 74 has not been correctly applied. The new text was supposed to use the defined term "real time", not the word "realtime". The aardvark also asked for a change from "realtime" to "real time" in two other places to be considered. The AAM comment says "take the changes as proposed below", which I believe was supposed to include those two changes. Action: On P64 L1964, P403 L13892 and P403 L13898 change "realtime" to "real time". Cross-volume change to XSH: page 643 line 22214 section clock_getres, change "realtime" to "real time". _____________________________________________________________________________ OBJECTION Enhancement Request Number 3 gwc:xxxxxxxxxxxxx Bug in XBDd3 3.243 null pointer (rdvk# 6) [gwc null pointer] Fri, 27 Jul 2007 15:13:10 +0100 _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Take the change but add the following note Note: An issue has been raised with the ISO C committee regarding whether an integer constant expression 0 should be considered a null pointer if it is not cast to a pointer type. _____________________________________________________________________________ Page: 67 Line: 2039 Section: 3.243 Problem: The definition of "null pointer" is in conflict with the C Standard. Also there are various uses of "NULL pointer" which should be the defined term "null pointer". The first change is in scope because it is a conflict with the C Standard. The second change should be considered an editorial matter, needed for consistency. There are various other uses of "NULL" where the intended meaning is "a null pointer", such as "if the xxx argument is NULL" or "if the xxx argument is not NULL". However, I don't think it is worth trying to fix these. (It would not be safe to try and do global changes; they would have to be examined individually.) It is reasonably clear that the intended meaning is "if xxx compares (un)equal to NULL", rather than the literal "if xxx is (not) the NULL macro". Action: Change "The value that is obtained by converting the number 0 into a pointer; for example, (void *) 0. The C language guarantees that this value does not match that of any legitimate pointer, so it is used by many functions that return pointers to indicate an error." to "A pointer obtained by converting an integer constant expression with the value 0, or such an expression cast to type void *, to a pointer type; for example, (char *)0. The C language guarantees that a null pointer compares unequal to a pointer to any object or function, so it is used by many functions that return pointers to indicate an error." Globally (in all volumes) change "NULL pointer" to "null pointer". _____________________________________________________________________________ OBJECTION Enhancement Request Number 4 ebb9:xxxxxxx Bug in XBDd3 aio.h (rdvk# 19) {ebb.aio} Fri, 3 Aug 2007 22:27:29 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Add prior to line 7099: The header shall define the following types: off_t, pthread_attr_t, size_t, and ssize_t As described in . struct timespec As described in . The tag sigevent shall be declared as naming an incomplete structure type, the contents of which are described in the header . Add prior to line 9692: The header shall define the following types: pthread_attr_t, size_t, and ssize_t As described in . struct timespec As described in . The tag sigevent shall be declared as naming an incomplete structure type, the contents of which are described in the header . Replace the start of line 9692: The header shall define the sigevent structure (as described in ) and the mq_attr structure,... with: The header shall define the mq_attr structure,... In signal.h Page 312 before l 10806 Add this line with CX shading: The header shall define the pthread_attr_t type, as described in . Replace on line 10811: (union signal) with: (union sigval) In time.h p 404 l 13913 add this line with CX shading: The tag sigevent shall be declared as naming an incomplete structure type, the contents of which are described in the header . _____________________________________________________________________________ Page: 206 Line: 7089 Section: aio.h Problem: The header uses several types without any requirement that they be declared. Likewise for . The draft 3 edits in for struct sigevent introduced a typo. Meanwhile, the use of pthread_attr_t needs a declaration, although it can be an incomplete type. also uses uses struct sigevent, but since timer_create explicitly requires the inclusion of (line 65309; unlike lio_listio, line 29611, or mq_notify, line 42861), the inclusion of just should be able to leave out union sigval and pthread_attr_t by leaving struct sigevent incomplete. Action: Add prior to line 7099: The header shall define the following types: off_t As described in . pthread_attr_t As described in , although the type may be incomplete if is not also included. size_t As described in . struct sigevent As described in . union sigval As described in . ssize_t As described in . strict timespec As described in . Add prior to line 9692: The header shall define the following types: pthread_attr_t As described in , although the type may be incomplete if is not also included. size_t As described in . struct sigevent As described in . union sigval As described in . ssize_t As described in . strict timespec As described in . Replace the start of line 9692: The header shall define the sigevent structure (as described in ) and the mq_attr structure,... with: The header shall define the mq_attr structure,... Prior to line 10806 (note that another aardvark also touches this line, so wording should be consistent between the two if both are applied), add this line with CX shading: The header shall provide a declaration of pthread_attr_t, as described in , although the type may be incomplete if is not also included. Replace on line 10811: (union signal) with: (union sigval) After line 13913 (note that another aardvark also touches this line, so wording should be consistent between the two if both are applied), add this line with CX shading: The header shall provide a declaration of struct sigevent, as described in , although the type may be incomplete if is not also included. _____________________________________________________________________________ EDITORIAL Enhancement Request Number 5 gwc:xxxxxxxxxxxxx Bug in XBDd3 fcntl.h (rdvk# 4) [gwc fcntl unistd ref] Wed, 4 Jul 2007 17:06:04 +0100 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 224 Line: 7704 Section: fcntl.h Problem: The fcntl.h page says SEEK_CUR etc. are defined "as described in ", but the unistd.h page no longer describes them - it says that defines them "as described in ". Action: Change "unistd.h" to "stdio.h". _____________________________________________________________________________ EDITORIAL Enhancement Request Number 6 mh-austin:xxxxxx Bug in XBDd3 (rdvk# 16) [mh2007d306] Thu, 16 Aug 2007 07:57:57 -0700 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 224 Line: 7712 Section: Problem: fcntl.h() should be . Action: Change fcntl.h() to (and italics to bold). _____________________________________________________________________________ EDITORIAL Enhancement Request Number 7 ebb9:xxxxxxx Bug in XBDd3 inttypes.h (rdvk# 13) {ebb.examples} Thu, 2 Aug 2007 17:55:05 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 247 Line: 8410 Section: inttypes.h Problem: EXAMPLES sections are informative, not normative. Action: Add non-normative shade side-bars to these EXAMPLES sections: lines 8410-8419 lines 11223-11245 _____________________________________________________________________________ OBJECTION Enhancement Request Number 8 ebb9:xxxxxxx Bug in XBDd3 langinfo.h (rdvk# 15) {ebb.langinfo} Fri, 3 Aug 2007 19:34:14 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 249 Line: 8485 Section: langinfo.h Problem: The addition of nl_langinfo_l to langinfo.h, strfmon_l to monetary.h, strcasecmp_l to strings.h, and strftime_l to time.h, each requires the definition of locale_t. Additionally, pid_t is not defined in time.h, required for the CPT shaded clock_getcpuclockid. Action: Add at line 8485: The locale_t type shall be defined as described in . Add after line 9660: locale_t As described in . Add at 11970: The locale_t type shall be defined as described in . Because of shading issues, rewrite the paragraph at line 13913: The clock_t, size_t, time_t, clockid_t, and timer_t types shall be defined as described in . as the following list: The header shall define the following types: clock_t As described in . clockid_t As described in . locale_t As described in . pid_t As described in . size_t As described in . time_t As described in . timer_t As described in . _____________________________________________________________________________ OBJECTION Enhancement Request Number 9 ebb9:xxxxxxx Bug in XBDd3 locale.h (rdvk# 7) {ebb.locale} Thu, 2 Aug 2007 17:35:59 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 267 Line: 9247 Section: locale.h Problem: Most of the headers specified by C, but with CX/XSI shaded extensions required by POSIX 200x, warn the reader that a feature test macro must be used to ensure the POSIX definitions are visible. However, this was not done for locale.h. As this text was not edited in draft 3, it should be considered in light of making the standard internally consistent. Action: At line 9247, replace: Some of the functionality described on this reference page extends the ISOC standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-200x defers to the ISO C standard. with: Some of the functionality described on this reference page extends the ISO C standard. Applications shall define the appropriate feature test macro (see XSH Section 2.2, on page 448) to enable the visibility of these symbols in this header. _____________________________________________________________________________ OBJECTION Enhancement Request Number 10 ebb9:xxxxxxx Bug in XBDd3 signal.h (rdvk# 20) {ebb.signal} Fri, 3 Aug 2007 21:13:08 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: In line 10801 change from The header shall define the following data types through typedef: to The header shall define the following data types: At line 10801, add the following lines (optionally, consider sorting the existing lines): pthread_t As described in . size_t As described in . struct timespec As described in . uid_t As described in . Delete line 10926: The size_t type shall be defined as described in . _____________________________________________________________________________ Page: 312 Line: 10801 Section: signal.h Problem: refers to the following types which need declaration: uid_t (CX-shaded struct siginfo_t) pthread_t (CX-shaded pthread_kill) struct timespec (CX-shaded sigtimedwait) Note that the only use of struct timespec in is via a pointer, and that while implementations are allowed to bring in symbols from , they are not required to do so. Additionally, the mention of size_t on 10926, resulting from SD5-XBD-ERN-56, is out of place compared to the mention of other typedefs copied from other locations, not to mention that it is XSI-shaded although stack_t is CX-shaded. Action: At line 10801, add the following lines (optionally, consider sorting the existing lines): pthread_t As described in . size_t As described in . struct timespec As described in , although the type may be incomplete if is not also included. uid_t As described in . Delete line 10926: The size_t type shall be defined as described in . _____________________________________________________________________________ OBJECTION Enhancement Request Number 11 gwc:xxxxxxxxxxxxx Bug in XBDd3 signal.h (rdvk# 12) [gwc sigev sigval] Tue, 24 Jul 2007 15:34:08 +0100 _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_of_4 Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 312 Line: 10811 Section: signal.h Problem: "union signal" should be "union sigval" Action: Change "signal" to "sigval". _____________________________________________________________________________ EDITORIAL Enhancement Request Number 12 gwc:xxxxxxxxxxxxx Bug in XBDd3 signal.h (rdvk# 5) [gwc signal shading] Wed, 4 Jul 2007 17:09:51 +0100 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 314 Line: 10900-10906 Section: signal.h Problem: Missing CX shading. Action: Add CX shading to SA_RESETHAND, ..., SA_NODEFER. _____________________________________________________________________________ OBJECTION Enhancement Request Number 13 ebb9:xxxxxxx Bug in XBDd3 spawn.h (rdvk# 17) {ebb.spawn} Fri, 3 Aug 2007 23:30:18 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: sched.h p305 At line 10596, add: The header shall define the following types: pid_t As described in . time_t As described in . struct timespec As described in . spawn.h At line 11103, add: The header shall define the following types: mode_t As described in . pid_t As described in . sigset_t As described in . The tag sched_param shall be declared as naming an incomplete structure type, the contents of which are described in the header . Also ensure that does not occur in a may make visible phrase in the headers as globally permitted already. _____________________________________________________________________________ Page: 320 Line: 11103 Section: spawn.h Problem: The header uses several types without declarations. In the case of PS shading, this includes sched_param; which in turn points out issues in . Note that in , a complete struct timespec is required by SS and TSP shading, while an incomplete type will satisfy PS and TPS shading; the proposal merely goes with the simpler approach of always requiring struct timespec, while only requiring time_t where a complete timespec is needed. Action: At line 10596, add: The header shall define the following types: pid_t As described in . time_t As described in . struct timespec As described in . At line 11103, add: The header shall define the following types: mode_t As described in . pid_t As described in . struct sched_param As described in , although the type may be incomplete if is not also included. sigset_t As described in . _____________________________________________________________________________ OBJECTION Enhancement Request Number 14 ebb9:xxxxxxx Bug in XBDd3 stdio.h (rdvk# 11) {ebb.stdio} Thu, 2 Aug 2007 16:39:52 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 335 Line: 11629 Section: stdio.h Problem: The description of stdio.h was edited in draft 3 to mention that, as a C extension, the type ssize_t is available (required by the declaration of CX getline). However, off_t was overlooked (required by the declaration of CX fseeko). Action: At line 11628, add, with CX shading: off_t As described in . Optionally, consider sorting the list, moving va_list after ssize_t. _____________________________________________________________________________ EDITORIAL Enhancement Request Number 15 nick:xxxxxxxxxx Bug in XBDd3 stdlib.h (rdvk# 8) {nms-stdlib-seealso} Wed, 25 Jul 2007 21:11:53 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Action Nick _____________________________________________________________________________ Page: 340 Line: 11854 Section: stdlib.h Problem: The see also section in stdlib.h has incorrect hot-links (off by one). Clicking on, for example, malloc, takes you to ldiv. This appears to be true for all the links from labs() onwards. The labs() link does not work. This may be caused by the change bars, but the hot-link rectangles are in the wrong place (click and hold the mouse button down, then drag it away before releasing the button). The "build" script repeatedly formats the document to locate where to place thee rectangles, and somehow the text appears to be moving from pass to pass. I noticed this on another page too, but don't remember which one. However, it is a toolchain issue, and once fixed for this page should correct other places where this error occurs. Action: Send me the source and sccs files for this page :-) _____________________________________________________________________________ OBJECTION Enhancement Request Number 16 ebb9:xxxxxxx Bug in XBDd3 string.h (rdvk# 10) {ebb.string} Thu, 2 Aug 2007 17:47:23 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: After line 11893, add, with CX shading: The header shall define the locale_t type as described in . After wchar.h p435 line 15200, add, with CX shading: locale_t As described in . At wctype.h line 15383, replace: The header... with: The header... Sort lines 15189 - 15200. _____________________________________________________________________________ Page: 342 Line: 11893 Section: string.h Problem: The addition of strcoll_l and other functions to string.h requires the definition of locale_t with CX shading. Likewise for wchar.h and wctype.h, along with a typo correction. Action: After line 11893, add, with CX shading: The header shall provide a definition for a type locale_t as defined in . After line 15200, add, with CX shading: locale_t As described in . At line 15383, replace: The header... with: The header... Optionally, consider sorting lines 15189 - 15200. _____________________________________________________________________________ EDITORIAL Enhancement Request Number 17 ebb9:xxxxxxx Bug in XBDd3 sys/socket.h (rdvk# 21) {ebb.socket} Fri, 3 Aug 2007 22:49:37 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: At line 12695, replace: The ssize_t type shall be defined... with: The size_t and ssize_t types shall be defined... _____________________________________________________________________________ Page: 368 Line: 12695 Section: sys/socket.h Problem: The header requires ssize_t, but not size_t. Action: At line 12695, replace: The ssize_t type shall be defined... with: The ssize_t and size_t types shall be defined... _____________________________________________________________________________ COMMENT Enhancement Request Number 18 gwc:xxxxxxxxxxxxx Bug in XBDd3 sys/un.h (rdvk# 9) [gwc sys_un appusage] Tue, 24 Jul 2007 15:36:58 +0100 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 385 Line: 13302 Section: sys/un.h Problem: The APPLICATION USAGE section of the sys/un.h page needs to be updated for consistency with the change of _POSIX_PATH_MAX from 255 to 256. It should also say "bytes" not "characters". Action: Change "{_POSIX_PATH_MAX} characters (255)" to "{_POSIX_PATH_MAX} bytes (256)" _____________________________________________________________________________ OBJECTION Enhancement Request Number 19 ebb9:xxxxxxx Bug in XBDd3 termios.h (rdvk# 18) {ebb.termios} Fri, 3 Aug 2007 22:56:35 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 397 Line: 13666 Section: termios.h Problem: The header uses pid_t without declaration. Action: Prior to line 13666, add the line: The header shall define the pid_t type, as described in . _____________________________________________________________________________ OBJECTION Enhancement Request Number 20 ebb9:xxxxxxx Bug in XBDd3 getdate_err (rdvk# 14) {ebb.getdate_err} Sat, 4 Aug 2007 00:04:11 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Fix errno.h Change on l7557 The header shall provide a declaration for errno. to The header shall provide a declaration or definition for errno. Replace line 13915: The header shall provide a declaration for getdate_err. with the following, XSI shaded: The header shall provide a declaration or definition for getdate_err. The symbol getdate_err shall expand to an expression of type int. It is unspecified whether getdate_err is a macro or an identifier declared with external linkage, and whether or not it is a modifiable lvalue. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name getdate_err, the behavior is undefined. Replace line 32873: The external variable or macro getdate_err is used by getdate( ) to return error values. with: The external variable or macro getdate_err, which has type int, is used by getdate( ) to return error values. It is unspecified whether getdate_err is a macro or an identifier declared with external linkage, and whether or not it is a modifiable lvalue. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name getdate_err, the behavior is undefined. _____________________________________________________________________________ Page: 404 Line: 13915 Section: getdate_err Problem: There are no requirements on getdate_err, other than the implied requirements in ERRORS of getdate() that it can have 8 distinct values. The description should be made consistent with the edits made in draft 3 to errno (line 7557), another example of a global variable/macro that can hold error status. Action: Replace line 13915: The header shall provide a declaration for getdate_err. with the following, XSI shaded: The header shall provide a declaration for getdate_err. The symbol getdate_err shall expand to an expression of type int. It is unspecified whether getdate_err is a macro or an identifier declared with external linkage, or whether it is a modifiable lvalue. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name getdate_err, the behavior is undefined. Replace line 32873: The external variable or macro getdate_err is used by getdate( ) to return error values. with: The external variable or macro getdate_err, which has type int, is used by getdate( ) to return error values. It is unspecified whether getdate_err is a macro or an identifier declared with external linkage, or whether it is even a modifiable lvalue. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name getdate_err, the behavior is undefined. _____________________________________________________________________________ EDITORIAL Enhancement Request Number 21 ebb9:xxxxxxx Bug in XBDd3 wchar.h (rdvk# 2) {ebb.wchar.h} Thu, 19 Jul 2007 16:47:09 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: as below but note open_wmemstream is a ptr so will go to the real page _____________________________________________________________________________ Page: 438 Line: 15339 Section: wchar.h Problem: Cross-volume links for open_wmemstream are missing. Action: XBD wchar.h: In the list at line 15339, add a link to open_wmemstream(). XSH open_wmemstream: In the list at line 44839, add a link to .