macos: Add support for MacOS 12.0 23/14923/7
authorMarcio Barbosa <mbarbosa@sinenomine.net>
Thu, 7 Apr 2022 03:16:45 +0000 (03:16 +0000)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 13 May 2022 18:04:51 +0000 (14:04 -0400)
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>

src/cf/osconf.m4
src/cf/sysname.m4
src/config/afs_sysnames.h
src/config/param.darwin_210.h [new file with mode: 0644]
src/libafs/afs.arm_darwin_210.plist.in [new file with mode: 0644]
src/libafs/afs.x86_darwin_210.plist.in [new file with mode: 0644]

index 9ce927b..d98a1fe 100644 (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}'
index c0f4414..9a0927e 100644 (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
                 ;;
index 57e0889..08c2ac1 100644 (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
diff --git a/src/config/param.darwin_210.h b/src/config/param.darwin_210.h
new file mode 100644 (file)
index 0000000..4759652
--- /dev/null
@@ -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 */
diff --git a/src/libafs/afs.arm_darwin_210.plist.in b/src/libafs/afs.arm_darwin_210.plist.in
new file mode 100644 (file)
index 0000000..a138571
--- /dev/null
@@ -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>
diff --git a/src/libafs/afs.x86_darwin_210.plist.in b/src/libafs/afs.x86_darwin_210.plist.in
new file mode 100644 (file)
index 0000000..a138571
--- /dev/null
@@ -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>