[OpenAFS-devel] trying to compile for sunx86_58

Jeffrey Hutzelman Jeffrey Hutzelman <jhutz@cmu.edu>
Fri, 14 Sep 2001 21:32:25 -0400 (EDT)


On Tue, 11 Sep 2001, John Tang Boyland wrote:

> I've been able to make some progress updating Makefiles
> for sunx86_58 (thanks to Fatima Streit <fatima@ifh.de>)
> but I've run into some other problems.
> 
> First (and simplest), running "make clean" fails in
> 	/users/csfac/boyland/src/openafs-1.1.1a/src/libuafs'
> 	make[2]: *** No rule to make target `clean'.  Stop.
> I should think that would be easy to fix.

That's normal -- you can't 'make clean' in libafs or libuafs unless you've
done a build of those directories.  That's because the Makefiles in those
directories are constructed as part of the build process.  I expect this
mess will be cleaned up in a future release.

> Next, the code assumes that IPv6 is available even though IPv6 is
> optional in Solaris 8 (and not installed on the machine I am compiling
> on):
> 	/opt/SUNWspro/bin/cc -I. -I..
>        -I/users/csfac/boyland/src/openafs-1.1.1a/src/config -DAFSDEBUG
>        -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT
>        -Dsun4c -DSUN4C_60 -DNFSCLIENT -DSYSACCT -DOLDSCSI -DVDDRV
>        -D_KERNEL -DSYSV -dn -c ../afs/afs_analyze.c;
> 	"../afs/afs_analyze.c", line 44: cannot find include file:
>        <netinet/ip6.h>
> 	cc: acomp failed for ../afs/afs_analyze.c
> afs_{cell,conn,server,user,util,volume}.c in the same directory have
> the same problem, as does src/rx/SOLARIS/rx_knet.c

Um..  Do you get a different kernel if you don't have IPV6 installed?
The files you've mentioned are kernel code, and need to be compiled in the
same environment as the kernel.  My guess is that you'll need to have the
IPV6 headers installed in order for the kernel code to compile.  You can't
just "turn it off"; the inclusion of this header is likely the direct
result of some kernel data structure needing it.

> (by the way, why are -DSUN4C_60 and -Dsun4c in the flags?  This seems
> very strange indeed.)

I can't say for certain, but I suspect this dates from the days when
Solaris still supported the sun4c architecture (i.e. Solaris 7, which is
still supported by OpenAFS).  They presumably insure that no code makes
assumptions which are true only on newer hardware, thus allowing the same
kernel module to run on all SPARC systems.  You will likely want to change
these flags for sunx86_58.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
   Sr. Research Systems Programmer
   School of Computer Science - Research Computing Facility
   Carnegie Mellon University - Pittsburgh, PA