[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