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]

gcc 2.95.2 fixincludes on IRIX, curses.h


Hi all,
gcc 2.95.2 on IRIX 6.5.9f.

`fixincludes' fixes /usr/include/curses.h to avoid typedefs of `bool',
cf. gcc/fixinc/fixinc.irix

However, curses.h on this OS seems already ok, since the typedefs are
properly wrapped for C++:
    #if !defined(__cplusplus) || !defined(_BOOL)
    typedef char bool;
    #endif /* _BOOL */

(The `ifdefs' are not there on IRIX 5.2 headers.)

Now the `fixincludes' fix in the gcc-specific include directory is
    #ifdef __cplusplus
    # define bool __curses_bool_t
    #endif

which does not work because `__curses_bool_t' seems not defined at
compile time.  I ran into this when trying to compile mysql-3.23.29:

    gmake[2]: Entering directory
`/disk2/ralf/Software/mysql-3.23.27-beta/client'
    gcc -DUNDEF_THREADS_HACK -I./../include 				-I../include -I./.. -I..
				-I..    -O3 -DDBUG_OFF -D_BOOL -c mysql.cc
    In file included from
/software/gcc/2.95.2/IRIX-6/lib/gcc-lib/mips-sgi-irix6.5/2.95.2/include/curses.h:5,
		     from mysql.cc:47:
    /usr/include/curses.h:108: syntax error before `,'
    /usr/include/curses.h:139: syntax error before `;'
    /usr/include/curses.h:281: `__curses_bool_t' was not declared in this
scope
    /usr/include/curses.h:281: warning: `_meta' initialized and declared
`extern'
    /usr/include/curses.h:297: type specifier omitted for parameter
    /usr/include/curses.h:336: syntax error before `('
    /usr/include/curses.h:384: type specifier omitted for parameter
    /usr/include/curses.h:386: type specifier omitted for parameter
    In file included from
/software/gcc/2.95.2/IRIX-6/lib/gcc-lib/mips-sgi-irix6.5/2.95.2/include/curses.h:5,
		     from mysql.cc:47:
    /usr/include/curses.h:852: type specifier omitted for parameter
    /usr/include/curses.h:855: type specifier omitted for parameter
    /usr/include/curses.h:856: type specifier omitted for parameter
    /usr/include/curses.h:857: type specifier omitted for parameter
    /usr/include/curses.h:858: type specifier omitted for parameter
    /usr/include/curses.h:859: type specifier omitted for parameter
    /usr/include/curses.h:860: type specifier omitted for parameter
    /usr/include/curses.h:1011: type specifier omitted for parameter

Avoiding the `fixed' gcc-specific include file (by renaming it so gcc
won't find it) seems to work.

I'd suggest to not fix curses.h on IRIX 6.5.9 (and later?) at least.

Regards
R'

-- 
Sent through GMX FreeMail - http://www.gmx.net


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