Subject: | fix for AIX bug |
Date: | Tue, 5 Jan 2010 12:29:12 -0800 |
To: | bug-Curses-UI [...] rt.cpan.org |
From: | Shava Smallen <ssmallen [...] sdsc.edu> |
Hi,
I am using the Curses::UI module for our software (version 0.9607). I encountered a strange problem on a AIX machine where the simple hello world program would not work -- when any key was pressed, the program would crash. Using the -compat option, I was able to get the error message to print.
Curses constant 'KEY_RESIZE' is not defined by your vendor at /hpcx/home/e24/e24/ssmallen/incaReporterManager/Inca-ReporterManager-10.12052/contrib/Curses-1.24/Curses-UI-0.9607/examples/../lib/Curses/UI.pm line 386
It looks like the implementation of the KEY_RESIZE in the underlying Curses library on this AIX machine throws an exception since it is not supported.
My fix was to enclose line 387 in an eval statement like
eval { $key = '-1' if $key eq KEY_RESIZE();};
So far, this appears to not have any bad consequences for me. This problem looks similar to an existing bug report
http://rt.cpan.org/Public/Bug/Display.html?id=49521
I enclose some system version information below
Thanks,
Shava
bash-2.05a$ uname -a
AIX l1f401 3 5 00CD7EAF4C00
bash-2.05a$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 1) configuration:
Platform:
osname=aix, osvers=5.3.0.0, archname=aix
uname='aix l1f401 3 5 00cd7eaf4c00 '
config_args='-de -Dprefix=/hpcx/home/e24/e24/ssmallen/perl5.10'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc -q32', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -I/usr/local/include -q32 -D_LARGE_FILES -qlonglong',
optimize='-O',
cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -I/usr/local/include'
ccversion='8.0.0.13', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld', ldflags =' -brtl -bdynamic -L/usr/local/lib -b32 -bmaxdata:0x80000000'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lc
perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lc
libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -bE:/hpcx/home/e24/e24/ssmallen/perl5.10/lib/5.10.1/aix/CORE/perl.exp'
cccdlflags=' ', lddlflags=' -bhalt:4 -G -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -bnoentry -lc -lm -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
USE_LARGE_FILES USE_PERLIO
Built under aix
Compiled at Jan 5 2010 18:33:06
@INC:
/hpcx/home/e24/e24/ssmallen/perl5.10/lib/5.10.1/aix
/hpcx/home/e24/e24/ssmallen/perl5.10/lib/5.10.1
/hpcx/home/e24/e24/ssmallen/perl5.10/lib/site_perl/5.10.1/aix
/hpcx/home/e24/e24/ssmallen/perl5.10/lib/site_perl/5.10.1
.
--------------------------------------------------------------
Shava Smallen, San Diego Supercomputer Center
9500 Gilman Dr. MS 0505
La Jolla, CA 92093-0505
Phone: (858)822-0962; Fax: (858) 822-0861