changeset 2602:91cb89e3e986

Bring in unlimited crypto policy, SystemTap and NSS multiple initialisation fixes. 2012-11-07 Andrew John Hughes <gnu_andrew@member.fsf.org> * patches/systemtap.patch: Removed. * INSTALL: Update SystemTap documentation. * Makefile.am: (JDK_CHANGESET): Updated to tip. (JDK_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Remove systemtap.patch (ICEDTEA_ENV): Set UNLIMITED_CRYPTO. * README: Update SystemTap documentation. * configure.ac: Remove --enable-systemtap option. Only issue a warning and not set ENABLE_SYSTEMTAP if sdt.h is not found or is outdated. * hotspot.map: Update default HotSpot to tip. * nss.cfg.in: Set handleStartupErrors to ignoreMultipleInitialisation so that our PKCS11 provider configuration is silently dropped if the user has already configured it.
author andrew
date Wed, 07 Nov 2012 14:31:11 -0500
parents d51e4b4fe8ab
children 24dbf739e406
files ChangeLog INSTALL Makefile.am README configure.ac hotspot.map nss.cfg.in patches/systemtap.patch
diffstat 8 files changed, 55 insertions(+), 185 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Oct 25 15:35:14 2012 +0100
+++ b/ChangeLog	Wed Nov 07 14:31:11 2012 -0500
@@ -1,3 +1,24 @@
+2012-11-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* patches/systemtap.patch: Removed.
+	* INSTALL: Update SystemTap documentation.
+	* Makefile.am:
+	(JDK_CHANGESET): Updated to tip.
+	(JDK_SHA256SUM): Likewise.
+	(ICEDTEA_PATCHES): Remove systemtap.patch
+	(ICEDTEA_ENV): Set UNLIMITED_CRYPTO.
+	* README: Update SystemTap documentation.
+	* configure.ac:
+	Remove --enable-systemtap option.  Only
+	issue a warning and not set
+	ENABLE_SYSTEMTAP if sdt.h is not found
+	or is outdated.
+	* hotspot.map: Update default HotSpot to tip.
+	* nss.cfg.in: Set handleStartupErrors
+	to ignoreMultipleInitialisation so that our
+	PKCS11 provider configuration is silently
+	dropped if the user has already configured it.
+
 2012-10-24  Lukas Berk  <lberk@redhat.com>
 
 	* Makefile.am:
--- a/INSTALL	Thu Oct 25 15:35:14 2012 +0100
+++ b/INSTALL	Wed Nov 07 14:31:11 2012 -0500
@@ -34,7 +34,7 @@
 libffi (for --enable-zero or on archs other than x86/x86_64/sparc)
 pulseaudio-libs-devel >= 0.9.11 (for --enable-pulse-java)
 LLVM 2.5 or later (for --enable-shark)
-systemtap-sdl-devel >= 0.9.5 (for --enable-systemtap, Java method tracing requires systemtap >= 0.9.9)
+systemtap-sdl-devel >= 0.9.5 (Java method tracing requires systemtap >= 0.9.9)
 
 See ./configure --help if you need to override the defaults.
 
@@ -231,16 +231,14 @@
 =========
 
 IcedTea7 includes work to allow the existing DTrace probes included in
-OpenJDK to be used with SystemTap.  This is enabled using the
---enable-systemtap option, and requires version 0.9.5 or later (0.9.9
+OpenJDK to be used with SystemTap.  This requires version 0.9.5 or later (0.9.9
 or later if you want Java method tracing).  The tapset needs to know
-the final install location of the JDK, so the --with-abs-install-dir
+the final install location of the JDK, so the --with-abs-install-dir option
 should also be used to specify this.  If not set, it defaults to the
 in-tree location of openjdk.build/j2sdk-image and requires
 manual changes to tapset/hotspot.stp to work from elsewhere. For
 example, if you plan to install the resulting build in
 /usr/lib/jvm/java-1.6.0-openjdk, then you should specify
---enable-systemtap
 --with-abs-install-dir=/usr/lib/jvm/java-1.6.0-openjdk.
 
 NSS Security Provider
--- a/Makefile.am	Thu Oct 25 15:35:14 2012 +0100
+++ b/Makefile.am	Wed Nov 07 14:31:11 2012 -0500
@@ -7,14 +7,14 @@
 CORBA_CHANGESET = 1285389d6969
 JAXP_CHANGESET = 8e9679984e79
 JAXWS_CHANGESET = bbd4ecb4bbcb
-JDK_CHANGESET = 6ced7fea7614
+JDK_CHANGESET = e9c857dcb964
 LANGTOOLS_CHANGESET = 79e875e2dca3
 OPENJDK_CHANGESET = 0fa8b0b4ca26
 
 CORBA_SHA256SUM = 880683c950e833a792d4c36059af4f8a4a50dc8fb9d773831bd9cd4578f2f2f7
 JAXP_SHA256SUM = ead7718f52579c1c096ed7e853582b2622ad7e64afbf9d360eae6af55de58377
 JAXWS_SHA256SUM = 78d4e79dc8b08bfd5940f02990e9664c296242dfcef4b5e820f93744e98e7e2d
-JDK_SHA256SUM = f720f75748ed5f9c4084a55be9465922f6a943234351e20567308cbfa02f0eca
+JDK_SHA256SUM = d47ae7848f09723302f18f40987f7419f98e0470131ed96f77377719bbe6e03e
 LANGTOOLS_SHA256SUM = 42444bf6a314d1914013b826d8137d6edf9843c14011cec5a4761289d1846a3d
 OPENJDK_SHA256SUM = acab74106ee2670962b048cd4f1b7cfbb0f55340477cd625b7cb40c6bc99036c
 
@@ -287,7 +287,6 @@
 
 if ENABLE_SYSTEMTAP
 ICEDTEA_PATCHES += \
-	patches/systemtap.patch \
 	patches/systemtap_gc.patch
 endif
 
@@ -473,7 +472,8 @@
 	CUPS_CFLAGS="${CUPS_CFLAGS}" \
 	STRIP_POLICY=no_strip \
 	JAVAC_WARNINGS_FATAL="$(WERROR_STATUS)" \
-	COMPILER_WARNINGS_FATAL="$(WERROR_STATUS)"
+	COMPILER_WARNINGS_FATAL="$(WERROR_STATUS)" \
+	UNLIMITED_CRYPTO="true"
 
 if ENABLE_CACAO
 ICEDTEA_ENV += \
--- a/README	Thu Oct 25 15:35:14 2012 +0100
+++ b/README	Wed Nov 07 14:31:11 2012 -0500
@@ -91,15 +91,14 @@
 SystemTap Support
 =================
 
-The --enable-systemtap configure option will try to find the systemtap
-runtime development files (sdt.h and the dtrace python script wrapper),
-enable compilation of static markers in the hotspot code and install a
-systemtap hotspot.stp tapset for easy tracing with systemtap's stap
-utility. The probes are documented in tapset/hotspot.stp.
+configure will try to find the systemtap runtime development files (sdt.h and
+the dtrace python script wrapper), enable compilation of static markers in the
+hotspot code and install a systemtap hotspot.stp tapset for easy tracing with
+systemtap's stap utility. The probes are documented in tapset/hotspot.stp.
 
-This requires the systemtap-sdt-devel package as build dependency and
+This requires the systemtap-sdt-devel package as a build dependency and
 optionally the systemtap package at run time when the user want to use
-the tapset to trace java programs. The probes have zero overhead when
+the tapset to trace Java programs. The probes have zero overhead when
 not used and can safely be compiled in even when not used at runtime.
 
 Support for Additional VMs
--- a/configure.ac	Thu Oct 25 15:35:14 2012 +0100
+++ b/configure.ac	Wed Nov 07 14:31:11 2012 -0500
@@ -75,14 +75,6 @@
 AM_CONDITIONAL([ENABLE_DOCS], [test x$ENABLE_DOCS = xyes])
 AC_MSG_RESULT(${ENABLE_DOCS})
 
-AC_MSG_CHECKING([whether to include SystemTap tracing support])
-AC_ARG_ENABLE([systemtap],
-	      [AS_HELP_STRING([--enable-systemtap],
-	      		      [Enable inclusion of SystemTap trace support])],
-	      [ENABLE_SYSTEMTAP="${enableval}"], [ENABLE_SYSTEMTAP='no'])
-AM_CONDITIONAL([ENABLE_SYSTEMTAP], [test x$ENABLE_SYSTEMTAP = xyes])
-AC_MSG_RESULT(${ENABLE_SYSTEMTAP})
-
 IT_LOCATE_NSS
 IT_GET_PKGVERSION
 IT_GET_LSB_DATA
@@ -246,14 +238,13 @@
   fi
 fi
 
-if test "x${ENABLE_SYSTEMTAP}" = xyes; then
 AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUND='yes'],
                 [SDT_H_FOUND='no';
-                   AC_MSG_ERROR([systemtap support needs sys/sdt.h header])])
+                   AC_MSG_WARN([systemtap support needs sys/sdt.h header])])
 
- AC_MSG_CHECKING([working sys/sdt.h and g++ support])
- AC_LANG_PUSH([C++])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+AC_MSG_CHECKING([working sys/sdt.h and g++ support])
+AC_LANG_PUSH([C++])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/sdt.h>
 class ProbeClass
 {
@@ -284,11 +275,12 @@
   DTRACE_PROBE1(_test_, call, i);
   ProbeClass inst = ProbeClass(i, "call");
   inst.method(24);
-]])], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([systemtap sdt.h or g++ too old])])
-  AC_LANG_POP([C++])
+]])], [AC_MSG_RESULT([yes])], [SDT_H_FOUND='no'; AC_MSG_WARN([systemtap sdt.h or g++ too old])])
+AC_LANG_POP([C++])
+AM_CONDITIONAL([ENABLE_SYSTEMTAP], [test x$SDT_H_FOUND = xyes])
 
-  AC_MSG_CHECKING([for absolute java home install dir])
-  AC_ARG_WITH([abs-install-dir],
+AC_MSG_CHECKING([for absolute java home install dir])
+AC_ARG_WITH([abs-install-dir],
 	      [AS_HELP_STRING([--with-abs-install-dir], 
 			      [The absolute path where the j2sdk-image dir will be installed])],
 	      [if test "x${withval}" = x; then
@@ -296,17 +288,16 @@
 	       else
 		 ABS_JAVA_HOME_DIR="${withval}"
 	       fi], [ABS_JAVA_HOME_DIR="${abs_top_builddir}/${OPENJDK_BUILD_DIR}/j2sdk-image"])
-  AC_MSG_RESULT([${ABS_JAVA_HOME_DIR}])
-  ABS_CLIENT_LIBJVM_SO="${ABS_JAVA_HOME_DIR}/jre/lib/${INSTALL_ARCH_DIR}/client/libjvm.so"
-  ABS_SERVER_LIBJVM_SO="${ABS_JAVA_HOME_DIR}/jre/lib/${INSTALL_ARCH_DIR}/server/libjvm.so"
-  AC_SUBST(ABS_JAVA_HOME_DIR)
-  AC_SUBST(ABS_CLIENT_LIBJVM_SO)
-  AC_SUBST(ABS_SERVER_LIBJVM_SO)
-  AC_CONFIG_FILES([tapset/hotspot.stp])
-  AC_CONFIG_FILES([tapset/hotspot_jni.stp])
-  AC_CONFIG_FILES([tapset/jstack.stp])
-  AC_CONFIG_FILES([tapset/hotspot_gc.stp])
-fi
+AC_MSG_RESULT([${ABS_JAVA_HOME_DIR}])
+ABS_CLIENT_LIBJVM_SO="${ABS_JAVA_HOME_DIR}/jre/lib/${INSTALL_ARCH_DIR}/client/libjvm.so"
+ABS_SERVER_LIBJVM_SO="${ABS_JAVA_HOME_DIR}/jre/lib/${INSTALL_ARCH_DIR}/server/libjvm.so"
+AC_SUBST(ABS_JAVA_HOME_DIR)
+AC_SUBST(ABS_CLIENT_LIBJVM_SO)
+AC_SUBST(ABS_SERVER_LIBJVM_SO)
+AC_CONFIG_FILES([tapset/hotspot.stp])
+AC_CONFIG_FILES([tapset/hotspot_jni.stp])
+AC_CONFIG_FILES([tapset/jstack.stp])
+AC_CONFIG_FILES([tapset/hotspot_gc.stp])
 
 dnl Check for libXtst headers and libraries.
 PKG_CHECK_MODULES(XTST, xtst,[XTST_FOUND=yes],[XTST_FOUND=no])
--- a/hotspot.map	Thu Oct 25 15:35:14 2012 +0100
+++ b/hotspot.map	Wed Nov 07 14:31:11 2012 -0500
@@ -1,3 +1,3 @@
 # version url changeset sha256sum
-default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 8bc1fb0ebec0 33ff16981245bd328bffb371fc323cd074453d22a77081afa0767d13e4a2b4ff
+default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 807df5d59cd5 f1059d749d50cd73c034289517c26d6f0012bbc3d49c9e364af61e50eea3aee0
 zero http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot a456d0771ba0 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0
--- a/nss.cfg.in	Thu Oct 25 15:35:14 2012 +0100
+++ b/nss.cfg.in	Wed Nov 07 14:31:11 2012 -0500
@@ -2,3 +2,4 @@
 nssLibraryDirectory = @NSS_LIBDIR@
 nssDbMode = noDb
 attributes = compatibility
+handleStartupErrors = ignoreMultipleInitialisation
--- a/patches/systemtap.patch	Thu Oct 25 15:35:14 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/dtrace.make openjdk/hotspot/make/linux/makefiles/dtrace.make
---- openjdk.orig/hotspot/make/linux/makefiles/dtrace.make	2012-02-22 14:54:31.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/dtrace.make	2012-03-18 18:54:13.482968139 +0000
-@@ -25,3 +25,7 @@
- # Linux does not build jvm_db
- LIBJVM_DB =
- 
-+# But it does have a Systemtap dtrace compatible sys/sdt.h
-+CFLAGS += -DDTRACE_ENABLED
-+
-+# It doesn't support HAVE_DTRACE_H though.
-diff -Nru openjdk.orig/hotspot/src/share/vm/prims/jni.cpp openjdk/hotspot/src/share/vm/prims/jni.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp	2012-02-22 14:54:31.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/prims/jni.cpp	2012-03-18 18:54:13.502968466 +0000
-@@ -2818,10 +2818,7 @@
- JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \
-   JNIWrapper("Set" XSTR(Result) "Field"); \
- \
--  HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \
--    ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \
--  HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \
--    ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \
-+  FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \
- \
-   oop o = JNIHandles::resolve_non_null(obj); \
-   klassOop k = o->klass(); \
-@@ -3128,10 +3125,7 @@
- \
- JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \
-   JNIWrapper("SetStatic" XSTR(Result) "Field"); \
--  HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\
--    ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \
--  HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \
--    ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \
-+  FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \
- \
-   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
-   assert(id->is_static_field_id(), "invalid static field id"); \
---- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp	2012-02-22 15:54:31.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	2012-03-27 13:12:15.857491730 +0200
-@@ -1,5 +1,6 @@
- /*
-  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2009, 2012 Red Hat, Inc.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -32,12 +33,15 @@
- #define DTRACE_ONLY(x) x
- #define NOT_DTRACE(x)
- 
-+#if defined(SOLARIS)
- // Work around dtrace tail call bug 6672627 until it is fixed in solaris 10.
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \
-   do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0)
- 
--#if defined(SOLARIS)
- #define USDT1 1
-+#elif defined(LINUX)
-+#define USDT1 1
-+#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
- #elif defined(__APPLE__)
- #define USDT2 1
- #include <sys/types.h>
-@@ -63,6 +67,11 @@
- #define DTRACE_PROBE3(a,b,c,d,e) {;}
- #define DTRACE_PROBE4(a,b,c,d,e,f) {;}
- #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;}
-+#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;}
-+#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;}
-+#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;}
-+#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;}
-+#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;}
- 
- #else /* USDT2 */
- 
-@@ -76,10 +85,19 @@
- #define HS_DTRACE_PROBE_FN(provider,name)\
-   __dtrace_##provider##___##name
- 
-+#ifdef SOLARIS
-+// Solaris dtrace needs actual extern function decls.
- #define HS_DTRACE_PROBE_DECL_N(provider,name,args) \
-   DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args)
- #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \
-   DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args)
-+#elif defined(LINUX)
-+// Systemtap dtrace compatible probes on GNU/Linux don't.
-+#define HS_DTRACE_PROBE_DECL_N(provider,name,args)
-+#define HS_DTRACE_PROBE_CDECL_N(provider,name,args)
-+#else
-+#error "USDT1 enabled for unknown os"
-+#endif
- 
- /* Dtrace probe declarations */
- #define HS_DTRACE_PROBE_DECL(provider,name) \
-@@ -118,6 +136,8 @@
-     uintptr_t,uintptr_t,uintptr_t))
- 
- /* Dtrace probe definitions */
-+#if defined(SOLARIS)
-+// Solaris dtrace uses actual function calls.
- #define HS_DTRACE_PROBE_N(provider,name, args) \
-   DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args)
- 
-@@ -153,6 +173,34 @@
-   HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\
-     (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\
-     (uintptr_t)a8,(uintptr_t)a9))
-+#elif defined(LINUX)
-+// Systemtap dtrace compatible probes on GNU/Linux use direct macros.
-+#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name)
-+#define HS_DTRACE_PROBE0(provider,name)\
-+  DTRACE_PROBE(provider,name)
-+#define HS_DTRACE_PROBE1(provider,name,a0)\
-+  DTRACE_PROBE1(provider,name,a0)
-+#define HS_DTRACE_PROBE2(provider,name,a0,a1)\
-+  DTRACE_PROBE2(provider,name,a0,a1)
-+#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\
-+  DTRACE_PROBE3(provider,name,a0,a1,a2)
-+#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\
-+  DTRACE_PROBE4(provider,name,a0,a1,a2,a3)
-+#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\
-+  DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)
-+#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\
-+  DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)
-+#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\
-+  DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)
-+#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\
-+  DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)
-+#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
-+  DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
-+  DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#else
-+#error "USDT1 enabled for unknown os"
-+#endif
- 
- #endif /* !USDT2 */
-