From 9b94108664330ac4b95a026a8be6c1e260c507fc Mon Sep 17 00:00:00 2001 From: Ben Huntsman Date: Mon, 30 Jan 2023 19:08:20 -0600 Subject: [PATCH] configure: Add platform rs_aix73 Enable the configure script to detect and configure AIX 7.3. Update INSTALL to reflect new platform. Reviewed-on: https://gerrit.openafs.org/15310 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit d03723e87a16e19a34950ca84a6139095a0694f9) Change-Id: I6727512ee343b3ee4cbb03c1e6242a69f407b987 Reviewed-on: https://gerrit.openafs.org/15384 Tested-by: BuildBot Reviewed-by: Ben Huntsman Reviewed-by: Michael Meffie Reviewed-by: Cheyenne Wills Reviewed-by: Stephan Wiesand --- INSTALL | 2 +- src/cf/osconf.m4 | 7 +- src/cf/sysname.m4 | 4 + src/config/afs_sysnames.h | 1 + src/config/param.rs_aix73.h | 174 ++++++++++++++++++++++++++++++++ src/libafs/MakefileProto.AIX.in | 2 +- 6 files changed, 182 insertions(+), 8 deletions(-) create mode 100644 src/config/param.rs_aix73.h diff --git a/INSTALL b/INSTALL index d31f334ac4..de0996f990 100644 --- a/INSTALL +++ b/INSTALL @@ -59,7 +59,7 @@ A Configuring ppc_linux26 ppc_nbsd16, ppc_nbsd20 rs_aix42, rs_aix51, rs_aix52, rs_aix53, rs_aix61, rs_aix71, - rs_aix72 + rs_aix72, rs_aix73 s390_linux26 s390x_linux26 sgi_62, sgi_63, sgi_64, sgi_65 (file server not tested) diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 6c65bcc7d9..e5fdc22aa1 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -406,7 +406,7 @@ case $AFS_SYSNAME in TSM_LIBS="-lsys -lcsys -lc" ;; - rs_aix61 | rs_aix71) + rs_aix61 | rs_aix7*) CC="cc" DBG="-g" LIBSYS_AIX_EXP="afsl.exp" @@ -421,11 +421,6 @@ case $AFS_SYSNAME in TSM_LIBS="-lsys -lcsys -lc" ;; - rs_aix72) - TSM_IMPORTS="-bI:/lib/aio.exp" - TSM_LIBS="-lsys -lc" - ;; - s390_linux26) LD="ld" KERN_OPTMZ=-O2 diff --git a/src/cf/sysname.m4 b/src/cf/sysname.m4 index 14f9182e02..c872c072fb 100644 --- a/src/cf/sysname.m4 +++ b/src/cf/sysname.m4 @@ -326,6 +326,10 @@ else AFS_SYSNAME="rs_aix72" enable_pam="no" ;; + power*-ibm-aix7.3*) + AFS_SYSNAME="rs_aix73" + enable_pam="no" + ;; x86_64-*-linux-gnu) AFS_SYSNAME="amd64_linuxXX" enable_pam="yes" diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h index 66a168e848..612d631006 100644 --- a/src/config/afs_sysnames.h +++ b/src/config/afs_sysnames.h @@ -115,6 +115,7 @@ #define SYS_NAME_ID_rs_aix61 708 #define SYS_NAME_ID_rs_aix72 709 #define SYS_NAME_ID_rs_aix71 710 +#define SYS_NAME_ID_rs_aix73 711 #define SYS_NAME_ID_sun3_411 906 #define SYS_NAME_ID_sun3x_411 912 diff --git a/src/config/param.rs_aix73.h b/src/config/param.rs_aix73.h new file mode 100644 index 0000000000..8de75999d4 --- /dev/null +++ b/src/config/param.rs_aix73.h @@ -0,0 +1,174 @@ +#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_AIX_ENV 1 +#define AFS_AIX32_ENV 1 +#define AFS_AIX41_ENV 1 +#define AFS_AIX42_ENV 1 +#define AFS_AIX51_ENV 1 +#define AFS_AIX52_ENV 1 +#define AFS_AIX53_ENV 1 +#define AFS_AIX61_ENV 1 +#define AFS_AIX71_ENV 1 +#define AFS_AIX72_ENV 1 +#define AFS_AIX73_ENV 1 + +#define AFS_64BIT_CLIENT 1 +#define AFS_NAMEI_ENV 1 +#ifdef AFS_NAMEI_ENV +#define AFS_64BIT_IOPS_ENV 1 +#endif + +#define AFS_HAVE_FLOCK_SYSID 1 + +#include + +/* Global lock in AFS part of client. */ +#define AFS_GLOBAL_SUNLOCK 1 +#define AFS_GCPAGS 1 /* if nonzero, garbage collect PAGs */ + +#define AFS_FSNO 4 +#define AFS_SYSCALL 31 + +/* Machine / Operating system information */ +#define SYS_NAME "rs_aix73" +#define SYS_NAME_ID SYS_NAME_ID_rs_aix73 +#define AFSBIG_ENDIAN 1 +#define RIOS 1 /* POWERseries 6000. (sj/pc) */ +#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */ +#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */ +#define AFS_HAVE_STATVFS 1 /* System supports statvfs */ + +#ifndef _POWER +#define _POWER 1 /* _POWERseries! */ +#endif +#ifndef COMPAT_43 +#define COMPAT_43 +#endif + +#define KERNEL_HAVE_UERROR 1 +#define KERNEL_HAVE_PIN 1 + +/* Extra kernel definitions (from kdefs file) */ +#ifdef _KERNEL +#define AFS_UIOFMODE 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 UIO_SYSSPACE +#define AFS_UIOUSER UIO_USERSPACE +#define AFS_CLBYTES CLBYTES +#define AFS_MINCHANGE 2 +#define osi_GTime(x) time /* something for the silly time(0)?? */ +#define AFS_KALLOC kmem_alloc +#define AFS_KFREE kmem_free +#define VATTR_NULL(V) memset((void*)V, -1, sizeof(*(V))) +#define va_nodeid va_serialno +#endif /* !_KERNEL */ +#define AFS_DIRENT +#endif /* AFS_PARAM_H */ + +#else /* !defined(UKERNEL) */ + +/* This section for user space 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_64BIT_CLIENT 1 +#define AFS_NAMEI_ENV 1 +#ifdef AFS_NAMEI_ENV +#define AFS_64BIT_IOPS_ENV 1 +#endif + +#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 */ + +#ifdef KERNEL + +#define UKERNEL 1 /* user space kernel */ +#define AFS_ENV 1 +#define AFS_USR_AIX_ENV 1 +#define AFS_USR_AIX41_ENV 1 +#define AFS_USR_AIX42_ENV 1 +#define AFS_USR_AIX51_ENV 1 + +#else /* KERNEL */ + +#define AFS_AIX_ENV 1 +#define AFS_AIX32_ENV 1 +#define AFS_AIX41_ENV 1 +#define AFS_AIX42_ENV 1 +#define AFS_AIX51_ENV 1 + +#define AFS_HAVE_FLOCK_SYSID 1 + +#endif /* KERNEL */ + +#include + + /*#define AFS_GLOBAL_SUNLOCK 1 *//* For global locking */ + +#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */ +#define AFS_SYSCALL 105 + +#define AFS_FSNO 4 + +/* Machine / Operating system information */ +#define SYS_NAME "rs_aix73" +#define SYS_NAME_ID SYS_NAME_ID_rs_aix73 +#define AFSBIG_ENDIAN 1 +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_STATVFS 1 /* System supports 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 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 + +#endif /* AFS_PARAM_H */ + +#endif /* !defined(UKERNEL) */ diff --git a/src/libafs/MakefileProto.AIX.in b/src/libafs/MakefileProto.AIX.in index 990fa3f07c..d0d34f0b1f 100644 --- a/src/libafs/MakefileProto.AIX.in +++ b/src/libafs/MakefileProto.AIX.in @@ -85,7 +85,7 @@ DESTDIRS = aix_destdirs KMODS=32 KMODS=32 64 - + KMODS=64