Bogus fixinclude of stdio.h from glibc 2.2.3

Bruce Korb bkorb@pacbell.net
Sat May 19 16:11:00 GMT 2001


Hi Joseph,

This patch has not been touched in a very long time.
I suspect you are seeing the results of switching from
no Linux fixes to the program.  It is interesting that
it went unnoticed for so long.

At any rate, you said,

> The following are the diffs generated.  This change is bogus; the
> va_list typedef under __USE_XOPEN is for Single Unix Specification
> conformance.

So, I need some more information.  Can you help refine
the division between those stdio.h headers that need this
patch and those that do not?

  /*
   *  Don't use or define the name va_list in stdio.h.
   *  This is for ANSI and also to interoperate properly with gcc's
   *  varargs.h.  Note _BSD_VA_LIST_ is dealt with elsewhere.
   */
  fix = {
    hackname = stdio_va_list;
    files    = stdio.h;
    bypass   = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list';
 
    /*
     * Use __gnuc_va_list in arg types in place of va_list.
     * On 386BSD use __gnuc_va_list instead of _VA_LIST_.  We're hoping the
     * trailing parentheses and semicolon save all other systems from this.
     * Define __not_va_list__ (something harmless and unused)
     * instead of va_list.
     * Don't claim to have defined va_list.
     */
    sed = "s@ va_list @ __gnuc_va_list @\n"
          "s@ va_list)@ __gnuc_va_list)@\n"
          "s@ _VA_LIST_));@ __gnuc_va_list));@\n"
          "s@ va_list@ __not_va_list__@\n"
          "s@\\*va_list@*__not_va_list__@\n"
          "s@ __va_list)@ __gnuc_va_list)@\n"
          "s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;"
           "@typedef \\1 __not_va_list__;@\n"
          "s@GNUC_VA_LIST@GNUC_Va_LIST@\n"
          "s@_NEED___VA_LIST@_NEED___Va_LIST@\n"
          "s@VA_LIST@DUMMY_VA_LIST@\n"
          "s@_Va_LIST@_VA_LIST@";
    test_text = "extern void mumble( va_list);";
 
};



More information about the Gcc-bugs mailing list