[GRASS5] grass-5.0.0 on SGI IRIX 6.5

Markus Neteler neteler at itc.it
Wed Dec 11 04:39:01 EST 2002

On Tue, Dec 10, 2002 at 11:44:35PM +0000, Glynn Clements wrote:
> Markus Neteler wrote:
> > [...xterm explanations...]
> > 
> > I must admit that I am no termcap expert.
> > >From a user's perspective (which is not necessarily a developer's
> > perspective) I "just" see that previous functionionality is gone.
> > IMHO GRASS should support cursor keys without changing the
> > system's settings (support out of the box).
> Garbage in, garbage out. If the system lies about which codes are
> needed to enable the cursor keys and/or which codes the cursor keys
> generate, curses won't be able to recognise that a cursor key was
> pressed.

> However, it isn't certain that this is a termcap/terminfo issue. Did
> the configure script detect keypad()? The message looks like:
> 	checking for keypad in -lncurses... yes

checking for keypad in -lncurses... yes

uname -a
Linux thuille 2.4.18-18.7.xsmp #1 SMP Wed Nov 13 19:01:42 EST 2002 i686 unknown

> Or check whether HAVE_KEYPAD is defined in config.h,

cat src/include/config.h | grep HAVE_KEYPAD
#define HAVE_KEYPAD 1

> or whether
> running "nm -D" on a vask-using program shows a dependency upon
> "keypad".

nm -D dist.i686-pc-linux-gnu/etc/set_data | grep keypad
-> nothing

nm -D dist.i686-pc-linux-gnu/etc/bin/inter/v.digit  | grep keypad
-> nothing
> Which library is actually being used? (run "ldd" on any vask-using
> program, e.g. etc/set_data).

ldd dist.i686-pc-linux-gnu/etc/set_data
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x40017000)
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4006f000)
        libm.so.6 => /lib/libm.so.6 (0x40073000)
        libz.so.1 => /usr/lib/libz.so.1 (0x40095000)
        libc.so.6 => /lib/libc.so.6 (0x400a3000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

> What is $TERM?
echo $TERM

> Are either of TERMCAP or TERMINFO set in the environment? 
set | grep TERM

printenv | grep TERM

> Do you have a terminfo entry for $TERM?
locate terminfo | grep 'xterm$'

To be sure I have recompiled set_data:

gcc -I/hardmnt/thuille1/ssi/cvsgrass_exp/src/include -O3 -mcpu=pentiumpro -Wall -DD_LOCATION_NAME=\"\" -DD_GISDBASE=\"\" -DVERSION_NUMBER=\"'5.0.1-cvs'\" -DVERSION_UPDATE_PKG=\"''\"  -c set_data.c -o OBJ.i686-pc-linux-gnu/set_data.o
set_data.c: In function `list_mapsets':
set_data.c:296: warning: suggest parentheses around assignment used as truth
valueset_data.c: At top level:
/hardmnt/thuille1/ssi/cvsgrass_exp/src/include/gis.h:35: warning: `GRASS_copyright' defined but not used
gcc -L/hardmnt/thuille1/ssi/cvsgrass_exp/src/libes/LIB.i686-pc-linux-gnu  -o /amd/ssi0/ssi/neteler/cvsgrass_exp/dist.i686-pc-linux-gnu/etc/set_data OBJ.i686-pc-linux-gnu/set_data.o OBJ.i686-pc-linux-gnu/mke_mapset.o OBJ.i686-pc-linux-gnu/mke_loc.o OBJ.i686-pc-linux-gnu/chk_dbase.o OBJ.i686-pc-linux-gnu/other.o -lgedit -lgis -lvask -lncurses -lbsd-compat -lm  -lz

nm -D dist.i686-pc-linux-gnu/etc/set_data | grep keypad
-> again nothing

grep ncurses src/CMD/head/head.i686-pc-linux-gnu
CURSES              = -lncurses $(COMPATLIB)

locate libncurses

ls -la /usr/lib/libncurses.so
lrwxrwxrwx 1 root root  15 Aug  1  2001 /usr/lib/libncurses.so -> libncurses.so.5

nm -D /usr/lib/libncurses.so | grep keypad
00028b70 T _nc_keypad
00028920 T keypad

Layman's summary:
It seems that the symbol is present, detected, but not used in GRASS although
defined in config.h.


More information about the grass-dev mailing list