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]

Questions about bootstrap problem on Solaris


I'm trying to figure out why bootstrap currently fails on Solaris.

The problem is here (I added the -save-temps):

banach-691% /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/gcc/xgcc -shared-libgcc -B/export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/gcc/ -nostdinc++ -L/export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/src -L/export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/src/.libs -B/pkgs/gcc-3.1v9/sparcv9-sun-solaris2.8/bin/ -B/pkgs/gcc-3.1v9/sparcv9-sun-solaris2.8/lib/ -isystem /pkgs/gcc-3.1v9/sparcv9-sun-solaris2.8/include -nostdinc++ -I/export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/sparcv9-sun-solaris2.8 -I/export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include -I../../../../libstdc++-v3/libsupc++ -I../../../../libstdc++-v3/libmath -g -O2 -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c ../../../../libstdc++!
-v3/src/complex_io.cc -fPIC -DPIC -o .libs/complex_io.o -save-temps
In file included from /usr/include/iso/stdio_iso.h:38,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/gcc/include/stdio.h:36,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/cstdio:50,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/sparcv9-sun-solaris2.8/bits/c++io.h:35,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/bits/fpos.h:44,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/iosfwd:46,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/ios:44,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/istream:44,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/sstream:44,
                 from /export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/sparcv9-sun-solaris2.8/libstdc++-v3/include/complex:51,
                 from ../../../../libstdc++-v3/src/complex_io.cc:30:
/usr/include/stdio_impl.h:30: conflicting types for `struct FILE'
/export/u3/lucier/programs/gcc/gcc-3.1/objdir-sparcv9/gcc/include/floatingpoint.h:52: previous
   declaration as `typedef struct __FILE FILE'

The part of floatingpoint.h around line 52 is:

#ifdef __STDC__
#ifndef __P
#define __P(p)  p
#endif
#ifndef _FILEDEFED
#define _FILEDEFED
typedef __FILE FILE;                        /* line 52 */
#endif
#else
#ifndef __P
#define __P(p)  ()
#endif
#endif

The part of /usr/include/stdio_impl.h around line 30 is:

#ifdef  _LP64

#ifndef _FILE64_H

struct __FILE_TAG {
        long    __pad[16];
};

#endif  /* _FILE64_H */

#else

struct __FILE_TAG       /* needs to be binary-compatible with old versions */
{
#ifdef _STDIO_REVERSE
        unsigned char   *_ptr;  /* next character from/to here in buffer */
        ssize_t         _cnt;   /* number of available characters in buffer */
#else
        ssize_t         _cnt;   /* number of available characters in buffer */
        unsigned char   *_ptr;  /* next character from/to here in buffer */
#endif
        unsigned char   *_base; /* the buffer */
        unsigned char   _flag;  /* the state of the stream */
        unsigned char   _file;  /* UNIX System file descriptor */
        unsigned        __orientation:2; /* the orientation of the stream */
        unsigned        __ionolock:1;   /* turn off implicit locking */
        unsigned        __filler:5;
};

#endif  /*      _LP64   */

So I can't see how __FILE is being redefined here. OK, I figured
it out.  floatingpoint.h includes stdio_tag.h as

#ifdef __STDC__
#include <stdio_tag.h>
#endif

which in turn says

/*
 * Copyright (c) 1998 by Sun Microsystems, Inc.
 * All rights reserved.
 */

#ifndef _STDIO_TAG_H
#define _STDIO_TAG_H

#pragma ident   "@(#)stdio_tag.h        1.3     98/04/20 SMI"

#ifdef  __cplusplus
extern "C" {
#endif

#ifndef __FILE_TAG
#if     defined(__cplusplus) && (__cplusplus < 54321L)
#define __FILE_TAG      FILE
#else
#define __FILE_TAG      __FILE
#endif
typedef struct __FILE_TAG __FILE;
#endif

#ifdef  __cplusplus
}
#endif

#endif  /* _STDIO_TAG_H */

Why this doesn't show up in the list of included files, I don't know.

Perhaps one of the fixinclude experts can help me out here.  I
started with high hopes, but don't know how to proceed.

Brad


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