[OpenAFS-devel] OpenAFS Port for IA64 (Itanium)

chas williams chas@cmf.nrl.navy.mil
Sat, 28 Jul 2001 13:14:21 -0400


ok, i put up what i have so far at:

ftp://ftp.cmf.nrl.navy.mil/pub/chas/openafs/ia64_linux24

i have included the README i left in that directory which contains
the latest notes on the port.  the biggest problem with the port
probably be klog not working.  i really cant debug that problem
since we use aklog/kerberos5.  i suspect its a 64-bit/endian issue
in the des library.  next week i will work on merges the diffs 
into the openafs 1.1.1 release so i can start submitting my changes.
after that fixing afs so its once again a loadable module is
probably next on the list.  after that, finalizing the lwp issue
would be a good idea.  i am of course, open to comments and
suggestions, and even help.

from the README:

here is my initial port of openafs to linux_ia64

problems:
	. afs is not a loadable module
		- modules are not fixed gp so patching a syscall to a 
		  non gp function doesnt work -- the right way to
		  fix this would be provide a little stub from
	 	  the syscalls to the afs routines that does a fixup
		  for the gp.  insmod already does this but i have
		  no idea were the fixup start is located for module
		  routines.

	. pag's dont work
		- same problem as above but other direction.  need
		  to call constant-gp.

	. klog doesnt work
		- no idea, i use aklog so it havent looked at this

	. need a recent version of glibc
		- setjmp/longjmp dont save/restore the stack pointer
		  so afs currently uses ucontext().  a 'better' fix
		  would be one of two things:  port lwp over to pthreads
		  or write the needed routines directly in assembly

usage:

	apply the following patch to /usr/src/linux/Makefile

--- Makefile.000        Tue Jul  3 13:32:20 2001
+++ Makefile    Mon Jul 23 09:26:44 2001
@@ -253,6 +253,7 @@
                $(DRIVERS) \
                $(NETWORKS) \
                $(LIBS) \
+               afs.o \
                --end-group \
                -o vmlinux
        $(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$
$\)\|\(LASH[RL]DI\)' | sort > System.map

	copy the appropriate afs-?.?.?.o object from the modload directory to
	/usr/src/linux/afs.o (you might need the mp version)

	run make to build a new kernel.  afs will be directly linked
	into the kernel.

	reboot using this new kernel

	finish the afs installation as normal.  you will need to comment
	the insmod section of the afs startup script since this has
	already ben handled by the previous step