[cmake-developers] HP-UX Curses questions

Ådne Hovda ahovda at openit.com
Tue Nov 18 06:16:22 EST 2014


On 17.11.2014 16:36, Brad King wrote:
 >>    /* get around odd bug on aCC and itanium */
 >> -#if defined(__hpux) && defined(__ia64)
 >> +#if defined(__hpux)
 >>    #define getmaxx __getmaxx
 >>    #define getmaxy __getmaxy
 >>    #endif
 >
 > What is the purpose of this part of the change?  Should this block
 > be conditional on use of cur_colr?

First off, I'm by no means an expert on curses, I'm just trying to 
resolve the issues with compiling a 64-bit HPPA package on HP-UX 11.11, 
which fails due to the cur_colr library not being available in 64-bit.

X/Open Curses does not specify the getmax[xy]() functions/macros, only 
getmaxyx(), so the Xcurses lib on HP-UX does not export those functions 
and AFAIKT in some other implementations these functions are simply 
header macros. cur_colr happens to provide getmax[xy] as functions.

It's really difficult to get the complete picture since there are so 
many iterations and implementations, especially on old UNIX machines, 
but from checking the ones I have access to, both AIX 5.1, Solaris 8, 
HP-UX 11.11, 11.23, RHEL 3 and onwards all have getmaxyx() (with 
_XOPEN_SOURCE_EXTENDED). So for CMake's part - of course depending on 
how old systems you want to support - the better solution would probably 
be to just use getmaxyx() everywhere in cmForm as is already the case in 
ccmake.

I'm using GCC on all platforms except Windows, so I have not tested my 
changes with aCC, Xlc and the Sun compiler, but ccmake builds fine on 
sol8sparc, aix51, hp-ux11.11pa, hp-ux11.23ia and Linux in both 32 and 64 
bit mode. Also, I don't have a Mac to test on.

I've pushed my changes to 
https://github.com/aadnehovda/CMake/tree/curses-hpux-fix and can create 
a pull request if you think this is okay.

Best regards,
Ådne Hovda



More information about the cmake-developers mailing list