Mercurial > hg > icedtea7
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 */ -