[OpenAFS-devel] build failure in kauth/client.c

Benjamin Kaduk kaduk@MIT.EDU
Mon, 22 Nov 2010 00:25:36 -0500 (EST)


Hi all,

Pulling up to a current master to test my latest submission, I encounter a 
build error (on FBSD):
cc -D_REENTRANT -DAFS_PTHREAD_ENV -DAFS_FBSD50_ENV -O2 -pipe -fPIC 
-L/usr/ports/net/openafs-devel/work/openafs/lib  -o linktest  ./linktest.c 
-I. -I.. -I../nfs  -I/usr/ports/net/openafs-devel/work/openafs/src 
-I/usr/ports/net/openafs-devel/work/openafs/src/afs 
-I/usr/ports/net/openafs-devel/work/openafs/src/afs/UKERNEL 
-I/usr/ports/net/openafs-devel/work/openafs/src/config 
-I/usr/ports/net/openafs-devel/work/openafs/src/rx 
-I/usr/ports/net/openafs-devel/work/openafs/src/rx/UKERNEL 
-I/usr/ports/net/openafs-devel/work/openafs/src/rxkad 
-I/usr/ports/net/openafs-devel/work/openafs/src/util 
-I/usr/ports/net/openafs-devel/work/openafs/src 
-I/usr/ports/net/openafs-devel/work/openafs/src/afs/UKERNEL 
-I/usr/ports/net/openafs-devel/work/openafs/src/afs 
-I/usr/ports/net/openafs-devel/work/openafs/src/util 
-I/usr/ports/net/openafs-devel/work/openafs/src/rxkad 
-I/usr/ports/net/openafs-devel/work/openafs/src/config 
-I/usr/ports/net/openafs-devel/work/openafs/src/fsint 
-I/usr/ports/net/openafs-devel/work/openafs/src/vlserver 
-I/usr/ports/net/openafs-devel/work/openafs/src/libuafs 
-I/usr/ports/net/openafs-devel/work/openafs/src/auth 
-I/usr/ports/net/openafs-devel/work/openafs/include 
-I/usr/ports/net/openafs-devel/work/openafs/include/afs -DUKERNEL 
UAFS/libuafs.a /usr/ports/net/openafs-devel/work/openafs/lib/libcmd.a 
/usr/ports/net/openafs-devel/work/openafs/lib/libafsutil.a  -lafshcrypto 
-lrokenafs -lpthread
UAFS/libuafs.a(client.o)(.text+0x44c): In function `ka_StringToKey':
/usr/ports/net/openafs-devel/work/openafs/src/kauth/client.c:67: undefined 
reference to `crypt'
*** Error code 1

Stop in /usr/ports/net/openafs-devel/work/openafs/src/libuafs.



This is curious, as there is a crypt() library call with that prototype 
available, whose man page says that only <unistd.h> is required.  client.c 
has that include, wrapped in #ifdef HAVE_UNISTD_H.  So I am forced to 
conclude that HAVE_UNISTD_H is somehow not defined for my environment.

Before I start bisecting back, does anyone have thoughts on why this might 
have broken?

Thanks,

Ben