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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1134 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 1134.


Report 1134 Actions


    Problem Report Number 1134
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0336
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    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/flockf 42,43,44
    Problem Summary PG4U.00136 This request claims that the test may fail on systems where errno is defined as a macro.
    Problem Text
    On our implementation, the following tests fail to build in UNIX 98
    mode:

    CAPIbase/flockf/flockf42
    CAPIbase/flockf/flockf43
    CAPIbase/flockf/flockf44
    CAPIbase/flstat/flstat33
    CAPIbase/fmmap/fmmap41
    CAPIbase/freadv/freadv70
    CAPIbase/freadv/freadv71
    CAPIbase/freadv/freadv72
    CAPIbase/fwritev/fwritev75
    CAPIbase/fwritev/fwritev76
    CAPIbase/fwritev/fwritev77
    CAPIbase/fftruncate/fftruncate18


    All fail with the exact failure noted in the test results section.

    The problem is that these tests have private headers with a
    structure similar to the following defined:

    /*
    ** Structure returned by the execed programs
    */
    struct lfstatus {
    int status;
    char reason[512];
    int value;
    int errno;
    };

    This structure conflicts with our per-thread errno implementation.
    When _XOPEN_SOURCE is set to 500, we turn on our POSIX Threads
    implementation which in turn sets the following in our errno.h
    header:

    extern int *___errno();
    #define errno (*(___errno()))

    Therefore, the build of the test fails because the errno
    member of the lfstatus structure gets expanded to the __errno()
    function in our implementation. Every occurrence of attempting
    to access the lfstatus structure errno member then results in
    each of the syntax errors.

    The test suite is relying on undefined implementation behavior.
    In section 4.1.3 of the ANSI standard, the following statements
    are made with respect to errno:

    The header <errno.h> defines several macros, all relating
    to the reporting of error conditions. The macros are...
    errno which expands to a modifiable lvalue that has type
    int... It is unspecified whether errno is a macro or an
    identifier declared with external linkage. If a macro
    definition is suppressed in order to access an actual
    object, or a program defines an identifier with the name
    errno, the behavior is undefined.

    This last sentence is key. Also note, that a footnote for this
    states that the "macro errno need not be the identifier of an
    object. It might expand to a modifiable lvalue resulting from a
    function call (for example *errno())."

    See also the POSIX Realtime specification, IEEE Std 1003.1-1996,
    sections 2.4, which references the ANSI standard, and B2.4 for
    per-thread errno rationale.

    A SR request was submitted to the test suite developers
    Reference (VSU SR #620) resulting in the following response:

    Following approval by The Open Group, which we will
    recommend, this will be fixed in the next release.

    Pending an update to the test suite, we would like to request
    a TSD be granted for these failures.


    Test Output
    110|17 /tset/CAPIbase/fftruncate/fftruncate18 17:17:12|Build Start, scenario ref 1962-1
    100|17|"./ftruncate.h", line 95: member cannot be function: ___errno
    100|17|"t18smloff.c", line 97: syntax error before or at: (
    100|17|"t18smloff.c", line 115: syntax error before or at: (
    100|17|"t18smloff.c", line 126: syntax error before or at: (
    100|17|"t18smloff.c", line 142: syntax error before or at: (
    100|17|"t18smloff.c", line 158: syntax error before or at: (
    100|17|"t18smloff.c", line 172: syntax error before or at: (
    100|17|"t18smloff.c", line 182: syntax error before or at: (
    100|17|"t18smloff.c", line 196: syntax error before or at: (
    100|17|"t18smloff.c", line 209: syntax error before or at: (
    100|17|"t18smloff.c", line 226: syntax error before or at: (
    100|17|"t18smloff.c", line 237: syntax error before or at: (
    100|17|"t18smloff.c", line 248: syntax error before or at: (
    100|17|"t18smloff.c", line 260: syntax error before or at: (
    100|17|"t18smloff.c", line 271: cannot recover from previous errors
    100|17|c89: acomp failed for t18smloff.c
    100|17|*** Error code 2



    300|4519 /tset/CAPIbase/flockf/flockf41 21:02:38|Clean Start, scenario ref 143-1240
    320|4519 0 21:02:39|Clean End
    110|4520 /tset/CAPIbase/flockf/flockf42 21:02:39|Build Start, scenario ref 143-1241
    100|4520|"./flockflfs.h", line 91: member cannot be function: ___errno
    100|4520|"t42smloff.c", line 73: syntax error before or at: (
    100|4520|"t42smloff.c", line 93: syntax error before or at: (
    100|4520|"t42smloff.c", line 107: syntax error before or at: (
    100|4520|"t42smloff.c", line 126: syntax error before or at: (
    100|4520|"t42smloff.c", line 136: syntax error before or at: (
    100|4520|"t42smloff.c", line 149: syntax error before or at: (
    100|4520|"t42smloff.c", line 159: cannot recover from previous errors
    100|4520|c89: acomp failed for t42smloff.c



    110|4521 /tset/CAPIbase/flockf/flockf43 21:02:40|Build Start, scenario ref 143-1242
    100|4521|"./flockflfs.h", line 91: member cannot be function: ___errno
    100|4521|"t43smloff.c", line 84: syntax error before or at: (
    100|4521|"t43smloff.c", line 100: syntax error before or at: (
    100|4521|"t43smloff.c", line 127: syntax error before or at: (
    100|4521|"t43smloff.c", line 141: syntax error before or at: (
    100|4521|"t43smloff.c", line 156: syntax error before or at: (
    100|4521|"t43smloff.c", line 169: syntax error before or at: (
    100|4521|"t43smloff.c", line 180: syntax error before or at: (
    100|4521|"t43smloff.c", line 193: syntax error before or at: (
    100|4521|"t43smloff.c", line 204: cannot recover from previous errors
    130|4521 1 21:02:41|Build End



    110|4522 /tset/CAPIbase/flockf/flockf44 21:02:41|Build Start, scenario ref 143-1243
    100|4522|"./flockflfs.h", line 91: member cannot be function: ___errno
    100|4522|"t44smloff.c", line 82: syntax error before or at: (
    100|4522|"t44smloff.c", line 103: syntax error before or at: (
    100|4522|"t44smloff.c", line 119: syntax error before or at: (
    100|4522|"t44smloff.c", line 138: syntax error before or at: (
    100|4522|"t44smloff.c", line 149: syntax error before or at: (
    100|4522|"t44smloff.c", line 162: syntax error before or at: (
    100|4522|"t44smloff.c", line 175: syntax error before or at: (
    100|4522|"t44smloff.c", line 199: syntax error before or at: (
    100|4522|"t44smloff.c", line 217: syntax error before or at: (
    100|4522|"t44smloff.c", line 227: syntax error before or at: (
    100|4522|"t44smloff.c", line 241: syntax error before or at: (
    100|4522|"t44smloff.c", line 254: syntax error before or at: (
    100|4522|"t44smloff.c", line 271: syntax error before or at: (
    100|4522|"t44smloff.c", line 282: syntax error before or at: (
    100|4522|"t44smloff.c", line 293: syntax error before or at: (
    100|4522|"t44smloff.c", line 305: syntax error before or at: (
    100|4522|"t44smloff.c", line 315: cannot recover from previous errors
    100|4522|c89: acomp failed for t44smloff.c
    100|4522|*** Error code 2
    130|4522 1 21:02:42|Build End



    110|4628 /tset/CAPIbase/flstat/flstat33 21:03:18|Build Start, scenario ref 143-1283
    100|4628|"./flstatlfs.h", line 88: member cannot be function: ___errno
    100|4628|"t33smloff.c", line 73: syntax error before or at: (
    100|4628|"t33smloff.c", line 79: syntax error before or at: (
    100|4628|"t33smloff.c", line 115: syntax error before or at: (
    100|4628|"t33smloff.c", line 126: syntax error before or at: (
    100|4628|"t33smloff.c", line 139: syntax error before or at: (
    100|4628|"t33smloff.c", line 149: cannot recover from previous errors
    100|4628|c89: acomp failed for t33smloff.c
    100|4628|*** Error code 2
    100|4628|make: Fatal error: Command failed for target `t33smloff'
    130|4628 1 21:03:19|Build End



    110|4890 /tset/CAPIbase/fmmap/fmmap41 21:05:12|Build Start, scenario ref 143-1378
    100|4890|"./mmap.h", line 88: member cannot be function: ___errno
    100|4890|"t41smloff.c", line 78: syntax error before or at: (
    100|4890|"t41smloff.c", line 95: syntax error before or at: (
    100|4890|"t41smloff.c", line 108: syntax error before or at: (
    100|4890|"t41smloff.c", line 123: syntax error before or at: (
    100|4890|"t41smloff.c", line 137: syntax error before or at: (
    100|4890|"t41smloff.c", line 147: syntax error before or at: (
    100|4890|"t41smloff.c", line 157: syntax error before or at: (
    100|4890|"t41smloff.c", line 171: syntax error before or at: (
    100|4890|"t41smloff.c", line 183: syntax error before or at: (
    100|4890|"t41smloff.c", line 199: syntax error before or at: (
    100|4890|"t41smloff.c", line 209: syntax error before or at: (
    100|4890|"t41smloff.c", line 219: syntax error before or at: (
    100|4890|"t41smloff.c", line 230: syntax error before or at: (
    100|4890|"t41smloff.c", line 240: cannot recover from previous errors
    100|4890|c89: acomp failed for t41smloff.c
    100|4890|*** Error code 2
    100|4890|make: Fatal error: Command failed for target `t41smloff'
    130|4890 1 21:05:14|Build End



    110|5962 /tset/CAPIbase/freadv/freadv70 21:42:20|Build Start, scenario ref 143-1764
    100|5962|"./readv.h", line 85: member cannot be function: ___errno
    100|5962|"t70smloff.c", line 79: syntax error before or at: (
    100|5962|"t70smloff.c", line 85: syntax error before or at: (
    100|5962|"t70smloff.c", line 103: syntax error before or at: (
    100|5962|"t70smloff.c", line 116: syntax error before or at: (
    100|5962|"t70smloff.c", line 132: syntax error before or at: (
    100|5962|"t70smloff.c", line 149: syntax error before or at: (
    100|5962|"t70smloff.c", line 159: syntax error before or at: (
    100|5962|"t70smloff.c", line 171: syntax error before or at: (
    100|5962|"t70smloff.c", line 184: syntax error before or at: (
    100|5962|"t70smloff.c", line 197: syntax error before or at: (
    100|5962|"t70smloff.c", line 214: syntax error before or at: (
    100|5962|"t70smloff.c", line 225: syntax error before or at: (
    100|5962|"t70smloff.c", line 236: syntax error before or at: (
    100|5962|"t70smloff.c", line 248: syntax error before or at: (
    100|5962|"t70smloff.c", line 260: cannot recover from previous errors
    100|5962|c89: acomp failed for t70smloff.c
    100|5962|*** Error code 2
    100|5962|make: Fatal error: Command failed for target `t70smloff'
    130|5962 1 21:42:23|Build End



    110|5963 /tset/CAPIbase/freadv/freadv71 21:42:23|Build Start, scenario ref 143-1765
    100|5963|"./readv.h", line 85: member cannot be function: ___errno
    100|5963|"t71smloff.c", line 79: syntax error before or at: (
    100|5963|"t71smloff.c", line 85: syntax error before or at: (
    100|5963|"t71smloff.c", line 103: syntax error before or at: (
    100|5963|"t71smloff.c", line 116: syntax error before or at: (
    100|5963|"t71smloff.c", line 132: syntax error before or at: (
    100|5963|"t71smloff.c", line 149: syntax error before or at: (
    100|5963|"t71smloff.c", line 159: syntax error before or at: (
    100|5963|"t71smloff.c", line 170: syntax error before or at: (
    100|5963|"t71smloff.c", line 183: syntax error before or at: (
    100|5963|"t71smloff.c", line 196: syntax error before or at: (
    100|5963|"t71smloff.c", line 213: syntax error before or at: (
    100|5963|"t71smloff.c", line 224: syntax error before or at: (
    100|5963|"t71smloff.c", line 235: syntax error before or at: (
    100|5963|"t71smloff.c", line 247: syntax error before or at: (
    100|5963|"t71smloff.c", line 258: cannot recover from previous errors
    100|5963|c89: acomp failed for t71smloff.c
    100|5963|make: Fatal error: Command failed for target `t71smloff'
    130|5963 1 21:42:24|Build End



    110|5964 /tset/CAPIbase/freadv/freadv72 21:42:24|Build Start, scenario ref 143-1766
    100|5964|"./readv.h", line 85: member cannot be function: ___errno
    100|5964|"t72smloff.c", line 79: syntax error before or at: (
    100|5964|"t72smloff.c", line 85: syntax error before or at: (
    100|5964|"t72smloff.c", line 103: syntax error before or at: (
    100|5964|"t72smloff.c", line 116: syntax error before or at: (
    100|5964|"t72smloff.c", line 132: syntax error before or at: (
    100|5964|"t72smloff.c", line 149: syntax error before or at: (
    100|5964|"t72smloff.c", line 159: syntax error before or at: (
    100|5964|"t72smloff.c", line 170: syntax error before or at: (
    100|5964|"t72smloff.c", line 183: syntax error before or at: (
    100|5964|"t72smloff.c", line 196: syntax error before or at: (
    100|5964|"t72smloff.c", line 212: syntax error before or at: (
    100|5964|"t72smloff.c", line 222: syntax error before or at: (
    100|5964|"t72smloff.c", line 232: syntax error before or at: (
    100|5964|"t72smloff.c", line 244: syntax error before or at: (
    100|5964|"t72smloff.c", line 255: cannot recover from previous errors
    100|5964|c89: acomp failed for t72smloff.c
    100|5964|make: Fatal error: Command failed for target `t72smloff'
    130|5964 1 21:42:26|Build End


    110|8033 /tset/CAPIbase/fwritev/fwritev75 22:37:43|Build Start, scenario ref 143-2528
    100|8033|"./writev.h", line 85: member cannot be function: ___errno
    100|8033|"t75smloff.c", line 78: syntax error before or at: (
    100|8033|"t75smloff.c", line 84: syntax error before or at: (
    100|8033|"t75smloff.c", line 102: syntax error before or at: (
    100|8033|"t75smloff.c", line 113: syntax error before or at: (
    100|8033|"t75smloff.c", line 125: syntax error before or at: (
    100|8033|"t75smloff.c", line 141: syntax error before or at: (
    100|8033|"t75smloff.c", line 158: syntax error before or at: (
    100|8033|"t75smloff.c", line 168: syntax error before or at: (
    100|8033|"t75smloff.c", line 182: syntax error before or at: (
    100|8033|"t75smloff.c", line 195: syntax error before or at: (
    100|8033|"t75smloff.c", line 211: syntax error before or at: (
    100|8033|"t75smloff.c", line 222: syntax error before or at: (
    100|8033|"t75smloff.c", line 232: syntax error before or at: (
    100|8033|"t75smloff.c", line 244: syntax error before or at: (
    100|8033|"t75smloff.c", line 255: cannot recover from previous errors
    100|8033|c89: acomp failed for t75smloff.c
    100|8033|*** Error code 2
    100|8033|make: Fatal error: Command failed for target `t75smloff'
    130|8033 1 22:37:46|Build End



    110|8034 /tset/CAPIbase/fwritev/fwritev76 22:37:46|Build Start, scenario ref 143-2529
    100|8034|"./writev.h", line 85: member cannot be function: ___errno
    100|8034|"t76smloff.c", line 78: syntax error before or at: (
    100|8034|"t76smloff.c", line 84: syntax error before or at: (
    100|8034|"t76smloff.c", line 102: syntax error before or at: (
    100|8034|"t76smloff.c", line 113: syntax error before or at: (
    100|8034|"t76smloff.c", line 125: syntax error before or at: (
    100|8034|"t76smloff.c", line 139: syntax error before or at: (
    100|8034|"t76smloff.c", line 156: syntax error before or at: (
    100|8034|"t76smloff.c", line 166: syntax error before or at: (
    100|8034|"t76smloff.c", line 180: syntax error before or at: (
    100|8034|"t76smloff.c", line 192: syntax error before or at: (
    100|8034|"t76smloff.c", line 208: syntax error before or at: (
    100|8034|"t76smloff.c", line 218: syntax error before or at: (
    100|8034|"t76smloff.c", line 228: syntax error before or at: (
    100|8034|"t76smloff.c", line 240: syntax error before or at: (
    100|8034|"t76smloff.c", line 252: cannot recover from previous errors
    100|8034|c89: acomp failed for t76smloff.c
    100|8034|*** Error code 2
    100|8034|make: Fatal error: Command failed for target `t76smloff'
    130|8034 1 22:37:47|Build End



    110|8035 /tset/CAPIbase/fwritev/fwritev77 22:37:47|Build Start, scenario ref 143-2530
    100|8035|"./writev.h", line 85: member cannot be function: ___errno
    100|8035|"t77smloff.c", line 79: syntax error before or at: (
    100|8035|"t77smloff.c", line 85: syntax error before or at: (
    100|8035|"t77smloff.c", line 103: syntax error before or at: (
    100|8035|"t77smloff.c", line 114: syntax error before or at: (
    100|8035|"t77smloff.c", line 125: syntax error before or at: (
    100|8035|"t77smloff.c", line 139: syntax error before or at: (
    100|8035|"t77smloff.c", line 154: syntax error before or at: (
    100|8035|"t77smloff.c", line 162: syntax error before or at: (
    100|8035|"t77smloff.c", line 174: syntax error before or at: (
    100|8035|"t77smloff.c", line 187: syntax error before or at: (
    100|8035|"t77smloff.c", line 204: syntax error before or at: (
    100|8035|"t77smloff.c", line 215: syntax error before or at: (
    100|8035|"t77smloff.c", line 226: syntax error before or at: (
    100|8035|"t77smloff.c", line 238: syntax error before or at: (
    100|8035|"t77smloff.c", line 249: cannot recover from previous errors
    100|8035|c89: acomp failed for t77smloff.c
    100|8035|*** Error code 2
    100|8035|make: Fatal error: Command failed for target `t77smloff'
    130|8035 1 22:37:49|Build End

    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.

    Patch 5.0.2A provides a workaround for these failures. We
    recommend that the submitter be required to apply this patch
    prior to making a single branding run.

    The patch will be available at the end of the week beginning
    13 April 1998.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority