macos: Add support for MacOS 12.0

This commit introduces the new set of changes / files required to
successfully build the OpenAFS source code on OS X 12.0 "Monterey".

Change-Id: Iada9cab596747122c1973654ae4f78d52957c8a6
Reviewed-on: https://gerrit.openafs.org/14923
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
This commit is contained in:
Marcio Barbosa 2022-04-07 03:16:45 +00:00 committed by Benjamin Kaduk
parent 982d2f9dbe
commit 7a862f940b
6 changed files with 275 additions and 1 deletions

View File

@ -319,7 +319,7 @@ case $AFS_SYSNAME in
XLIBS="${LIB_AFSDB} -framework CoreFoundation"
;;
*_darwin_190 | *_darwin_200)
*_darwin_190 | *_darwin_200 | *_darwin_210)
AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
MT_CFLAGS="-D_REENTRANT"
MT_LIBS='${XLIBS}'

View File

@ -198,6 +198,14 @@ else
AFS_SYSNAME="arm_darwin_200"
OSXSDK="macosx11.0"
;;
x86_64-apple-darwin21.*)
AFS_SYSNAME="x86_darwin_210"
OSXSDK="macosx12.0"
;;
arm-apple-darwin21.*)
AFS_SYSNAME="arm_darwin_210"
OSXSDK="macosx12.0"
;;
sparc-sun-solaris2.8)
AFS_SYSNAME="sun4x_58"
;;
@ -384,6 +392,9 @@ case $AFS_SYSNAME in
*_darwin_200)
AFS_PARAM=param.darwin_200.h
;;
*_darwin_210)
AFS_PARAM=param.darwin_210.h
;;
*)
AFS_PARAM=param.${AFS_SYSNAME}.h
;;

View File

@ -97,6 +97,8 @@
#define SYS_NAME_ID_x86_darwin_200 544
#define SYS_NAME_ID_amd64_darwin_200 545
#define SYS_NAME_ID_arm_darwin_200 546
#define SYS_NAME_ID_amd64_darwin_210 547
#define SYS_NAME_ID_arm_darwin_210 548
#define SYS_NAME_ID_next_mach20 601
#define SYS_NAME_ID_next_mach30 602

View File

@ -0,0 +1,195 @@
#ifndef AFS_PARAM_H
# define AFS_PARAM_H
# ifndef UKERNEL
/* This section for kernel libafs compiles only */
# define AFS_ENV 1
# define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
# define AFS_64BIT_CLIENT 1
# define AFS_64BIT_IOPS_ENV 1
# define AFS_64BIT_SIZEOF 1 /* seriously? */
# include <afs/afs_sysnames.h>
# define AFS_DARWIN_ENV
# define AFS_DARWIN70_ENV
# define AFS_DARWIN80_ENV
# define AFS_DARWIN90_ENV
# define AFS_DARWIN100_ENV
# define AFS_DARWIN110_ENV
# define AFS_DARWIN120_ENV
# define AFS_DARWIN130_ENV
# define AFS_DARWIN140_ENV
# define AFS_DARWIN150_ENV
# define AFS_DARWIN160_ENV
# define AFS_DARWIN170_ENV
# define AFS_DARWIN180_ENV
# define AFS_DARWIN190_ENV
# define AFS_DARWIN200_ENV
# define AFS_DARWIN210_ENV
# undef AFS_NONFSTRANS
# define AFS_NONFSTRANS
# define AFS_SYSCALL 230
# define AFS_NAMEI_ENV 1
# define DARWIN_REFBASE 3
# define AFS_WARNUSER_MARINER_ENV 1
# define AFS_CACHE_VNODE_PATH
# define AFS_NEW_BKG 1
# define NEED_IOCTL32
/* File system entry (used if mount.h doesn't define MOUNT_AFS) */
# define AFS_MOUNT_AFS "afs"
# define AFS_HAVE_FFS 1 /* Use system's ffs. */
# define AFS_GCPAGS 0
# define RXK_UPCALL_ENV 1
# define RXK_TIMEDSLEEP_ENV 1
# define AFS_USERSPACE_IP_ADDR 1
# define AFS_SOCKPROXY_ENV 1
# ifdef KERNEL
# undef MACRO_BEGIN
# undef MACRO_END
# include <kern/macro_help.h>
# define AFS_GLOBAL_SUNLOCK 1
# define AFS_VFS34 1 /* What is VFS34??? */
# define afsio_iov uio_iov
# define afsio_iovcnt uio_iovcnt
# define afsio_offset uio_offset
# define afsio_seg uio_segflg
# define afsio_resid uio_resid
# define AFS_UIOSYS UIO_SYSSPACE
# define AFS_UIOUSER UIO_USERSPACE
# define AFS_CLBYTES CLBYTES
# define AFS_KALLOC(x) _MALLOC(x, M_TEMP, M_WAITOK)
# define AFS_KFREE(x,y) _FREE(x,M_TEMP)
# define v_count v_usecount
# define v_vfsp v_mount
# define vfs_bsize mnt_stat.f_bsize
# define vfs_fsid mnt_stat.f_fsid
# define va_nodeid va_fileid
# define vfs_vnodecovered mnt_vnodecovered
# define direct dirent
# define BIND_8_COMPAT
# endif /* KERNEL */
# else /* !defined(UKERNEL) */
/* This section for user space compiles only */
# define AFS_ENV 1
# define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
# define AFS_64BIT_CLIENT 1
# include <afs/afs_sysnames.h>
# define AFS_USERSPACE_ENV
# define AFS_USR_DARWIN_ENV
# define AFS_USR_DARWIN70_ENV
# define AFS_USR_DARWIN80_ENV
# define AFS_USR_DARWIN90_ENV
# define AFS_USR_DARWIN100_ENV
# define AFS_USR_DARWIN110_ENV
# define AFS_USR_DARWIN120_ENV
# define AFS_USR_DARWIN130_ENV
# define AFS_USR_DARWIN140_ENV
# define AFS_USR_DARWIN150_ENV
# define AFS_USR_DARWIN160_ENV
# define AFS_USR_DARWIN170_ENV
# define AFS_USR_DARWIN180_ENV
# define AFS_USR_DARWIN190_ENV
# define AFS_USR_DARWIN200_ENV
# define AFS_USR_DARWIN210_ENV
# undef AFS_NONFSTRANS
# define AFS_NONFSTRANS
# define AFS_SYSCALL 230
# define DARWIN_REFBASE 0
# define AFS_WARNUSER_MARINER_ENV 1
/* File system entry (used if mount.h doesn't define MOUNT_AFS) */
# define AFS_MOUNT_AFS "afs"
# define AFS_HAVE_FFS 1 /* Use system's ffs. */
# define AFS_UIOSYS UIO_SYSSPACE
# define AFS_UIOUSER UIO_USERSPACE
# define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
# define RXK_LISTENER_ENV 1
# define AFS_VFS34 1 /* What is VFS34??? */
# define afsio_iov uio_iov
# define afsio_iovcnt uio_iovcnt
# define afsio_offset uio_offset
# define afsio_seg uio_segflg
# define afsio_resid uio_resid
# define VATTR_NULL usr_vattr_null
# define AFS_DIRENT
# ifndef CMSERVERPREF
# define CMSERVERPREF
# endif
# define BIND_8_COMPAT
# endif /* !defined(UKERNEL) */
/* Machine / Operating system information */
# if defined(__amd64__)
# define AFS_X86_ENV 1
# define AFS_64BITUSERPOINTER_ENV 1
# define sys_x86_darwin_12 1
# define sys_x86_darwin_13 1
# define sys_x86_darwin_14 1
# define sys_x86_darwin_60 1
# define sys_x86_darwin_70 1
# define sys_x86_darwin_80 1
# define sys_x86_darwin_90 1
# define sys_x86_darwin_100 1
# define sys_amd64_darwin_100 1
# define sys_amd64_darwin_110 1
# define sys_amd64_darwin_120 1
# define sys_amd64_darwin_130 1
# define sys_amd64_darwin_140 1
# define sys_amd64_darwin_150 1
# define sys_amd64_darwin_160 1
# define sys_amd64_darwin_170 1
# define sys_amd64_darwin_180 1
# define sys_amd64_darwin_190 1
# define sys_amd64_darwin_200 1
# define sys_amd64_darwin_210 1
# define SYS_NAME "amd64_darwin_210"
# define SYS_NAME_ID SYS_NAME_ID_amd64_darwin_210
# define AFSLITTLE_ENDIAN 1
# elif defined(__arm64__)
# define AFS_ARM_ENV 1
# define AFS_ARM64_DARWIN_ENV 1
# define sys_arm_darwin_200 1
# define sys_arm_darwin_210 1
# define SYS_NAME "arm_darwin_210"
# define SYS_NAME_ID SYS_NAME_ID_arm_darwin_210
# define AFSLITTLE_ENDIAN 1
# else
# error Unsupported architecture
# endif /* __amd64__ */
#endif /* AFS_PARAM_H */

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>afs</string>
<key>CFBundleIdentifier</key>
<string>org.openafs.filesystems.afs</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>8.0</string>
<key>CFBundleName</key>
<string>afs</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>@MACOS_VERSION@</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@MACOS_VERSION@</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<string>8.0.0</string>
<key>com.apple.kpi.mach</key>
<string>8.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>8.0</string>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>afs</string>
<key>CFBundleIdentifier</key>
<string>org.openafs.filesystems.afs</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>8.0</string>
<key>CFBundleName</key>
<string>afs</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>@MACOS_VERSION@</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@MACOS_VERSION@</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<string>8.0.0</string>
<key>com.apple.kpi.mach</key>
<string>8.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>8.0</string>
</dict>
</dict>
</plist>