HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1314 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 1314.


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:

     

    Back   


Contact the Certification Authority