[OpenAFS-devel] Progress with OpenAFS-1.2.8 on HP-UX 11.22 on IA64

Douglas E. Engert deengert@anl.gov
Wed, 18 Dec 2002 10:44:11 -0600


I am attaching the mods need to get OPenAFS-1.2.8 to compile on
an HP-UX IA64 system.  The client routines like tokens, and fs
appear to work, and the libafs64.nonfs.a builds. But the
libafs64.noafs.a has not been tested yet. 

As Carl pointed out, the code is still using the A type semaphores.
But it looks like the mbuf.h is no longer actually used, A few
unused routines where being built which required it. There
where also reference to mpproc_info for statistics. These have
been commented out for now. 



*** ./,Makefile.in	Tue Sep 10 17:33:24 2002
--- ./Makefile.in	Tue Dec 17 14:34:14 2002
***************
*** 243,249 ****
  
  tviced: project viced vlserver libafsrpc libafsauthent
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux110) \
  		${COMPILE_PART1} tviced  ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT viced for ${SYS_NAME} ;; \
--- 243,249 ----
  
  tviced: project viced vlserver libafsrpc libafsauthent
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*) \
  		${COMPILE_PART1} tviced  ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT viced for ${SYS_NAME} ;; \
***************
*** 264,270 ****
  
  gtx: project null auth # kauth rxkad ?
  	case ${SYS_NAME} in \
! 	  rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | *fbsd*) \
  		$(RM) -f ${TOP_LIBDIR}/libtermlib.a; \
  		ln -s libnull.a ${TOP_LIBDIR}/libtermlib.a; \
  		${COMPILE_PART1} gtx ${COMPILE_PART2};; \
--- 264,270 ----
  
  gtx: project null auth # kauth rxkad ?
  	case ${SYS_NAME} in \
! 	  rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | *fbsd* | hp_ux1122) \
  		$(RM) -f ${TOP_LIBDIR}/libtermlib.a; \
  		ln -s libnull.a ${TOP_LIBDIR}/libtermlib.a; \
  		${COMPILE_PART1} gtx ${COMPILE_PART2};; \
***************
*** 414,420 ****
  
  tbutc: project bubasics butm budb bucoord cmd butc
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux110) \
  		${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT butc for ${SYS_NAME} ;; \
--- 414,420 ----
  
  tbutc: project bubasics butm budb bucoord cmd butc
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux11*) \
  		${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT butc for ${SYS_NAME} ;; \
***************
*** 437,443 ****
  # pthread based user space RX library
  libafsrpc: rx rxkad des
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110|*fbsd*) \
  	${COMPILE_PART1} libafsrpc  ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT libafsrpc for ${SYS_NAME} ;; \
--- 437,443 ----
  # pthread based user space RX library
  libafsrpc: rx rxkad des
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux11*|*fbsd*) \
  	${COMPILE_PART1} libafsrpc  ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT libafsrpc for ${SYS_NAME} ;; \
***************
*** 445,451 ****
  
  libafsauthent: ubik auth kauth libafsrpc
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110|*fbsd*) \
  	${COMPILE_PART1} libafsauthent  ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT libafsrpc for ${SYS_NAME} ;; \
--- 445,451 ----
  
  libafsauthent: ubik auth kauth libafsrpc
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux11*|*fbsd*) \
  	${COMPILE_PART1} libafsauthent  ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building MT libafsrpc for ${SYS_NAME} ;; \
***************
*** 453,459 ****
  
  shlibafsrpc: rx rxkad des
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110) \
  	${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building shared libafsrpc for ${SYS_NAME} ;; \
--- 453,459 ----
  
  shlibafsrpc: rx rxkad des
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*) \
  	${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building shared libafsrpc for ${SYS_NAME} ;; \
***************
*** 461,467 ****
  
  shlibafsauthent: ubik auth kauth shlibafsrpc
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110) \
  	${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building shared libafsrpc for ${SYS_NAME} ;; \
--- 461,467 ----
  
  shlibafsauthent: ubik auth kauth shlibafsrpc
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*) \
  	${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \
  	*) \
  		echo Not building shared libafsrpc for ${SYS_NAME} ;; \
***************
*** 481,487 ****
  
  libadmin: libafsauthent bozo
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
  			$(MAKE) libadmin_real ;; \
  	*) \
  		echo Not building MT libadmin for ${SYS_NAME} ;; \
--- 481,487 ----
  
  libadmin: libafsauthent bozo
  	case ${SYS_NAME} in \
! 	alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux11*) \
  			$(MAKE) libadmin_real ;; \
  	*) \
  		echo Not building MT libadmin for ${SYS_NAME} ;; \
*** ./src/afs/,sysincludes.h	Thu Nov 14 14:20:39 2002
--- ./src/afs/sysincludes.h	Tue Dec 17 13:33:30 2002
***************
*** 219,224 ****
--- 219,227 ----
  struct vfspage;			/* for vnode.h compiler warnings */
  #    include "../h/swap.h"	/* for struct swpdbd, for vnode.h compiler warnings */
  #    include "../h/dbd.h"	/* for union idbd, for vnode.h compiler warnings */
+ #ifdef AFS_HPUX1122_ENV
+ #    include "h/resource.h"
+ #endif
  #  endif /* AFS_HPUX_ENV */
  #if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD40_ENV)
  #  include <sys/uio.h>
***************
*** 270,276 ****
--- 273,281 ----
  #ifdef	AFS_SUN5_ENV
  #  include "../h/time.h"
  #else
+ #if !defined(AFS_HPUX_ENV)
  #  include "../h/mbuf.h"
+ #endif
  #endif /* AFS_SUN5_ENV */
  
  #include "../rpc/types.h"
*** ./src/afs/HPUX/,osi_vnodeops.c	Thu Nov 14 14:08:34 2002
--- ./src/afs/HPUX/osi_vnodeops.c	Wed Dec 18 09:42:29 2002
***************
*** 50,55 ****
--- 50,56 ----
  #define vtoblksz(vp)	((vp)->v_vfsp->vfs_bsize)
  
  
+ #if !defined(AFS_HPUX1122_ENV)
  /*
   * Copy an mbuf to the contiguous area pointed to by cp.
   * Skip <off> bytes and copy <len> bytes.
***************
*** 92,97 ****
--- 93,99 ----
  
  	return (len);
  }
+ #endif
  
  /* 
   *  Note that the standard Sun vnode interface doesn't haven't an vop_lockf(), so this
code is
***************
*** 160,166 ****
--- 162,172 ----
  }
  
  
+ #if defined(AFS_HPUX1122_ENV)
+ #include "machine/vm/vmparam.h"
+ #else
  #include "../machine/vmparam.h"	/* For KERNELSPACE */
+ #endif
  #include "../h/debug.h"
  #include "../h/types.h"
  #include "../h/param.h"
***************
*** 1262,1268 ****
--- 1268,1277 ----
      if (change_to_fstore)
         afspgin_update_dbd(vm_info, bsize);
      
+ #if !defined(AFS_HPUX1122_ENV)
+ /*DEE needs to be fixed */
      mpproc_info[getprocindex()].cnt.v_exfod += count;
+ #endif
      vmemp_unlockx();      /* free up VM empire */
      *ret_startindex = startindex;
      
***************
*** 1628,1633 ****
--- 1637,1644 ----
  	/*
  	 * Update statistics
  	 */
+ #if !defined(AFS_HPUX1122_ENV)
+ /*DEE many changes on 11.22 needs to be looked at */
  	if (steal) {
  	    if (flags & PF_DEACT) {
  		mpproc_info[getprocindex()].cnt.v_pswpout += npages;
***************
*** 1638,1643 ****
--- 1649,1655 ----
  		mpproc_info[getprocindex()].cnt.v_pgpgout += npages;
  	    }
  	}
+ #endif
  
  	/*
  	 * If time and patience have delivered enough
*** ./src/afs/HPUX/,osi_machdep.h	Tue Nov 26 17:40:38 2002
--- ./src/afs/HPUX/osi_machdep.h	Tue Dec 17 13:27:28 2002
***************
*** 61,66 ****
--- 61,74 ----
  #define AFS_GLOCK_PID   kt_tid(u.u_kthreadp)
  #define AFS_SAVE_SEMA   afsHashInsertFind(AFS_GLOCK_PID)
  #define AFS_FIND_SEMA   afsHashFind(AFS_GLOCK_PID)
+ /* HP scewed up MP_VXSEMA so it can not be used
+  * in a define. We will use the equivelent version
+  */
+ #ifdef MP_VXSEMA
+ #undef MP_VXSEMA
+ #define MP_VXSEMA(sema,ss)      (!uniprocessor ? vxsema(sema,ss):0)
+ #endif
+ 
  #define AFS_GLOCK()     MP_PXSEMA(&afs_global_sema, AFS_SAVE_SEMA)
  #define AFS_GUNLOCK()   (AFS_ASSERT_GLOCK(), MP_VXSEMA(&afs_global_sema,AFS_FIND_SEMA),
(!uniprocessor ? (afsHashRelease(AFS_GLOCK_PID),0) : 0))
  #define ISAFS_GLOCK()   (!uniprocessor ? owns_sema(&afs_global_sema):1)
***************
*** 84,94 ****
--- 92,108 ----
  #define	afs_osi_Wakeup(x)	wakeup((caddr_t) x)
  #define	osi_NullHandle(x)	((x)->proc == (caddr_t) 0)
  
+ #if !defined(AFS_HPUX1122_ENV)
  extern caddr_t kmem_alloc();
+ #endif
  #include <sys/kthread_iface.h>	/* for kt_cred() */
  
  /* Expected to be available as a patch from HP */
  /* See section D of the top level README for details */
+ #if defined(AFS_HPUX1122_ENV)
+ #include <sys/vfs_vm.h>
+ #else
  #include <vfs_vm.h>
+ #endif
  
  #endif /* _OSI_MACHDEP_H_ */
*** ./src/afs/,afs_util.c	Thu Nov 14 15:03:57 2002
--- ./src/afs/afs_util.c	Tue Dec 17 17:09:06 2002
***************
*** 119,125 ****
--- 119,129 ----
  
  afs_warn(a,b,c,d,e,f,g,h,i,j)
  char *a;
+ #if defined( AFS_USE_VOID_PTR)
+ void *b, *c, *d, *e, *f, *g, *h, *i, *j;
+ #else
  long b,c,d,e,f,g,h,i,j;
+ #endif
  {
      AFS_STATCNT(afs_warn);
      
***************
*** 148,154 ****
--- 152,162 ----
  
  afs_warnuser(a,b,c,d,e,f,g,h,i,j)
  char *a;
+ #if defined( AFS_USE_VOID_PTR)
+ void *b, *c, *d, *e, *f, *g, *h, *i, *j;
+ #else
  long b,c,d,e,f,g,h,i,j;
+ #endif
  {
      AFS_STATCNT(afs_warnuser);
      if (afs_showflags & GAGUSER)
*** ./src/config/,afs_sysnames.h	Tue Sep 10 17:33:45 2002
--- ./src/config/afs_sysnames.h	Tue Dec 17 13:49:07 2002
***************
*** 43,48 ****
--- 43,50 ----
  #define SYS_NAME_ID_hp800_ux101	 	 413
  #define SYS_NAME_ID_hp_ux102	 	 414
  #define SYS_NAME_ID_hp_ux110	 	 415
+ /* Assume hp_ux11i is 416 */
+ #define SYS_NAME_ID_hp_ux1122      417
  
  #define SYS_NAME_ID_mac2_51		 500	
  #define SYS_NAME_ID_mac_aux10		 501
*** ./src/config/,Makefile.hp_ux1122.in	Tue Dec 17 13:42:13 2002
--- ./src/config/Makefile.hp_ux1122.in	Tue Dec 17 13:47:47 2002
***************
*** 0 ****
--- 1,37 ----
+ # Copyright 2000, International Business Machines Corporation and others.
+ # All Rights Reserved.
+ # 
+ # This software has been released under the terms of the IBM Public
+ # License.  For details, see the LICENSE file in the top-level source
+ # directory or online at http://www.openafs.org/dl/license10.html
+ 
+ AFS_OSTYPE = HPUX
+ CC=/opt/ansic/bin/cc
+ MT_CC=/opt/ansic/bin/cc
+ XCFLAGS0=-ldld -lc -Wp,-H200000 -Wl,-a,archive_shared -DAUTH_DBM_LOG +z -Wl,+k
-D_LARGEFILE64_SOURCE
+ XCFLAGS=${XCFLAGS0} 
+ XCFLAGS64=${XCFLAGS0} +DD64
+ MT_CFLAGS=-D_POSIX_C_SOURCE=199506L -DAFS_PTHREAD_ENV ${XCFLAGS}
+ XLIBS=@LIB_AFSDB@
+ XLIBELFA=-lelf
+ TXLIBS=/usr/lib/hpux32/libcurses.so
+ MTLIBS=-lpthread
+ SHLIB_SUFFIX=sl
+ SHLIB_LDFLAGS=-b -Bsymbolic
+ SHLIB_LINKER=ld -b
+ LWP_OPTMZ=-O
+ OPTMZ=-O
+ DBG=-g
+ RANLIB=/usr/bin/ranlib
+ INSTALL=${TOP_SRCDIR}/pinstall/pinstall
+ RM=/bin/rm
+ CP=/bin/cp
+ AR=/bin/ar
+ AS=/usr/ccs/bin/as
+ MV=/bin/mv
+ LD=/bin/ld   
+ LEX=/opt/langtools/bin/lex
+ DBM=/lib/hpux32/libndbm.so
+ PAM_CFLAGS="-b +z -Wl,+k"
+ PAMLIBS=/usr/lib/hpux32/libpam.so
+ YACC=/opt/langtools/bin/yacc
*** ./src/config/,param.hp_ux1122.h	Tue Dec 17 13:49:42 2002
--- ./src/config/param.hp_ux1122.h	Tue Dec 17 17:07:53 2002
***************
*** 0 ****
--- 1,101 ----
+ /*
+  * Copyright 2000, International Business Machines Corporation and others.
+  * All Rights Reserved.
+  * 
+  * This software has been released under the terms of the IBM Public
+  * License.  For details, see the LICENSE file in the top-level source
+  * directory or online at http://www.openafs.org/dl/license10.html
+  */
+ 
+ /* THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT */
+ 
+ #ifndef	AFS_PARAM_H
+ #define	AFS_PARAM_H
+ 
+ #define AFS_HPUX_ENV	1
+ #define	AFS_HPUX90_ENV	1
+ #define	AFS_HPUX100_ENV	1
+ #define	AFS_HPUX101_ENV	1
+ #define	AFS_HPUX102_ENV	1
+ #define	AFS_HPUX110_ENV	1
+ #define AFS_HPUX1122_ENV 1
+ 
+ #define AFS_64BIT_ENV		1       /* Defines afs_int32 as int, not long. */
+ #if defined(__LP64__)
+ #define AFS_64BITPOINTER_ENV	1	/* pointers are 64 bits. */
+ #endif
+ 
+ #include <afs/afs_sysnames.h>
+ 
+ #define AFS_SYSCALL	48 /* slot reserved for AFS */
+ 
+ /* Machine / Operating system information */
+ #define SYS_NAME	"hp_ux1122"
+ #define SYS_NAME_ID	SYS_NAME_ID_hp_ux1122
+ #define AFSBIG_ENDIAN	1
+ #define AFS_HAVE_FFS    1
+ #define AFS_HAVE_STATVFS 1	/* System supports statvfs */
+ #define AFS_GLOBAL_SUNLOCK 1
+ #define RXK_LISTENER_ENV   1
+ #define AFS_USERSPACE_IP_ADDR 1
+ #define AFS_GCPAGS		0       /* if nonzero, garbage collect PAGs */
+ #define AFS_USE_VOID_PTR 1
+ /*
+  * #define AFS_VM_RDWR_ENV	1
+  */
+ #define AFS_TEXT_ENV	1	/* Older kernels use TEXT */
+ #define AFS_USE_GETTIMEOFDAY 1  /* use gettimeofday to implement rx clock */
+ #define NEARINODE_HINT  1   /* hint to ufs module to scatter inodes on disk*/
+ #define nearInodeHash(volid, hval) {                                 \
+                 unsigned char*  ts = (unsigned char*)&(volid)+sizeof(volid)-1;\
+                 for ( (hval)=0; ts >= (unsigned char*)&(volid); ts--){\
+                     (hval) *= 173;                      \
+                     (hval) += *ts;                      \
+                 }                                       \
+                 }
+ 
+ /* Extra kernel definitions (from kdefs file) */
+ #ifdef KERNEL
+ #define _KERNEL 1
+ #define	afsio_iov	uio_iov
+ #define	afsio_iovcnt	uio_iovcnt
+ #define	afsio_offset	uio_offset
+ #define	afsio_seg	uio_seg
+ #define	afsio_resid	uio_resid
+ #define	AFS_UIOSYS	UIOSEG_KERNEL
+ #define	AFS_UIOUSER	UIOSEG_USER
+ #define	AFS_CLBYTES	CLBYTES
+ #define	AFS_MINCHANGE	2
+ #define	osi_GetTime(x)	do { struct timeval osi_GetTimeVar; uniqtime(&osi_GetTimeVar);
(x)->tv_sec = osi_GetTimeVar.tv_sec; (x)->tv_usec = osi_GetTimeVar.tv_usec; } while(0)
+ #define	AFS_KALLOC	kmem_alloc
+ #define	AFS_KFREE	kmem_free
+ #define	VATTR_NULL	vattr_null
+ 
+ #if defined(__LP64__)
+ #define AFS_HPUX_64BIT_ENV 1
+ #endif
+ 
+ #ifndef UKERNEL
+ /*
+  * On HP-UX, sys/socket.h includes sys/uio.h, and sys/file.h and
+  * sys/uio.h #include each other, and there's no simple way to avoid a
+  * warning about the struct uio declaration not being visible outside
+  * of some prototype or other.  So, we put in a tenative declaration to
+  * supress the warnings.
+  */
+ struct uio;
+ 
+ #define memset(A, B, S) bzero(A, S)
+ #define memcpy(B, A, S) bcopy(A, B, S)
+ #define memcmp(A, B, S) bcmp(A, B, S)
+ #endif
+ #endif /* KERNEL */
+ #define	AFS_DIRENT	
+ /* Non-standard definitions */
+ #ifndef	EDQUOT
+ #define	EDQUOT		69	/* Disc quota exceeded 		*/
+ #endif
+ 
+ #define USE_UCONTEXT        /* should be in afsconfig.h */
+ 
+ #endif /* AFS_PARAM_H */
*** ./src/dir/,dir.c	Wed Aug 21 15:53:25 2002
--- ./src/dir/dir.c	Tue Dec 17 14:04:35 2002
***************
*** 76,82 ****
  #ifndef AFS_LINUX20_ENV
  #include "../netinet/in.h"
  #endif
! #if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV)
  #include "../h/mbuf.h"
  #endif
  #else /* !defined(UKERNEL) */
--- 76,82 ----
  #ifndef AFS_LINUX20_ENV
  #include "../netinet/in.h"
  #endif
! #if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV) &&!defined(AFS_HPUX1122_ENV)
  #include "../h/mbuf.h"
  #endif
  #else /* !defined(UKERNEL) */
*** ./src/libafs/,MakefileProto.HPUX.in	Thu Nov 14 14:08:41 2002
--- ./src/libafs/MakefileProto.HPUX.in	Tue Dec 17 14:10:22 2002
***************
*** 66,71 ****
--- 66,72 ----
  # seems to hang).  When the compiler sees the +ES1.Xindirect_calls
  # option, however, it issues a warning and turns off +Z.
  #
+ <hp_ux110 hp_ux102>
  KDEFS= +ES1.Xindirect_calls +XixdU +Hx0 +ESlit +ESsfc +ESssf -Wp,-H300000 -D_KERNEL
-D_KERNEL_BUILD -D_UNSUPPORTED \
  	-DMP +R500 -Wl,+k $(CPU_KDEFS)
  KDEFS_32 = +DA1.0 +DS1.0
***************
*** 73,78 ****
--- 74,90 ----
  # warning 478: "+Z" and "+ES1.Xindirect_calls" are mutually exclusive. "+Z" ignored.
  # warning 530: LP64 migration: Casting from loose to strict alignment: Resulting pointer
may be misaligned.
  KDEFS_64 = +DA2.0W +DS2.0 +M2 +W 478,530
+ 
+ <all>
+ 
+ <hp_ux1122>
+ KDEFS= +ES1.Xindirect_calls -Wp,-H300000 -D_KERNEL -D_KERNEL_BUILD -D_UNSUPPORTED \
+   -DMP -Wl,+k $(CPU_KDEFS)
+ KDEFS_32 =
+ KDEFS_64 = +DD64
+ 
+ <all>
+ 
  DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT
-DHPONCPLUS
  OPTF=${OPT} 
  OPTF2=${OPT2} 
***************
*** 90,100 ****
  
  include Makefile.common
  
  BITS = 64 32
  
  setup:
  	-$(RM) -f  h net dux machine netinet nfs rpc s200 ufs sys
! 	ln -s /usr/include/sys h
  	ln -s /etc/conf/net net
  	ln -s /etc/conf/dux dux
  	ln -s /etc/conf/machine machine
--- 102,116 ----
  
  include Makefile.common
  
+ <hp_ux110 hp_ux102>
  BITS = 64 32
+ <hp_ux1122>
+ BITS = 64
+ <all>
  
  setup:
  	-$(RM) -f  h net dux machine netinet nfs rpc s200 ufs sys
! 	ln -fs /etc/conf/h h
  	ln -s /etc/conf/net net
  	ln -s /etc/conf/dux dux
  	ln -s /etc/conf/machine machine
***************
*** 102,108 ****
--- 118,128 ----
  	ln -s /etc/conf/nfs nfs
  	ln -s /usr/include/rpc rpc
  	ln -s /etc/conf/machine s200
+ <hp_ux110 hp_ux102>
  	ln -s /etc/conf/ufs ufs
+ <hp_ux1122>
+ 	ln -fs /etc/conf/sys ufs
+ <all>
  	ln -s /usr/include/sys sys
  	for b in $(BITS); do \
  	    for t in $(KOBJ); do \
*** ./src/libuafs/,MakefileProto.HPUX.in	Fri Sep  7 18:35:24 2001
--- ./src/libuafs/MakefileProto.HPUX.in	Tue Dec 17 14:12:06 2002
***************
*** 30,41 ****
--- 30,49 ----
  # System specific build commands and flags
  CC = /opt/ansic/bin/cc
  DEFINES= -D_REENTRANT -DAFSDEBUG -DKERNEL -DUKERNEL -DAFS -DVICE
+ <hp_ux102 hp_ux110>
  KOPTS=-Wp,-H200000 -Wl,-a,archive +DA1.0 +z
+ <hp_ux1122>
+ KOPTS=-Wp,-H200000 -Wl,-a,archive_shared
+ <all>
  CFLAGS=-I. -I.. -I${TOP_SRCDIR}/config ${FSINCLUDES} $(DEFINES) $(KOPTS) ${DBUG}
  OPTF=-O
  WEBOPTS = -I../nsapi -DNETSCAPE_NSAPI -DNET_SSL -DXP_UNIX -DMCC_HTTPD
  
+ <hp_ux102 hp_ux110>
  TEST_CFLAGS= -Wp,-H200000 +DA1.0 +z -D_POSIX_C_SOURCE=199506L -DAFS_PTHREAD_ENV -Dhpux
-DAFS_HPUX_ENV
+ <hp_ux1122>
+ TEST_CFLAGS= -Wp,-H200000 -D_POSIX_C_SOURCE=199506L -DAFS_PTHREAD_ENV -Dhpux
-DAFS_HPUX_ENV
+ <all>
  TEST_LDFLAGS=
  TEST_LIBS=-lnsl -lm -lpthread -ldld -lc
  
*** ./src/lwp/,lwp.h	Sun Aug 25 23:34:10 2002
--- ./src/lwp/lwp.h	Tue Dec 17 14:14:41 2002
***************
*** 293,302 ****
--- 293,311 ----
   * cases, and also between machines apparently running the same OS
   * version.
   */
+ /*
+  * On ia64 where the ucontext is used, it can be an extra 48K
+  * Need to account for this.  There might be two of these on the
+  * stack too. This needs to be checked.
+  */
+ #if defined(USE_UCONTEXT) && defined(HAVE_UCONTEXT_H)
+ #define AFS_LWP_MINSTACKSIZE  (288 * 1024)
+ #else
  #if defined(AFS_LINUX22_ENV)
  #define AFS_LWP_MINSTACKSIZE	(192 * 1024)
  #else
  #define AFS_LWP_MINSTACKSIZE	(48 * 1024)
+ #endif
  #endif
  
  /* Action to take on stack overflow. */
*** ./src/lwp/,Makefile.in	Wed Sep 19 17:25:25 2001
--- ./src/lwp/Makefile.in	Tue Dec 17 14:13:07 2002
***************
*** 87,93 ****
  		${CC} -E -I${TOP_INCDIR} process.S >process.ss ; \
  		${AS} process.ss -o process.o ;  \
  		$(RM) -f process.S ;;\
! 	hp_ux110 ) \
  		${CC} ${CFLAGS} -c process.c;; \
  	*) \
  		/lib/cpp -P -I${TOP_INCDIR} process.s process.ss; \
--- 87,93 ----
  		${CC} -E -I${TOP_INCDIR} process.S >process.ss ; \
  		${AS} process.ss -o process.o ;  \
  		$(RM) -f process.S ;;\
! 	hp_ux11* ) \
  		${CC} ${CFLAGS} -c process.c;; \
  	*) \
  		/lib/cpp -P -I${TOP_INCDIR} process.s process.ss; \
*** ./src/pinstall/,install.c	Wed Aug 21 15:53:27 2002
--- ./src/pinstall/install.c	Tue Dec 17 14:20:20 2002
***************
*** 163,169 ****
  static int
  quickStrip (iname, oname, ignored, copy_only)
  char *iname, *oname; {
! 	int pid, status;
  	static char *strip[] = {
  		"strip", 0, 0,
  	};
--- 163,170 ----
  static int
  quickStrip (iname, oname, ignored, copy_only)
  char *iname, *oname; {
! 	int status;
! 	pid_t pid;
  	static char *strip[] = {
  		"strip", 0, 0,
  	};
***************
*** 187,193 ****
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid) {
  			perror("waitpid");
  			return -1;
  		}
--- 188,194 ----
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid && errno != ECHILD) {
  			perror("waitpid");
  			return -1;
  		}
***************
*** 233,239 ****
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid) {
  			perror("waitpid");
  			return -1;
  		}
--- 234,240 ----
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid && errno != ECHILD) {
  			perror("waitpid");
  			return -1;
  		}
***************
*** 272,278 ****
  static
  quickStrip (iname, oname, ignored, copy_only)
  char *iname, *oname; {
! 	int pid, status;
  	static char *strip[] = {
  		"strip", 0, 0,
  	};
--- 273,280 ----
  static
  quickStrip (iname, oname, ignored, copy_only)
  char *iname, *oname; {
! 	int status;
! 	pid_t pid;
  	static char *strip[] = {
  		"strip", 0, 0,
  	};
***************
*** 296,302 ****
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid) {
  			perror("waitpid");
  			return -1;
  		}
--- 298,304 ----
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid && errno != ECHILD) {
  			perror("waitpid");
  			return -1;
  		}
***************
*** 334,340 ****
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid) {
  			perror("waitpid");
  			return -1;
  		}
--- 336,342 ----
  		exit(1);
  
  	    default:			/* parent	*/
! 		if (waitpid(pid, &status, 0) != pid && errno != ECHILD) {
  			perror("waitpid");
  			return -1;
  		}
*** ./src/rx/,rx_packet.c	Tue Sep 10 17:33:55 2002
--- ./src/rx/rx_packet.c	Tue Dec 17 15:54:15 2002
***************
*** 33,39 ****
  #include "../afs/sysincludes.h"
  #endif
  #include "../h/socket.h"
! #if !defined(AFS_SUN5_ENV) &&  !defined(AFS_LINUX20_ENV)
  #if	!defined(AFS_OSF_ENV) && !defined(AFS_AIX41_ENV)
  #include "../sys/mount.h"   /* it gets pulled in by something later anyway */
  #endif
--- 33,39 ----
  #include "../afs/sysincludes.h"
  #endif
  #include "../h/socket.h"
! #if !defined(AFS_SUN5_ENV) &&  !defined(AFS_LINUX20_ENV) && !defined(AFS_HPUX1122_ENV)
  #if	!defined(AFS_OSF_ENV) && !defined(AFS_AIX41_ENV)
  #include "../sys/mount.h"   /* it gets pulled in by something later anyway */
  #endif
***************
*** 959,965 ****
   * message receipt is done in rxk_input or rx_put.
   */
  
! #ifdef AFS_SUN5_ENV
  /*
   * Copy an mblock to the contiguous area pointed to by cp.
   * MTUXXX Supposed to skip <off> bytes and copy <len> bytes,
--- 959,965 ----
   * message receipt is done in rxk_input or rx_put.
   */
  
! #if defined(AFS_SUN5_ENV) || defined(AFS_HPUX1122_ENV)
  /*
   * Copy an mblock to the contiguous area pointed to by cp.
   * MTUXXX Supposed to skip <off> bytes and copy <len> bytes,
***************
*** 1081,1087 ****
  
  #if !defined(AFS_LINUX20_ENV)
  int rx_mb_to_packet(amb, free, hdr_len, data_len, phandle)
! #ifdef	AFS_SUN5_ENV
  mblk_t *amb;
  #else
  struct mbuf *amb;
--- 1081,1087 ----
  
  #if !defined(AFS_LINUX20_ENV)
  int rx_mb_to_packet(amb, free, hdr_len, data_len, phandle)
! #if defined(AFS_SUN5_ENV) || defined(AFS_HPUX1122_ENV)
  mblk_t *amb;
  #else
  struct mbuf *amb;
*** ./src/rx/HPUX/,rx_kmutex.h	Thu Nov 14 14:12:51 2002
--- ./src/rx/HPUX/rx_kmutex.h	Tue Dec 17 15:50:23 2002
***************
*** 112,122 ****
--- 112,129 ----
  
  #define MUTEX_TRYENTER(a) b_cpsema(a)
  
+ #ifdef AFS_HPUX1122_ENV
+ #define MUTEX_ENTER(a) \
+ 	((b_owns_sema(a)) ? osi_Panic("Already Held") : b_psema(a))
+ #define MUTEX_EXIT(a) \
+ 	((b_owns_sema(a)) ? b_vsema(a) : osi_Panic("mutex not held"))
+ #else
  #define MUTEX_ENTER(a) \
      ((b_owns_sema(a)) ? (osi_Panic("Already Held"), 0) : b_psema(a))
  
  #define MUTEX_EXIT(a) \
      ((b_owns_sema(a)) ? b_vsema(a) : (osi_Panic("mutex not held"), 0))
+ #endif
  
  #undef MUTEX_ISMINE
  #define MUTEX_ISMINE(a) b_owns_sema(a)
*** ./src/rx/,rx_kcommon.h	Thu Nov 14 16:27:16 2002
--- ./src/rx/rx_kcommon.h	Tue Dec 17 14:22:11 2002
***************
*** 41,47 ****
--- 41,49 ----
  #include "../h/dir.h"
  #endif
  #include "../h/buf.h"
+ #if !defined(AFS_HPUX1122_ENV)
  #include "../h/mbuf.h"
+ #endif
  #else
  #if defined(AFS_XBSD_ENV)
  #include "../h/dirent.h"
*** ./,acinclude.m4	Wed Dec  4 18:45:26 2002
--- ./acinclude.m4	Tue Dec 17 13:24:43 2002
***************
*** 292,297 ****
--- 292,300 ----
  		hppa*-hp-hpux11*)
  			AFS_SYSNAME="hp_ux110"
  			;;
+ 		ia64-hp-hpux*)
+ 			AFS_SYSNAME="hp_ux1122"
+ 			;;
  		hppa*-hp-hpux10*)
  			AFS_SYSNAME="hp_ux102"
  			;;


-- 

 Douglas E. Engert  <DEEngert@anl.gov>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439 
 (630) 252-5444