Subject: R: addicmp.o error while building release
To: None <current-users@NetBSD.org>
From: Alessandro Manunza <alessandromanunza@tiscali.it>
List: current-users
Date: 05/18/2005 01:21:10
>> I ./build.sh a "release" and I get this error:
>What command did you use?

cd /usr/src 
make clean (OK)
make cleandir (OK)
rm -rf /usr/obj && rm -rf /usr/tools (OK)
mkdir /usr/obj && mkdir /usr/tools (OK)
cvs update -dP (OK)
(the cvs ROOT is: export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot")

than I run the builder

./build.sh -O ../obj -T ../tools obj (OK)
./build.sh -O ../obj -T ../tools tools (OK)
./build.sh -O ../obj -T ../tools release (FAILED)

The failed target is always "ipf" 

I try :
./build.sh -O ../obj -T ../tools distribution (FAILED)
./build.sh -O ../obj -T ../tools build (FAILED)

The precise error I get is:

/usr/src/dist/ipf/lib/addicmp.c:39: warning implicit declaration of function
ISDIGIT

I edited addicmp.c and in line 39 I found:

37      if (!fp->fr_proto)      /* to catch lusers */
38              fp->fr_proto = IPPROTO_ICMP;
39      if (ISDIGIT(***cp)) {
40              if (!ratoi(**cp, &i, 0, 255)) {

No other occurrence in the code, but there are two includes at the beginning
of addicmp.c:

#include "ctype.h"
#include "ipf.h"

Than I located these:

# locate ipf.h
/usr/src/dist/ipf/ipf.h
# locate ctype.h
/usr/obj/destdir.i386/usr/include/ctype.h
/usr/current-20050506/usr/include/ctype.h
/usr/local/src/usr/include/ctype.h
/usr/src/include/ctype.h



and inside all these ctype.h I found the searched declaration:

int     isdigit(int);
...
#define isdigit(c)      ((int)((_ctype_ + 1)[(c)] & _N))

Here I'm stopping, because I don't know how to progress the debugging of
this error :(

An other particularity is:
when I ask for ipf version in my userspace I get:

# ipf -V
ipf: IP Filter: v4.1.3 (396)
User/kernel version check failed
Kernel: IP Filter: v4.1.8               

But I think that if I'm rebuilding a new release from source just
cvs-updated, it is not very important what version of ipf I have, isn't it?


Any idea is VERY welcomed.
Thank you very much for your attention (end for the promptness of previous
answer!)

Alessandro Manunza, Italy