gdb/2045: gdb 6.4 compilation fails on HPUX 10

Ralf Fassel
Tue Dec 6 10:48:00 GMT 2005

The following reply was made to PR gdb/2045; it has been noted by GNATS.

From: Ralf Fassel <>
To: Mark Kettenis <>
Subject: Re: gdb/2045: gdb 6.4 compilation fails on HPUX 10
Date: Tue, 6 Dec 2005 11:41:28 +0100

 * Mark Kettenis
 | I've been looking into the problem today.  I remember stumbling
 | across the -D_LARGEFILE64_SOURCE issue, and could indeed reproduce
 | it.  I'm working on a proper fix, but it seems the HP-UX 10.20
 | header files are seriously borked, so the "right" fix doesn't quite
 | work :(.
 I think this one is the bigger 'problem' of the two I reported, so it
 would be good if this could be resolved.
 | I can't reproduce the curses problem though.  That's with gcc-2.95.3
 | though.  Maybe this is a bug in GCC 4.0.2.
 I don't think so.  The /usr/include/curses.h header seems broken (see
 below), and gcc just runs 'fixincludes' on it.
 | Or maybe you need to patch the machine.
 LOL, patch a HP-UX 10 machine...  I guess HP by now refuses to know
 what HP-10 *is* :-/  But in fact I think this is the only option...
 | The box I tried has
 |   700QPK1020                    ACE.199906.01  Workstation Quality Pack for HP-UX 10.20 (June 1999) 
 |   B6193DA                       ACE.199906.03  Workstation ACE for HP-UX 10.20 (June 1999) 
 |   B6378CA                       ACE.199906.01  Networking ACE for HP-UX 10.20 (June 1999) 
 B6193EA			ACE.199912.01  Workstation ACE for HP-UX 10.20 (December 1999)
 We bought this machine in 2003 with HP-11 installed, but had to switch
 back to HP-10 for some customer.
 | I don't think the -D__HP_CURSES is the way to go, since that invokes
 | the HP curses stuff instead of the standardized X/Open curses.
 I don't think this is a proper solution either, but at least the
 curses.h header on my machine contain for the getyx() macro:
     #if !defined(_XOPEN_SOURCE_EXTENDED) || defined(__HP_CURSES)
     #define	getyx(win,y,x)	 y = win->_cury, x = win->_curx
     #define getyx(__win,__y,__x)	{ WINDOW *__wi; \
 				     __wi = __win; ((__y) = __getcury(__wi), \
 				     (__x) = __getcurx(__wi)) }
     #define	getbegyx(__win,__y,__x)	{ WINDOW *__wi; \
 				     __wi = __win; ((__y) = __getbegy(__wi), \
 				     (__x) = __getbegx(__wi)) }
     #define	getmaxyx(__win,__y,__x)	{ WINDOW *__wi; \
 				      __wi = __win; ((__y) = __getmaxy(__wi), \
 				     (__x) = __getmaxx(__wi)) }
     #define	getparyx(__win,__y,__x)	{ WINDOW *__wi; \
 				     __wi = __win; ((__y) = __getpary(__wi), \
 				     (__x) = __getparx(__wi)) }
     extern	int	__getcury(WINDOW *);
     extern	int	__getcurx(WINDOW *);
     extern	int	__getbegy(WINDOW *);
     extern	int	__getbegx(WINDOW *);
     extern	int	__getmaxy(WINDOW *);
     extern	int	__getmaxx(WINDOW *);
     extern	int	__getpary(WINDOW *);
     extern	int	__getparx(WINDOW *);
     #endif /* XOPEN header 
 	      !defined(_XOPEN_SOURCE_EXTENDED) || defined(__HP_CURSES) */
 Note the else-branch macros, they can't ever work (all missing a
 semicolon before the closing "}").  What does your curses.h contain
 Well, since I almost always use gdb inside 'ddd' or an emacs shell,
 maybe I can get away with HP curses... :-)

More information about the Gdb-prs mailing list