From 09679ff62a9f5d795cb16f3ceaab62951396ca27 Mon Sep 17 00:00:00 2001 From: weijun Date: Tue, 7 May 2013 12:30:36 +0800 Subject: [PATCH] 8010192: Enable native JGSS provider on Mac Reviewed-by: valeriep --- make/sun/security/Makefile | 6 ++---- makefiles/CompileNativeLibraries.gmk | 2 -- .../classes/sun/security/jgss/GSSManagerImpl.java | 1 + .../security/jgss/wrapper/SunNativeProvider.java | 5 +++++ .../native/sun/security/jgss/wrapper/gssapi.h | 15 +++++++++++++++ test/sun/security/krb5/runNameEquals.sh | 6 +----- 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/make/sun/security/Makefile b/make/sun/security/Makefile index 9e9f8c50d..0a1a7aa72 100644 --- a/make/sun/security/Makefile +++ b/make/sun/security/Makefile @@ -38,12 +38,10 @@ SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk -# build sun/security/jgss/wrapper on non-windows non-macosx platforms +# build sun/security/jgss/wrapper on non-windows platforms JGSS_WRAPPER = ifneq ($(PLATFORM), windows) - ifneq ($(PLATFORM), macosx) - JGSS_WRAPPER = jgss/wrapper - endif + JGSS_WRAPPER = jgss/wrapper endif # Build PKCS#11 on all platforms diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk index cff563a81..b1370d4a3 100644 --- a/makefiles/CompileNativeLibraries.gmk +++ b/makefiles/CompileNativeLibraries.gmk @@ -2545,7 +2545,6 @@ BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC) ########################################################################################## ifneq ($(OPENJDK_TARGET_OS), windows) -ifneq ($(OPENJDK_TARGET_OS), macosx) $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS,\ LIBRARY:=j2gss,\ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\ @@ -2565,7 +2564,6 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS,\ BUILD_LIBRARIES += $(BUILD_LIBJ2GSS) endif -endif ########################################################################################## diff --git a/src/share/classes/sun/security/jgss/GSSManagerImpl.java b/src/share/classes/sun/security/jgss/GSSManagerImpl.java index 8a60b8b10..b88f722b2 100644 --- a/src/share/classes/sun/security/jgss/GSSManagerImpl.java +++ b/src/share/classes/sun/security/jgss/GSSManagerImpl.java @@ -48,6 +48,7 @@ public class GSSManagerImpl extends GSSManager { public Boolean run() { String osname = System.getProperty("os.name"); if (osname.startsWith("SunOS") || + osname.contains("OS X") || osname.startsWith("Linux")) { return new Boolean(System.getProperty (USE_NATIVE_PROP)); diff --git a/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java b/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java index 1cbc0406a..b0e81aa2a 100644 --- a/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java +++ b/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java @@ -90,6 +90,11 @@ public final class SunNativeProvider extends Provider { "libgssapi_krb5.so", "libgssapi_krb5.so.2", }; + } else if (osname.contains("OS X")) { + gssLibs = new String[]{ + "libgssapi_krb5.dylib", + "/usr/lib/sasl2/libgssapiv2.2.so", + }; } } else { gssLibs = new String[]{ defaultLib }; diff --git a/src/share/native/sun/security/jgss/wrapper/gssapi.h b/src/share/native/sun/security/jgss/wrapper/gssapi.h index 50db92c4e..38440fb52 100644 --- a/src/share/native/sun/security/jgss/wrapper/gssapi.h +++ b/src/share/native/sun/security/jgss/wrapper/gssapi.h @@ -32,10 +32,21 @@ #ifndef _GSSAPI_H_ #define _GSSAPI_H_ +#if defined(__MACH__) && defined(__APPLE__) +# include +# if TARGET_RT_MAC_CFM +# error "Use KfM 4.0 SDK headers for CFM compilation." +# endif +#endif + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +#if TARGET_OS_MAC +# pragma pack(push,2) +#endif + /* * First, include stddef.h to get size_t defined. */ @@ -671,6 +682,10 @@ OM_uint32 gss_canonicalize_name( gss_name_t * /* output_name */ ); +#if TARGET_OS_MAC +# pragma pack(pop) +#endif + #ifdef __cplusplus } #endif diff --git a/test/sun/security/krb5/runNameEquals.sh b/test/sun/security/krb5/runNameEquals.sh index 1c3dca34a..6db90c353 100644 --- a/test/sun/security/krb5/runNameEquals.sh +++ b/test/sun/security/krb5/runNameEquals.sh @@ -52,15 +52,11 @@ NATIVE=false # set platform-dependent variables OS=`uname -s` case "$OS" in - SunOS | Linux ) + SunOS | Linux | Darwin ) PATHSEP=":" FILESEP="/" NATIVE=true ;; - Darwin ) - PATHSEP=":" - FILESEP="/" - ;; CYGWIN* ) PATHSEP=";" FILESEP="/" -- GitLab