[OpenAFS] OpenAFS 1.0.3 Solaris8 with NAMEI...

Jeffrey B. Woodward Jeffrey.B.Woodward@Dartmouth.EDU
Wed, 28 Mar 2001 15:57:03 -0500


I found the following little gem of information in the OpenAFS-info mailing
list archive:

> Hartmut Reuter also contributed patches making it possible to build and
> use the namei fileserver on Solaris 8 by just defining
> #define AFS_NAMEI_ENV     1   /* User space interface to file system */
> in src/config/param.sun4x_58.h before building, if you wish to go that
> route.

If I understand things correctly, the NAMEI interface will leave my /vicepX
partitions in their native UFS format, thus allowing me to use native
ufsdump/ufsrestore and fsck (and perhaps even UFS logging). If this is true,
and since I am not "migrating" existing data, this sounds ideal to me.
However, I have ran into some problems trying to build the source
distribution with AFS_NAMEI_ENV enabled:

=============================================================
/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest/bin/install dirpath.h
/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest/include/afs
/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest/bin/install
pthread_nosigs.h
/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest/include/afs
/opt/SUNWspro/bin/cc -O -I/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest
/include -dy -Bdynamic  -c  assert.c
/opt/SUNWspro/bin/cc -O -I/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest
/include -dy -Bdynamic -c base64.c
/opt/SUNWspro/bin/cc -O -I/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest
/include -dy -Bdynamic  -c  casestrcpy.c
/opt/SUNWspro/bin/cc -O -I/usr/local/src/openafs/openafs-1.0.3/sun4x_58/dest
/include -dy -Bdynamic -c ktime.c
"./afsutil.h", line 111: syntax error before or at: u_int64_t
"./afsutil.h", line 111: warning: undefined or missing type for: u_int64_t
cc: acomp failed for ktime.c
*** Error code 2
make: Fatal error: Command failed for target `ktime.o'
Current working directory
/usr/local/src/openafs/openafs-1.0.3/sun4x_58/obj/util*** Error code 1
make: Fatal error: Command failed for target `util'
Current working directory /usr/local/src/openafs/openafs-1.0.3
*** Error code 1
make: Fatal error: Command failed for target `install'
Current working directory /usr/local/src/openafs/openafs-1.0.3
*** Error code 1
make: Fatal error: Command failed for target `all'
=============================================================

This problem was worked around by #include'ing <sys/types.h> in afsutil.h.
See the file diff below:
bash-2.03# diff ./sun4x_58/obj/util/afsutil.h
./sun4x_58/obj/util/afsutil.h.orig107,108d106
< typedef uint64_t u_int64_t;
<

The next problem occurs much later in build process...
=============================================================
/opt/SUNWspro/bin/cc -Dsun4x_58 -O -I. -I/usr/local/src/openafs/openafs-1.0.
3/sun4x_58/dest/include  -dy -Bdynamic -g   -c  common.c
/opt/SUNWspro/bin/cc -Dsun4x_58 -O -I. -I/usr/local/src/openafs/openafs-1.0.
3/sun4x_58/dest/include  -dy -Bdynamic -g   -c  ihandle.c
/opt/SUNWspro/bin/cc -Dsun4x_58 -O -I. -I/usr/local/src/openafs/openafs-1.0.
3/sun4x_58/dest/include  -dy -Bdynamic -g   -c  namei_ops.c
"namei_ops.c", line 808: undefined symbol: LOCK_EX
"namei_ops.c", line 823: undefined symbol: LOCK_UN
"namei_ops.c", line 843: undefined symbol: LOCK_EX
"namei_ops.c", line 880: undefined symbol: LOCK_UN
"namei_ops.c", line 907: undefined symbol: LOCK_EX
"namei_ops.c", line 946: undefined symbol: LOCK_UN
cc: acomp failed for namei_ops.c
*** Error code 2
make: Fatal error: Command failed for target `namei_ops.o'
Current working directory
/usr/local/src/openafs/openafs-1.0.3/sun4x_58/obj/vol
*** Error code 1
make: Fatal error: Command failed for target `vol'
Current working directory /usr/local/src/openafs/openafs-1.0.3
*** Error code 1
make: Fatal error: Command failed for target `install'
Current working directory /usr/local/src/openafs/openafs-1.0.3
*** Error code 1
make: Fatal error: Command failed for target `all'
=============================================================


I haven't attempted to "work around" this problem, yet. I thought I'd first
ask the mailing list to see if I am doing something that is obviously wrong.

BTW: It is not clear to me that if you define AFS_NAMEI_ENV in
src/config/param.sun4x_58.h where or not you should then remove the define
for  AFS_VFS_ENV??? I have tried it both ways and arrive at the same spot in
both cases.

As always, any help is appreciated.

Thanks,
-Jeff Woodward
 Systems and Database Administrator
 The fMRI Data Center
 Dartmouth College
 6162 Moore Hall
 Jeffrey.B.Woodward@Dartmouth.EDU