add-solaris-11-support-v2-20061228

FIXES 50343

initial 5.11 support
This commit is contained in:
Dale Ghent 2006-12-28 21:57:24 +00:00 committed by Derrick Brashear
parent 7756a870f3
commit a537d3ae96
7 changed files with 429 additions and 10 deletions

View File

@ -128,7 +128,7 @@ comerr: util
cmd: comerr
@case ${SYS_NAME} in \
sgi_6* | sun*_5[789] | sun*_510 | hp_ux11* | ia64_hpux* | sparc64_linux* | alpha_linux* ) \
sgi_6* | sun*_5[789] | sun*_51[01] | hp_ux11* | ia64_hpux* | sparc64_linux* | alpha_linux* ) \
${COMPILE_PART1} cmd ${COMPILE_PART2}64 ;; \
*) \
${COMPILE_PART1} cmd ${COMPILE_PART2} ;; \

View File

@ -419,6 +419,9 @@ else
sparc-sun-solaris2.10)
AFS_SYSNAME="sun4x_510"
;;
sparc-sun-solaris2.11)
AFS_SYSNAME="sun4x_511"
;;
sparc-sun-sunos4*)
AFS_SYSNAME="sun4_413"
enable_login="yes"
@ -435,6 +438,9 @@ else
i386-pc-solaris2.10)
AFS_SYSNAME="sunx86_510"
;;
i386-pc-solaris2.11)
AFS_SYSNAME="sunx86_511"
;;
alpha*-dec-osf4.0*)
AFS_SYSNAME="alpha_dux40"
;;

View File

@ -860,6 +860,28 @@ case $AFS_SYSNAME in
LWP_OPTMZ="-g"
;;
sun4x_511)
CC="/opt/SUNWspro/bin/cc"
CCOBJ="/opt/SUNWspro/bin/cc"
LEX="lex"
LD="/usr/ccs/bin/ld"
MT_CC="/opt/SUNWspro/bin/cc"
MT_CFLAGS='-mt -DAFS_PTHREAD_ENV ${XCFLAGS}'
MT_LIBS="-lpthread -lsocket"
PAM_CFLAGS="-KPIC"
PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
XCFLAGS64='${XCFLAGS} -xarch=v9'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
LWP_OPTMZ="-g"
;;
sunx86_57)
CC="/opt/SUNWspro/bin/cc"
CCOBJ="/opt/SUNWspro/bin/cc"
@ -943,6 +965,27 @@ case $AFS_SYSNAME in
XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
;;
sunx86_511)
CC="/opt/SUNWspro/bin/cc"
CCOBJ="/opt/SUNWspro/bin/cc"
LEX="lex"
LD="/usr/ccs/bin/ld"
MT_CC="/opt/SUNWspro/bin/cc"
MT_CFLAGS='-mt -DAFS_PTHREAD_ENV ${XCFLAGS}'
MT_LIBS="-lpthread -lsocket"
PAM_CFLAGS="-KPIC"
PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
XCFLAGS64='${XCFLAGS} -xarch=amd64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
;;
esac
#

View File

@ -99,6 +99,7 @@
#define SYS_NAME_ID_sun4x_58 939
#define SYS_NAME_ID_sun4x_59 940
#define SYS_NAME_ID_sun4x_510 941
#define SYS_NAME_ID_sun4x_511 942
/* Sigh. If I leave a gap here IBM will do this sequentially. If I don't
they won't allocate sunx86 IDs at all. So leave a gap and pray. */
@ -106,6 +107,7 @@
#define SYS_NAME_ID_sunx86_58 951
#define SYS_NAME_ID_sunx86_59 952
#define SYS_NAME_ID_sunx86_510 953
#define SYS_NAME_ID_sunx86_511 954
#define SYS_NAME_ID_vax_ul4 1003
#define SYS_NAME_ID_vax_ul40 1004

View File

@ -0,0 +1,179 @@
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define AFS_VFSINCL_ENV 1 /* NOBODY uses this.... */
#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_SUN_ENV 1
#define AFS_SUN5_ENV 1
#define AFS_SUN52_ENV 1
#define AFS_SUN53_ENV 1
#define AFS_SUN54_ENV 1
#define AFS_SUN55_ENV 1
#define AFS_SUN56_ENV 1
#define AFS_SUN57_ENV 1
#define AFS_SUN58_ENV 1
#define AFS_SUN59_ENV 1
#define AFS_SUN510_ENV 1
#define AFS_SUN511_ENV 1
#define AFS_BOZONLOCK_ENV 1
#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
#define AFS_64BIT_CLIENT 1
#define AFS_HAVE_FLOCK_SYSID 1
#ifdef AFS_NAMEI_ENV
#define AFS_64BIT_IOPS_ENV 1 /* needed for NAMEI... */
#else /* AFS_NAMEI_ENV */
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#endif /* AFS_NAMEI_ENV */
#include <afs/afs_sysnames.h>
#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */
#define RXK_LISTENER_ENV 1
#define AFS_GCPAGS 1 /* if nonzero, garbage collect PAGs */
#define AFS_SYSCALL 65
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
/* Machine / Operating system information */
#define sys_sun4x_511 1
#define SYS_NAME "sun4x_511"
#define SYS_NAME_ID SYS_NAME_ID_sun4x_511
#define AFSBIG_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_VXFS 1 /* Support cache on Veritas vxfs file system */
#define AFS_HAVE_STATVFS 1 /* System supports statvfs */
#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
#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
/* sun definitions here */
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
/*#define AFS_USEBUFFERS 1*/
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_loffset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS UIO_SYSSPACE
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define osi_GetTime(x) uniqtime32(x)
/**
* These defines are for the 64 bit Solaris 7 port
* AFS_SYSCALL32 is used to protect the ILP32 syscall interface
* AFS_64BIT_ENV is for use of 64 bit inode numbers
*/
#if defined(__sparcv9)
#define AFS_SUN57_64BIT_ENV 1
#define AFS_64BIT_INO 1
#endif
#define AFS_KALLOC(n) kmem_alloc(n, KM_SLEEP)
#define AFS_KALLOC_NOSLEEP(n) kmem_alloc(n, KM_NOSLEEP)
#define AFS_KFREE kmem_free
#define VATTR_NULL vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#else /* !defined(UKERNEL) */
/* This section for user space compiles only */
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define RXK_LISTENER_ENV 1
#define AFS_USERSPACE_IP_ADDR 1
#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
#define UKERNEL 1 /* user space kernel */
#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_USR_SUN5_ENV 1
#define AFS_USR_SUN6_ENV 1
#define AFS_USR_SUN7_ENV 1
#define AFS_USR_SUN8_ENV 1
#define AFS_USR_SUN9_ENV 1
#define AFS_64BIT_ENV 1
#include <afs/afs_sysnames.h>
#if 0
#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */
#endif
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#define AFS_SYSCALL 65
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS 1
/* Machine / Operating system information */
#define sys_sun4x_511 1
#define SYS_NAME "sun4x_511"
#define SYS_NAME_ID SYS_NAME_ID_sun4x_511
#define AFSBIG_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
/*#define AFS_USEBUFFERS 1*/
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS 1
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define VATTR_NULL usr_vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#endif /* !defined(UKERNEL) */

View File

@ -0,0 +1,189 @@
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
/*
* 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
*/
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define AFS_VFSINCL_ENV 1 /* NOBODY uses this.... */
#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_SUN_ENV 1
#define AFS_SUN5_ENV 1
#define AFS_SUN52_ENV 1
#define AFS_SUN53_ENV 1
#define AFS_SUN54_ENV 1
#define AFS_SUN55_ENV 1
#define AFS_SUN56_ENV 1
#define AFS_SUN57_ENV 1
#define AFS_SUN58_ENV 1
#define AFS_SUN59_ENV 1
#define AFS_SUN510_ENV 1
#define AFS_SUN511_ENV 1
#define AFS_BOZONLOCK_ENV 1
#define AFS_X86_ENV 1
#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
#define AFS_64BIT_CLIENT 1
#define AFS_HAVE_FLOCK_SYSID 1
#include <afs/afs_sysnames.h>
#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */
#define RXK_LISTENER_ENV 1
#define AFS_GCPAGS 1 /* if nonzero, garbage collect PAGs */
#ifdef AFS_NAMEI_ENV
#define AFS_64BIT_IOPS_ENV 1 /* needed for NAMEI... */
#else /* AFS_NAMEI_ENV */
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#endif /* AFS_NAMEI_ENV */
#define AFS_SYSCALL 65
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
/* Machine / Operating system information */
#define sys_sunx86_511 1
#define SYS_NAME "sunx86_511"
#define SYS_NAME_ID SYS_NAME_ID_sunx86_511
#define AFSLITTLE_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_VXFS 1 /* Support cache on Veritas vxfs file system */
#define AFS_HAVE_STATVFS 1 /* System supports statvfs */
#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
#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
/* sun definitions here */
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
/*#define AFS_USEBUFFERS 1*/
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_loffset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS UIO_SYSSPACE
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define osi_GetTime(x) uniqtime32(x)
/**
* These defines are for the 64 bit Solaris 7 port
* AFS_SYSCALL32 is used to protect the ILP32 syscall interface
* AFS_64BIT_ENV is for use of 64 bit inode numbers
*/
#if defined(__amd64)
#define AFS_SUN57_64BIT_ENV 1
#define AFS_64BIT_INO 1
#endif
#define AFS_KALLOC(n) kmem_alloc(n, KM_SLEEP)
#define AFS_KALLOC_NOSLEEP(n) kmem_alloc(n, KM_NOSLEEP)
#define AFS_KFREE kmem_free
#define VATTR_NULL vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#else /* !defined(UKERNEL) */
/* This section for user space compiles only */
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define RXK_LISTENER_ENV 1
#define AFS_USERSPACE_IP_ADDR 1
#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
#define UKERNEL 1 /* user space kernel */
#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_USR_SUN5_ENV 1
#define AFS_USR_SUN6_ENV 1
#define AFS_USR_SUN7_ENV 1
#define AFS_USR_SUN8_ENV 1
#define AFS_USR_SUN9_ENV 1
#define AFS_64BIT_ENV 1
#include <afs/afs_sysnames.h>
#if 0
#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */
#endif
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#define AFS_SYSCALL 65
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS 1
/* Machine / Operating system information */
#define sys_sunx86_511 1
#define SYS_NAME "sunx86_511"
#define SYS_NAME_ID SYS_NAME_ID_sunx86_511
#define AFSLITTLE_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
/*#define AFS_USEBUFFERS 1*/
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS 1
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define VATTR_NULL usr_vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#endif /* !defined(UKERNEL) */

View File

@ -36,11 +36,11 @@ DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT
#CC = /opt/SUNWspro/bin/cc
KDEFS= -D_KERNEL -DSYSV -dn ${ARCH_DEFS}
<sun4x_57 sun4x_58 sun4x_59 sun4x_510>
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sun4x_511>
KDEFS_32 =
KDEFS_64 = -xarch=v9
<sunx86_57 sunx86_58 sunx86_59 sunx86_510>
<sunx86_57 sunx86_58 sunx86_59 sunx86_510 sunx86_511>
KDEFS_32 =
KDEFS_64 = -xarch=amd64 -xmodel=kernel
@ -48,20 +48,20 @@ KDEFS_64 = -xarch=amd64 -xmodel=kernel
CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(DEFINES) $(KDEFS) $(KOPTS) ${DBUG}
# Name of directory to hold object files and libraries.
<all -sun4x_57 -sun4x_58 -sun4x_59 -sun4x_510 -sunx86_57 -sunx86_58 -sunx86_59 -sunx86_510>
<all -sun4x_57 -sun4x_58 -sun4x_59 -sun4x_510 -sun4x_511 -sunx86_57 -sunx86_58 -sunx86_59 -sunx86_510 -sunx86_511>
KOBJ = MODLOAD
<sun4x_57 sun4x_58 sun4x_59 sunx86_57 sunx86_58 sunx86_59 sunx86_510>
<sun4x_57 sun4x_58 sun4x_59 sunx86_57 sunx86_58 sunx86_59 sunx86_510 sunx86_511>
KOBJ = MODLOAD32 MODLOAD64
<sun4x_510>
<sun4x_510 sun4x_511>
KOBJ = MODLOAD64
# This tells Makefile.common to use it's single directory build target.
<all -sun4x_57 -sun4x_58 -sun4x_59 -sun4x_510 -sunx86_57 -sunx86_58 -sunx86_59 -sunx86_510>
<all -sun4x_57 -sun4x_58 -sun4x_59 -sun4x_510 -sun4x_511 -sunx86_57 -sunx86_58 -sunx86_59 -sunx86_510 -sunx86_511>
COMPDIRS = single_compdir
INSTDIRS = single_instdir
DESTDIRS = single_destdir
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sunx86_57 sunx86_58 sunx86_59 sunx86_510>
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sun4x_511 sunx86_57 sunx86_58 sunx86_59 sunx86_510 sunx86_511>
COMPDIRS = solaris_compdirs
INSTDIRS = solaris_instdirs
DESTDIRS = solaris_destdirs
@ -93,7 +93,7 @@ setup:
## This is the target for a Solaris 7. Here we build both the 32 bit and
## the 64 bit libafs in MODLOAD32 and MODLOAD64 directories respectively
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sunx86_57 sunx86_58 sunx86_59 sunx86_510>
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sun4x_511 sunx86_57 sunx86_58 sunx86_59 sunx86_510 sunx86_511>
${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
for t in ${KOBJ} ; do \
echo Building directory: $$t ; \
@ -129,7 +129,7 @@ INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/${LIBAFSNONFS}
DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS}
DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFSNONFS}
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sunx86_57 sunx86_58 sunx86_59 sunx86_510>
<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sun4x_511 sunx86_57 sunx86_58 sunx86_59 sunx86_510 sunx86_511>
INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/libafs${BITS}.nonfs.o
INST_LIBAFS = ${DESTDIR}${afskerneldir}/libafs${BITS}.o