Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Build problem for src/dist/nvi/ex/ex.c on evbarm

NetBSD is failing to build for evbarm. The first part of the error message is given below. I'm building for the NSLU2 using the howto instructions at http://wiki.netbsd.se/How_to_install_NetBSD_on_the_Linksys_NSLU2_%28Slug%29_without_a_serial_port%2C_using_NFS_and_telnet. I'm building on a Fedora 7 system, using -current that was gotten from CVS on 06/10/2008. I last successfully built both kernel and world on 06/04/2008 using src fetched from CVS on that 06/03/2008. The config file that I'm using to build with is

include "arch/evbarm/conf/NSLU2"
uaudio* at uhub? port ? configuration ?
audio* at uaudio?
config netbsd-nfs root on npe0 type nfs
config netbsd-sd0 root on sd0a type ffs
config netbsd-sd1 root on sd1a type ffs

The error message is:
dependall ===> usr.bin/nvi/build
#   compile  build/ex.o
/home/hayford/net1/src/obj/tooldir.Linux- -g -Werror -I/home/hayford/net1/src/dist/nvi/regex -I/home/hayford/net1/src/dist/nvi/include -I/home/hayford/net1/src/usr.bin/nvi/build -I. -DGTAGS -D__REGEX_PRIVATE -nostdinc -isystem /home/hayford/net1/src/obj/destdir.evbarm/usr/include -c /home/hayford/net1/src/dist/nvi/ex/ex.c
cc1: warnings being treated as errors
/home/hayford/net1/src/dist/nvi/ex/ex.c: In function 'ex_cmd':
/home/hayford/net1/src/dist/nvi/ex/ex.c:1213: warning: comparison is always true due to limited range of data type

*** Failed target:  ex.o
*** Failed command: /home/hayford/net1/src/obj/tooldir.Linux- -g -Werror -I/home/hayford/net1/src/dist/nvi/regex -I/home/hayford/net1/src/dist/nvi/include -I/home/hayford/net1/src/usr.bin/nvi/build -I. -DGTAGS -D__REGEX_PRIVATE -nostdinc -isystem /home/hayford/net1/src/obj/destdir.evbarm/usr/include -c /home/hayford/net1/src/dist/nvi/ex/ex.c
*** Error code 1

nbmake: stopped in /home/hayford/net1/src/usr.bin/nvi/build


The source code is  from ex.c, and the offending line is 1213:

1210        default:
1211            msgq(sp, M_ERR,
1212                "085|Internal syntax table error (%s: %s)",
1213                ecp->cmd->name, KEY_NAME(sp, *np));

The only comparison I see in the source code at that point is the macro KEY_NAME which is defined in common/gs.h as:

#define KEY_NAME(sp, ch)                                                \
       ((UCHAR_T)(ch) <= MAX_FAST_KEY ?                                \
           sp->gp->cname[(unsigned char)ch].name : v_key_name(sp, ch))
       struct {
               u_char   name[MAX_CHARACTER_COLUMNS + 1];
               u_int8_t len;
       } cname[MAX_FAST_KEY + 1];      /* Fast lookup table. */

MAX_FAST_KEY is defined a few lines above these as 255, so it appears that the warning is valid, since any unsigned char is always less than or equal to 255.

Neither the gs.h or ex.c files have changed recently (though they both were updated on May 18, 2008), so I am at a loss to understand what's going on. In searching through the version that built vs the one that didn't build, I see that ex.c is in a completely different location (usr.bin/vi/ex/ex.c instead of

Any help is greatly appreciated.

Thanks - Don

Home | Main Index | Thread Index | Old Index