Report 1314 Actions
Problem Report Number |
1314 |
Submitter's Classification |
Test Suite problem |
State |
Resolved |
Resolution |
Test Suite Deficiency (TSD) |
Problem Resolution ID |
TSD.X.0596 |
Raised |
1970-01-01 08:00 |
Updated |
2003-03-13 08:00 |
Published |
1998-04-21 08:00 |
Product Standard |
Internationalised System Calls and Libraries Extended V2 (UNIX 98) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSU version 5.0.2 |
Test Identification |
CAPIbase/ftruncate 18 |
Problem Summary |
TSD4U.00222 This request claims that an implementation need not support execution of executables c89 produces for all programming environments the implementation claims support for. |
Problem Text |
This Interpretation Request is for the following tests: ftruncate 18 lockf 42, 43, 44 lstat 33 mmap 41 readv 70, 71, 72 writev 75, 76, 77 These tests compile a program that tests the off_t size and returns that value to the main testcase. The makefile uses the values of the XBS5* macros to determine which of these off_t tests to compile. However, the XBS5* macro only determine compilation environments not execution environments. From getconf on page 380, "OPTIONS .... getconf -v _XBS5_ILP32_OFF32 ... will determine values for configuration variables corresponding to the XBS5_ILP32_OFF32 compilation environment specified in c89, EXTENDED DESCRIPTION." While it is possible to compile _XBS5_LP64_OFF64 and _XBS5_LP64_OFF64 programs on our _XBS5_ILP32_OFF32 systems, they cannot be executed on these systems.
|
Test Output |
TEST CASE: ftruncate TEST PURPOSE #18 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EFBIG in errno and return -1 on a call to int ftruncate(int fildes, off_t length) when the file is a regular file and length is greater than the offset maximum established in the open file descriptor associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 18 UNRESOLVED TEST CASE: lockf TEST PURPOSE #42 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EOVERFLOW in errno and return -1 on a call to int lockf(int fildes, int function, off_t size) when the offset of the first byte in the requested section cannot be represented correctly in an object of type off_t. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 42 UNRESOLVED TEST PURPOSE #43 EOVERFLOW in errno and return -1 on a call to int lockf(int fildes, int function, off_t size) when size is not 0 and the offset of the last byte in the requested section cannot be represented correctly in an object of type off_t. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 43 UNRESOLVED TEST PURPOSE #44 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: A call to int lockf(int fildes, int function, off_t size) when function is F_UNLOCK, size is non-zero, the offset of the last byte of the requested section is the maximum value for an object of type off_t, and the process has an existing lock in which size is 0 and which includes the last byte of the requested section shall be equivalent to a request to unlock from the start of the requested sections with a size equal to 0. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 44 UNRESOLVED TEST CASE: lstat TEST PURPOSE #33 If the implementation supports files whose size cannot be represented in a stat structure: EOVERFLOW in errno and return -1 on a call to int lstat(const char *path, struct stat *buf) when the file size in bytes cannot be represented correctly in the structure pointed to by buf. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 33 UNRESOLVED TEST CASE: mmap TEST PURPOSE #41 EOVERFLOW in errno and return MAP_FAILED on a call to void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off) when file is a regular file and the value of off plus len exceeds the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 41 UNRESOLVED TEST CASE: readv TEST PURPOSE #70 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: On a call to ssize_t readv(int fildes, const struct iovec *iov, int iovcnt) for a regular file data transfer shall not occur past the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 70 UNRESOLVED TEST PURPOSE #71 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EOVERFLOW in errno and return -1 on a call to ssize_t readv(int fildes, const struct iovec *iov, int iovcnt) when the file is a regular file, nbyte is greater than zero, the starting position is before the end of file, and the starting position is equal to the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 71 UNRESOLVED TEST PURPOSE #72 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EOVERFLOW in errno and return -1 on a call to ssize_t readv(int fildes, const struct iovec *iov, int iovcnt) when the file is a regular file, nbyte is greater than zero, the starting position is before the end of file, and the starting position is greater than the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 72 UNRESOLVED TEST CASE: writev TEST PURPOSE #75 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: On a call to ssize_t writev(int fildes, const struct iovec *iov, int iovcnt) for a regular file data transfer shall not occur past the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 75 UNRESOLVED TEST PURPOSE #76 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EFBIG in errno and return -1 on a call to ssize_t writev(int fildes, const struct iovec *iov, int iovcnt) when the file is a regular file, nbyte is greater than zero, and the starting position is equal to the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 76 UNRESOLVED TEST PURPOSE #77 If the implementation allows creation of a file description with an offset maximum less than the largest size it supports for an off_t: EFBIG in errno and return -1 on a call to ssize_t writev(int fildes, const struct iovec *iov, int iovcnt) when the file is a regular file, nbyte is greater than zero, and the starting position is greater than the offset maximum established in the open file description associated with fildes. PREP: Check for existence of programming environments PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment ERROR: Child status = 0xffffff00 77 UNRESOLVED
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
We recommend this request be refused. Although it could be stated more clearly we believe the spec authors intend implementations only state they support "Programming Environments" that produce programs which may be executed on the implementation. It is not enough that the implementation merely generate a binary which it claims can be run elsewhere. Our basis for this belief lies in the fact that c89 must be capable of compiling "executable files" for all programming environments the implementation supports. The XBD definition of executable file is as follows A regular file acceptable as a new process image file by the equivalent of the exec family of functions, ... Even if this were not true, we believe an implementation must provide an execution environment for any programming environment it claims it supports in its branding application. Otherwise it is impossible for the environment to be tested. We'll clairify this requirement in the configuration documentation for the next release.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
This request should go for a 14 day review.
|
Review Type |
Expert Group Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
The Base WG agrees that the waiver should be granted. The description of _XBS5_ILP32_OFF32 in XSH5's description of <unistd.h> is: Implementation provides a C-language compilation environment with 32-bit int, long, pointer and off_t types. Note that this describes the "compilation environment". It does not describe the execution environment. The descriptions of _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFFBIG, and _XBS5_LP64_OFF64 are similar. The Base WG recommends that in a future issue/revision of the specification that some way be added to determine what execution environments are supported as well as what compilation environments are supported. It is recommend that consideration be given to the addition of the following symbols to be added to <unistd.h> and made available to applications through getconf and sysconf(): _XBS_ILP32_OFF32_EXEC Implementation provides an execution environment to run applications built in the _XBS_ILP32_OFF32 C-language compilation environment. _XBS_ILP32_OFFBIG_EXEC Implementation provides an execution environment to run applications built in the _XBS_ILP32_OFFBIG C-language compilation environment. _XBS_LP64_OFFBIG_EXEC Implementation provides an execution environment to run applications built in the _XBS_LP64_OFFBIG C-language compilation environment. : _XBS_LP64_OFF64_EXEC Implementation provides an execution environment to run applications built in the _XBS_LP64_OFF64 C-language compilation environment. Until this is done, the Base WG recommends addition of a question to the CSQ to ask which execution environments are supported on the System Under Test. Lastly the Base WG recommends that a future revision address how to allow an application to determine which compilation and execution environments are the default.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Test Suite Deficiency (TSD) |
Review Conclusion |
This is an agreed Test Suite Deficiency.
|
Problem Reporting System Options:
|