macos: add support for MacOS 10.13

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

Change-Id: I51928279d97c9d86c67db7de5eb7fc9d317fd381
Reviewed-on: https://gerrit.openafs.org/12741
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
This commit is contained in:
Marcio Barbosa 2017-10-03 17:01:56 -03:00 committed by Benjamin Kaduk
parent edc5463f3d
commit 804c9cbf50
6 changed files with 325 additions and 5 deletions

View File

@ -704,6 +704,14 @@ else
AFS_SYSNAME="x86_darwin_160"
OSXSDK="macosx10.12"
;;
x86_64-apple-darwin17.*)
AFS_SYSNAME="x86_darwin_170"
OSXSDK="macosx10.13"
;;
i?86-apple-darwin17.*)
AFS_SYSNAME="x86_darwin_170"
OSXSDK="macosx10.13"
;;
sparc-sun-solaris2.8)
AFS_SYSNAME="sun4x_58"
;;

View File

@ -344,7 +344,7 @@ case $AFS_SYSNAME in
XLIBS="${LIB_AFSDB} -framework CoreFoundation"
;;
*_darwin_100 | *_darwin_110 | *_darwin_120 | *_darwin_130 | *_darwin_140 | *_darwin_150 | *_darwin_160)
*_darwin_100 | *_darwin_110 | *_darwin_120 | *_darwin_130 | *_darwin_140 | *_darwin_150 | *_darwin_160 | *_darwin_170)
AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
MT_CFLAGS="-D_REENTRANT"
MT_LIBS='${XLIBS}'

View File

@ -85,6 +85,9 @@
#define SYS_NAME_ID_x86_darwin_160 532
#define SYS_NAME_ID_amd64_darwin_160 533
#define SYS_NAME_ID_arm_darwin_160 534
#define SYS_NAME_ID_x86_darwin_170 535
#define SYS_NAME_ID_amd64_darwin_170 536
#define SYS_NAME_ID_arm_darwin_170 537
#define SYS_NAME_ID_next_mach20 601
#define SYS_NAME_ID_next_mach30 602

View File

@ -0,0 +1,276 @@
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#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
#if defined(__ppc__)
#define AFS_PPC_ENV 1
#elif defined(__i386__) || defined(__amd64__)
#define AFS_X86_ENV 1
#else
#error Unsupported architecture
#endif
#ifdef __amd64__
#define AFS_64BITUSERPOINTER_ENV 1
#endif
#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
#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"
/* Machine / Operating system information */
#if defined(__ppc__)
#define sys_ppc_darwin_12 1
#define sys_ppc_darwin_13 1
#define sys_ppc_darwin_14 1
#define sys_ppc_darwin_60 1
#define sys_ppc_darwin_70 1
#define sys_ppc_darwin_80 1
#define sys_ppc_darwin_90 1
#define sys_ppc_darwin_100 1
#define SYS_NAME "ppc_darwin_100"
#define SYS_NAME_ID SYS_NAME_ID_ppc_darwin_100
#define AFSBIG_ENDIAN 1
#elif defined(__ppc64__)
#define sys_ppc_darwin_12 1
#define sys_ppc_darwin_13 1
#define sys_ppc_darwin_14 1
#define sys_ppc_darwin_60 1
#define sys_ppc_darwin_70 1
#define sys_ppc_darwin_80 1
#define sys_ppc_darwin_90 1
#define sys_ppc_darwin_100 1
#define sys_ppc64_darwin_100 1
#define SYS_NAME "ppc64_darwin_100"
#define SYS_NAME_ID SYS_NAME_ID_ppc64_darwin_100
#define AFSBIG_ENDIAN 1
#elif defined(__i386__)
#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_x86_darwin_110 1
#define sys_x86_darwin_120 1
#define sys_x86_darwin_130 1
#define sys_x86_darwin_140 1
#define sys_x86_darwin_150 1
#define sys_x86_darwin_160 1
#define sys_x86_darwin_170 1
#define SYS_NAME "x86_darwin_170"
#define SYS_NAME_ID SYS_NAME_ID_x86_darwin_170
#define AFSLITTLE_ENDIAN 1
#elif defined(__amd64__)
#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_NAME "amd64_darwin_170"
#define SYS_NAME_ID SYS_NAME_ID_amd64_darwin_170
#define AFSLITTLE_ENDIAN 1
#else
#error Unsupported architecture
#endif
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_GCPAGS 0
#define RXK_UPCALL_ENV 1
#define RXK_TIMEDSLEEP_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 osi_GetTime(x) microtime(x)
#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
#endif /* AFS_PARAM_H */
#else /* !defined(UKERNEL) */
/* This section for user space compiles only */
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_ENV 1
#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
#define AFS_64BIT_CLIENT 1
#if defined(__ppc__)
#define AFS_PPC_ENV 1
#elif defined(__i386__) || defined(__amd64__)
#define AFS_X86_ENV 1
#else
#error Unsupported architecture
#endif
#ifdef __amd64__
#define AFS_64BITUSERPOINTER_ENV 1
#endif
#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
#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"
/* Machine / Operating system information */
#if defined(__ppc__)
#define sys_ppc_darwin_12 1
#define sys_ppc_darwin_13 1
#define sys_ppc_darwin_14 1
#define sys_ppc_darwin_60 1
#define sys_ppc_darwin_70 1
#define sys_ppc_darwin_80 1
#define sys_ppc_darwin_90 1
#define sys_ppc_darwin_100 1
#define SYS_NAME "ppc_darwin_100"
#define SYS_NAME_ID SYS_NAME_ID_ppc_darwin_100
#define AFSBIG_ENDIAN 1
#elif defined(__i386__)
#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_100 1
#define sys_x86_darwin_110 1
#define sys_x86_darwin_120 1
#define sys_x86_darwin_130 1
#define sys_x64_darwin_140 1
#define sys_x64_darwin_150 1
#define sys_x64_darwin_160 1
#define sys_x64_darwin_170 1
#define SYS_NAME "x86_darwin_170"
#define SYS_NAME_ID SYS_NAME_ID_x86_darwin_170
#define AFSLITTLE_ENDIAN 1
#elif defined(__amd64__)
#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_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_NAME "amd64_darwin_170"
#define SYS_NAME_ID SYS_NAME_ID_amd64_darwin_170
#define AFSLITTLE_ENDIAN 1
#else
#error Unsupported architecture
#endif
#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 AFS_UIOSYS UIO_SYSSPACE
#define AFS_UIOUSER UIO_USERSPACE
#define VATTR_NULL usr_vattr_null
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define BIND_8_COMPAT
#endif /* AFS_PARAM_H */
#endif /* !defined(UKERNEL) */

View File

@ -59,9 +59,9 @@ OBJ_ppc=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "$@.ppc")
OBJ_x86=$(shell echo "${ARCH_x86}" | grep -q -w yes && echo "$@.x86")
OBJ_amd64=$(shell echo "${ARCH_amd64}" | grep -q -w yes && echo "$@.amd64")
<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90 -x86_darwin_160>
<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90 -x86_darwin_160 -x86_darwin_170>
MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS) -Xlinker -kext
<ppc_darwin_70 ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_160>
<ppc_darwin_70 ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_160 x86_darwin_170>
MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS)
<all>
@ -172,10 +172,10 @@ dest_libafs: $(LIBAFSNONFS) $(LIBAFSNONFSDSYM) ;
${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
$(MODLD) -r -o ${LIBAFS} ${AFSAOBJS} ${AFSNFSOBJS} -lcc_kext
<all -x86_darwin_160>
<all -x86_darwin_160 -x86_darwin_170>
${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
$(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext
<x86_darwin_160>
<x86_darwin_160 x86_darwin_170>
${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
$(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext -Xlinker -kext

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>