Problem Report Number |
0052 |
Submitter's Classification |
Specification problem |
State |
Resolved |
Resolution |
Rejected (REJ) |
Problem Resolution ID |
REJ.PX.0021 |
Raised |
2008-08-29 00:04 |
Updated |
2008-10-06 23:01 |
Published |
2008-10-06 23:01 |
Product Standard |
PSE52 Realtime Controller 1003.1-2003 System |
Certification Program |
POSIX Certified by IEEE and The Open Group |
Test Suite |
VSRT-PSE version 5.3.9 |
Test Identification |
rt.hdr/misc/mman_P/T.mman_P 21 |
Specification |
PSE52 Realtime Controller 1003.1-2003 System Product Standard |
Location in Spec |
Base Definitions Section 2.2.2 |
Problem Summary |
<sys/mman.h> does not reserve the posix_tmi_ prefix |
Problem Text |
rt.hdr/misc/mman_P test21 fails to compile because we have additional
fields in the struct posix_typed_mem_info structure beyond those
defined by 1003.1-2003.
The structure field is named 'posix_tmi_length_hi' and is used to hold
the upper 32-bits of the length field when compiling for a 32-bit off_t
environment.
The description of posix_typed_mem_info in <sys/mman.h> states that it
"includes at least the following member...", but the "The Name Space"
section (2.2.2) in the "The Compilation Environment" does not reserve
the "posix_tmi_" prefix when including <sys/mman.h>.
Indeed, the section says that anything starting with "posix_" is
reserved for future use by the standard.
In contrast, the "stat" structure defined in <sys/stat.h> also includes
the language "shall contain at least the following members...", but
the "The Name Space" section explicitly says that additional symbols
starting with "st_" are allowed when including that header.
It looks like there is a similar issue with <netdb.h> and "ai_" already
listed in http://www.opengroup.org/austin/aardvark/latest/xshbug2.txt
where the result was to add "ai_" to list of acceptable prefixes in
section 2.2.2.
We believe "The Name Space" section should specify that additional
symbols starting with "posix_tmi_" are allowed when including
<sys/mman.h> rather than requiring the use of the implementor's
reserved name space when adding additional fields to the
posix_typed_mem_info structure. |
Test Output |
/tset/rt.hdr/misc/mman_P/T.mman_P 21 Failed
Test Description:
For POSIX96 mode:
When _POSIX_C_SOURCE is defined with the value 199506L and no
other feature test macros except _POSIX_SOURCE are defined, no
other symbols than those defined or reserved by POSIX.1-1996 are
made visible.
For POSIX01 mode:
When _POSIX_C_SOURCE is defined with the value 200112L and no
other feature test macros except _POSIX_SOURCE are defined, no
other symbols than those defined or reserved by POSIX.1-2001/XSH6
(not including the XSI option) are made visible.
Test Information:
Compilation exited with non-zero value when expected to succeed
Feature test macros: -D_POSIX_C_SOURCE=200112
Compiler or run-time messages or results:
In file included from ./sys/mman.h.D:1, from cc21es.c:27:
/usr/xxxxxxxx/usr/include/sys/mman.h:209: error: expected
identifier or '(' before string constant
/usr/xxxxxxxx/usr/include/sys/mman.h:216: error: expected
identifier or '(' before string constant
/usr/xxxxxxxx/usr/include/sys/mman.h:228: error: expected ';'
before '_Uint32t'
cc: /usr/xxxxxxxx/x86/usr/lib/gcc/xxxxxxxx/cc1 error 1
|