This is the mail archive of the gcc-bugs@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]

alpha-dec-osf5.0 fixinclude problem


I am trying to 'make bootstrap' the 3.0 branch on a Tru64 5.0a machine.

It works fine as far as building GCC, but it fails when it is trying to compile 
one of the libstdc++v3 files.

I am pretty sure the problem is with one of the header files processed by 
fixinclude.

I get the following output from a make
-----------------
/usr/local/src/gcc.devel/gcc/objdir-gcc/gcc/g++ 
-B/usr/local/src/gcc.devel/gcc/objdir-gcc/gcc/ -nostdinc++ 
-L/usr/local/src/gcc.devel/gcc/objdir-gcc/alpha-dec-osf5.0/libstdc++-v3/src 
-L/usr/local/src/gcc.devel/gcc/objdir-gcc/alpha-dec-osf5.0/libstdc++-v3/src/.li
bs -B/usr/local/alpha-dec-osf5.0/bin/ -B/usr/local/alpha-dec-osf5.0/lib/ 
-isystem /usr/local/alpha-dec-osf5.0/include -I../../../../libstdc++-v3/../gcc 
-I../../../../libstdc++-v3/../include -I../../../../libstdc++-v3/include 
-I../../../../libstdc++-v3/include/std -I../../../../libstdc++-v3/include/c_std 
-I../include -I../../../../libstdc++-v3/libsupc++ -g -O2 -mieee 
-fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline 
-fdiagnostics-show-location=once -g -c 
./../../../libstdc++-v3/libsupc++/pure.cc   -DPIC -o pure.o

/usr/local/src/gcc.devel/gcc/objdir-gcc/gcc/include/stdio.h: In function `void 
   __cxa_pure_virtual()':

/usr/local/src/gcc.devel/gcc/objdir-gcc/gcc/include/stdio.h:245: too many 
   arguments to function `int fputs()'

../../../../libstdc++-v3/libsupc++/pure.cc:53: at this point in file

make[3]: *** [pure.lo] Error 1
------------------

line 245 of stdio.h is:    extern int      fputs __((const char *, FILE *));
line 53 of pure.cc is:     writestr ("pure virtual method called\n");

and the pertinent lines of output from compiling the above with -E is:

# 242 "/usr/local/src/gcc.devel/gcc/objdir-gcc/gcc/include/stdio.h" 3
extern int fgetc ();
extern char *fgets ();
extern int fputc ();
extern int fputs ();
extern char *gets ();
extern int puts ();
extern int ungetc ();
extern int fseek ();
.
.
.
# 69 "/usr/local/src/gcc.devel/gcc/objdir-gcc/gcc/include/sys/types.h" 3
extern "C" {

extern "C" {

extern void __terminate(void) __attribute__ ((__noreturn__));

void
__cxa_pure_virtual (void)
{
  fputs("pure virtual method called\n", (&_iob[2]));
  __terminate ();
}

}

/ * EOF (End Of File) */
/*   - Added by me, but I want to be clear that there is nothing beyond the 
above, including no more ' }'s */
-----------------

I admit to being a little rusty on my C++, so I'm not clear as to what the 
problem is, but note that the 'extern "C" {' occurs twice, but is only 
terminated once.

Could that somehow be the culprit, and if so, is the problem likely in the 
fixed types.h file?

Let me know if there are any files you would like to see in total.

Thanks
Greg Freemyer


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