From a33f77b6e11214326f5e752de171602c0e9efe86 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Tue, 26 Apr 2011 10:46:41 -0400 Subject: [PATCH] macos: further next version support try to optimize out things which will be missing Change-Id: Ibee45ae75fa0a5cbdad9eb7a83b12cfaba85b201 Reviewed-on: http://gerrit.openafs.org/4569 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- acinclude.m4 | 20 +++++++++++++ src/afs/DARWIN/osi_file.c | 2 ++ src/afs/afs.h | 7 ++++- src/afs/afs_osi_pag.c | 4 ++- src/config/param.x86_darwin_110.h | 2 -- .../OpenAFS.xcodeproj/project.pbxproj | 2 ++ .../AklogAuthPlugin.xcodeproj/project.pbxproj | 4 +++ src/platform/DARWIN/Makefile.in | 33 +++++++++++----------- src/vol/devname.c | 4 +-- src/vol/salvaged.c | 2 +- src/vol/salvager.c | 2 +- src/vol/vol-salvage.c | 2 +- src/vol/volume.c | 2 +- 13 files changed, 59 insertions(+), 27 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 1cddad1..c9bb7f7 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -516,24 +516,43 @@ else ;; powerpc-apple-darwin7*) AFS_SYSNAME="ppc_darwin_70" + OSXSDK="macosx10.3" ;; powerpc-apple-darwin8.*) AFS_SYSNAME="ppc_darwin_80" + OSXSDK="macosx10.4" ;; i386-apple-darwin8.*) AFS_SYSNAME="x86_darwin_80" + OSXSDK="macosx10.4" ;; powerpc-apple-darwin9.*) AFS_SYSNAME="ppc_darwin_90" + OSXSDK="macosx10.5" ;; i386-apple-darwin9.*) AFS_SYSNAME="x86_darwin_90" + OSXSDK="macosx10.5" ;; i?86-apple-darwin10.*) AFS_SYSNAME="x86_darwin_100" + OSXSDK="macosx10.6" ;; x86_64-apple-darwin10.*) AFS_SYSNAME="x86_darwin_100" + OSXSDK="macosx10.6" + ;; + arm-apple-darwin10.*) + AFS_SYSNAME="arm_darwin_100" + OSXSDK="iphoneos4.0" + ;; + x86_64-apple-darwin11.*) + AFS_SYSNAME="x86_darwin_110" + OSXSDK="macosx10.7" + ;; + i?86-apple-darwin11.*) + AFS_SYSNAME="x86_darwin_110" + OSXSDK="macosx10.7" ;; sparc-sun-solaris2.5*) AFS_SYSNAME="sun4x_55" @@ -682,6 +701,7 @@ case $AFS_SYSNAME in AC_CHECK_HEADERS(crt_externs.h) DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist + AC_SUBST(OSXSDK) ;; esac diff --git a/src/afs/DARWIN/osi_file.c b/src/afs/DARWIN/osi_file.c index ae027d7..4012ff7 100644 --- a/src/afs/DARWIN/osi_file.c +++ b/src/afs/DARWIN/osi_file.c @@ -150,7 +150,9 @@ osi_UFSOpen(afs_dcache_id_t *ainode) /* valid for alpha_osf, SunOS, Ultrix */ memset(&afs_osi_cred, 0, sizeof(afs_ucred_t)); afs_osi_cred.cr_ref++; +#ifndef AFS_DARWIN110_ENV afs_osi_cred.cr_ngroups = 1; +#endif afs_osicred_initialized = 1; } afile = (struct osi_file *)osi_AllocSmallSpace(sizeof(struct osi_file)); diff --git a/src/afs/afs.h b/src/afs/afs.h index 13614cb..73d5947 100644 --- a/src/afs/afs.h +++ b/src/afs/afs.h @@ -1491,6 +1491,9 @@ extern int afsd_dynamic_vcaches; */ #if defined(AFS_NBSD40_ENV) /* in osi_machdep.h as expected */ +#elif defined (AFS_DARWIN110_ENV) +#define afs_cr_uid(cred) kauth_cred_getuid((kauth_cred_t)(cred)) +#define afs_cr_gid(cred) kauth_cred_getgid((kauth_cred_t)(cred)) #elif !(defined(AFS_LINUX26_ENV) && defined(STRUCT_TASK_STRUCT_HAS_CRED)) #define afs_cr_uid(cred) ((cred)->cr_uid) #define afs_cr_gid(cred) ((cred)->cr_gid) @@ -1499,6 +1502,7 @@ extern int afsd_dynamic_vcaches; #define afs_cr_rgid(cred) ((cred)->cr_rgid) #endif +#if !defined(AFS_DARWIN110_ENV) static_inline void afs_set_cr_uid(afs_ucred_t *cred, uid_t uid) { cred->cr_uid = uid; @@ -1516,7 +1520,8 @@ static_inline void afs_set_cr_rgid(afs_ucred_t *cred, gid_t gid) { cred->cr_rgid = gid; } -#endif +#endif /* ! AFS_OBSD_ENV */ +#endif /* ! AFS_DARWIN110_ENV */ #endif #ifdef AFS_SUN5_ENV diff --git a/src/afs/afs_osi_pag.c b/src/afs/afs_osi_pag.c index 68a2a4c..c888605 100644 --- a/src/afs/afs_osi_pag.c +++ b/src/afs/afs_osi_pag.c @@ -542,7 +542,7 @@ void afs_get_groups_from_pag(afs_uint32 pag, gid_t *g0p, gid_t *g1p) } #endif -#ifndef AFS_LINUX26_ENV +#if !defined(AFS_LINUX26_ENV) && !defined(AFS_DARWIN110_ENV) static afs_int32 osi_get_group_pag(afs_ucred_t *cred) { @@ -615,6 +615,7 @@ PagInCred(afs_ucred_t *cred) if (cred == NULL || cred == afs_osi_credp) { return NOPAG; } +#ifndef AFS_DARWIN110_ENV #if defined(AFS_LINUX26_ENV) && defined(LINUX_KEYRING_SUPPORT) /* * If linux keyrings are in use and we carry the session keyring in our credentials @@ -635,5 +636,6 @@ PagInCred(afs_ucred_t *cred) #else pag = osi_get_group_pag(cred); #endif +#endif return pag; } diff --git a/src/config/param.x86_darwin_110.h b/src/config/param.x86_darwin_110.h index 8fa8ebf..81c2708 100644 --- a/src/config/param.x86_darwin_110.h +++ b/src/config/param.x86_darwin_110.h @@ -15,7 +15,6 @@ #else #error Unsupported architecture #endif -#define AFS_VFSINCL_ENV 1 #ifdef __amd64__ #define AFS_64BITUSERPOINTER_ENV 1 #endif @@ -139,7 +138,6 @@ #ifndef AFS_PARAM_H #define AFS_PARAM_H -#define AFS_VFSINCL_ENV 1 /* NOBODY uses this.... */ #define AFS_ENV 1 #define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */ #if defined(__ppc__) diff --git a/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj b/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj index c319886..c18a959 100644 --- a/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj +++ b/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj @@ -876,6 +876,7 @@ "ARCHS[sdk=macosx10.4u]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)"; + "ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_GC = supported; @@ -895,6 +896,7 @@ "ARCHS[sdk=macosx10.4u]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)"; + "ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_GC = supported; diff --git a/src/platform/DARWIN/AklogAuthPlugin/AklogAuthPlugin.xcodeproj/project.pbxproj b/src/platform/DARWIN/AklogAuthPlugin/AklogAuthPlugin.xcodeproj/project.pbxproj index d0f7a8b..5f9d9d5 100644 --- a/src/platform/DARWIN/AklogAuthPlugin/AklogAuthPlugin.xcodeproj/project.pbxproj +++ b/src/platform/DARWIN/AklogAuthPlugin/AklogAuthPlugin.xcodeproj/project.pbxproj @@ -113,6 +113,7 @@ "ARCHS[sdk=macosx10.4u]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)"; + "ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)"; ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; @@ -134,6 +135,7 @@ "ARCHS[sdk=macosx10.4u]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)"; + "ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)"; ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; @@ -152,6 +154,7 @@ "ARCHS[sdk=macosx10.4u]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)"; + "ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -168,6 +171,7 @@ "ARCHS[sdk=macosx10.4u]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)"; "ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)"; + "ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; diff --git a/src/platform/DARWIN/Makefile.in b/src/platform/DARWIN/Makefile.in index e3693c4..10313f3 100644 --- a/src/platform/DARWIN/Makefile.in +++ b/src/platform/DARWIN/Makefile.in @@ -14,6 +14,8 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ +OSXSDK = @OSXSDK@ + .PHONY: all afscell all: OpenAFS.prefPane afssettings afscell growlagent aklog.bundle @@ -23,34 +25,31 @@ afscell/build/Release/afscell.bundle: afscell afscell/InstallerSections.plist: afscell OpenAFS.prefPane: - @case ${SYS_NAME} in \ - *_darwin_100 ) \ - xcodebuild -sdk macosx10.6 -project ${srcdir}/AFSPreference/OpenAFS.xcodeproj SYMDIR=`pwd`/AFSPreference/build;; \ - *_darwin_90 ) \ - xcodebuild -sdk macosx10.5 -project ${srcdir}/AFSPreference/OpenAFS.xcodeproj SYMDIR=`pwd`/AFSPreference/build;; \ - *_darwin_80 ) \ - xcodebuild -sdk macosx10.4 -project ${srcdor}/AFSPreference/OpenAFS.xcodeproj SYMDIR=`pwd`/AFSPreference/build;; \ + @case ${OSXSDK} in \ + macosx* ) \ + xcodebuild -sdk ${OSXSDK} -project ${srcdir}/AFSPreference/OpenAFS.xcodeproj SYMDIR=`pwd`/AFSPreference/build;; \ * ) \ - echo Not building AFS prefPane for ${SYS_NAME} ;; \ + echo Not building AFS prefPane for ${OSXSDK} ;; \ esac aklog.bundle: - @case ${SYS_NAME} in \ - *_darwin_100 ) \ - xcodebuild -sdk macosx10.6 -project ${srcdir}/AklogAuthPlugin/AklogAuthPlugin.xcodeproj SYMDIR=`pwd`/AklogAuthPlugin/build;; \ - *_darwin_90 ) \ - xcodebuild -sdk macosx10.5 -project ${srcdir}/AklogAuthPlugin/AklogAuthPlugin.xcodeproj SYMDIR=`pwd`/AklogAuthPlugin/build;; \ - *_darwin_80 ) \ - xcodebuild -sdk macosx10.4 -project ${srcdor}/AklogAuthPlugin/AklogAuthPlugin.xcodeproj SYMDIR=`pwd`/AklogAuthPlugin/build;; \ + @case ${OSXSDK} in \ + macosx* ) \ + xcodebuild -sdk ${OSXSDK} -project ${srcdir}/AklogAuthPlugin/AklogAuthPlugin.xcodeproj SYMDIR=`pwd`/AklogAuthPlugin/build;; \ * ) \ - echo Not building AklogAuthPlugin for ${SYS_NAME} ;; \ + echo Not building AklogAuthPlugin for ${OSXSDK} ;; \ esac growlagent: cd growlagent && $(MAKE) all afscell: - xcodebuild -project ${srcdir}/afscell/afscell.xcodeproj SYMROOT=`pwd`/afscell/build + @case ${OSXSDK} in \ + macosx* ) \ + xcodebuild -sdk ${OSXSDK} -project ${srcdir}/afscell/afscell.xcodeproj SYMROOT=`pwd`/afscell/build;; \ + * ) \ + echo Not building afscell.bundle for ${OSXSDK} ;; \ + esac afssettings: afssettings.m ${CC} ${AFS_CFLAGS} -o afssettings $? -framework Foundation diff --git a/src/vol/devname.c b/src/vol/devname.c index 35c2a3e..0b77933 100644 --- a/src/vol/devname.c +++ b/src/vol/devname.c @@ -34,7 +34,7 @@ #endif #endif #else /* AFS_VFSINCL_ENV */ -#if !defined(AFS_AIX_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_ARM_DARWIN_ENV) +#if !defined(AFS_AIX_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_DARWIN_ENV) #include #endif #endif /* AFS_VFSINCL_ENV */ @@ -166,7 +166,7 @@ vol_DevName(dev_t adev, char *wpath) if (stat(part, &status) == -1) { continue; } -#if !defined(AFS_SGI_XFS_IOPS_ENV) && !defined(AFS_LINUX22_ENV) && !defined(AFS_ARM_DARWIN_ENV) +#if !defined(AFS_SGI_XFS_IOPS_ENV) && !defined(AFS_LINUX22_ENV) && !defined(AFS_DARWIN_ENV) if ((status.st_ino != ROOTINO) /*|| ((status.st_mode & S_IFMT) != S_IFBLK) */ ) { continue; diff --git a/src/vol/salvaged.c b/src/vol/salvaged.c index d24b9f6..684527e 100644 --- a/src/vol/salvaged.c +++ b/src/vol/salvaged.c @@ -53,7 +53,7 @@ #ifdef AFS_OSF_ENV #include #else /* AFS_OSF_ENV */ -#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_ARM_DARWIN_ENV) +#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_DARWIN_ENV) #include #endif #endif diff --git a/src/vol/salvager.c b/src/vol/salvager.c index 892bd77..b647b14 100644 --- a/src/vol/salvager.c +++ b/src/vol/salvager.c @@ -55,7 +55,7 @@ #ifdef AFS_OSF_ENV #include #else /* AFS_OSF_ENV */ -#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_ARM_DARWIN_ENV) +#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_DARWIN_ENV) #include #endif #endif diff --git a/src/vol/vol-salvage.c b/src/vol/vol-salvage.c index 53dc826..24f59f2 100644 --- a/src/vol/vol-salvage.c +++ b/src/vol/vol-salvage.c @@ -119,7 +119,7 @@ Vnodes with 0 inode pointers in RW volumes are now deleted. #ifdef AFS_OSF_ENV #include #else /* AFS_OSF_ENV */ -#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_ARM_DARWIN_ENV) +#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_DARWIN_ENV) #include #endif #endif diff --git a/src/vol/volume.c b/src/vol/volume.c index 2f54b87..f1e1bc8 100644 --- a/src/vol/volume.c +++ b/src/vol/volume.c @@ -51,7 +51,7 @@ #endif #endif #else /* AFS_VFSINCL_ENV */ -#if !defined(AFS_AIX_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_ARM_DARWIN_ENV) +#if !defined(AFS_AIX_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_DARWIN_ENV) #include #endif #endif /* AFS_VFSINCL_ENV */ -- 1.9.4