This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Problems building 3.3.2 on IRIX 6.5.19m


Ran into problems building 3.3.2 on IRIX 6.5.19m:

/opt/build/gcc-3.3.2-objdir/gcc/xgcc
-B/opt/build/gcc-3.3.2-objdir/gcc/
-B/opt/TWWfsw/gcc332/mips-sgi-irix6.5/bin/
-B/opt/TWWfsw/gcc332/mips-sgi-irix6.5/lib/ -isystem
/opt/TWWfsw/gcc332/mips-sgi-irix6.5/include -c -DSkip_f2c_Undefs
-DAllow_TYQUAD -I. -I/opt/build/gcc-3.3.2/libf2c/libI77 -I..
-I/opt/build/gcc-3.3.2/libf2c/libI77/.. -DHAVE_CONFIG_H -W -Wall -O2
-g /opt/build/gcc-3.3.2/libf2c/libI77/backspace.c   -DPIC -o
.libs/backspace.o
In file included from
/opt/build/gcc-3.3.2-objdir/gcc/include/stdio.h:18,
                 from /opt/build/gcc-3.3.2/libf2c/libI77/fio.h:2,
                 from
/opt/build/gcc-3.3.2/libf2c/libI77/backspace.c:4:
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h: In
function `snprintf':
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h:310:
error: `va_list' undeclared (first use in this function)
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h:310:
error: (Each undeclared identifier is reported only once
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h:310:
error: for each function it appears in.)
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h:310:
error: parse error before "_ap"
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h:313:
error: `_ap' undeclared (first use in this function)

The problem is that in
/opt/build/gcc-3.3.2-objdir/gcc/include/internal/stdio_core.h we have:
  static int
  snprintf(char *_string, size_t _cnt, const char *_format, ...)
  {
          va_list _ap;

I looked at inclhack.def from 3.3.2 and see this:
  fix = {
      hackname = stdio_va_list;
      files    = stdio.h;
      files    = internal/stdio_core.h;
      files    = internal/wchar_core.h;
      bypass   = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_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_));@ __gnuc_va_list));@\n"
            "s@ __VA_LIST__));@ __gnuc_va_list));@\n"
            ...

However, in GCC 3.3.1, inclhack.def looks like this:
  fix = {
      hackname = stdio_va_list;
      files    = stdio.h;
      files    = internal/stdio_core.h;
      files    = internal/wchar_core.h;
      bypass   = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list';
      ...
      sed = "s@ va_list @ __gnuc_va_list @\n"
            "s@ va_list)@ __gnuc_va_list)@\n"
            "s@va_list _ap;@__gnuc_va_list _ap;@\n"
            "s@(va_list)&@(__gnuc_va_list)\\&@\n"
            "s@ _VA_LIST_));@ __gnuc_va_list));@\n"
            "s@ __VA_LIST__));@ __gnuc_va_list));@\n"

The only difference is that in 3.3.2, the following line was removed:
            "s@va_list _ap;@__gnuc_va_list _ap;@\n"

Why? Adding this line back does make stdio_core.h under 3.3.2 correct.

-- 
albert chin (china@thewrittenword.com)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]