Mercurial > hg > icedtea6-hg
changeset 2937:5b29b2f26eea
Merge
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Wed, 05 Dec 2012 14:55:23 +0000 |
parents | 3e928e5030ad (current diff) cea49ba2afcd (diff) |
children | 6b20a50ba2fa |
files | ChangeLog Makefile.am patches/cacao/jsig.patch |
diffstat | 12 files changed, 1149 insertions(+), 58 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Oct 31 11:42:49 2012 +0000 +++ b/ChangeLog Wed Dec 05 14:55:23 2012 +0000 @@ -1,3 +1,106 @@ +2012-11-28 Andrew John Hughes <gnu.andrew@redhat.com> + + * javac.in: + Restore deferencing of ecj arguments + lost when backporting from 7. + +2012-11-28 Andrew John Hughes <gnu.andrew@redhat.com> + + * Makefile.am: + (add-archive): Only run -Xshare:dump when java + exists and we aren't building CACAO or JamVM. + (add-archive-debug): Likewise. + (add-archive-ecj): Likewise. + +2012-11-28 Andrew John Hughes <gnu.andrew@redhat.com> + + * acinclude.m4: + (IT_FIND_COMPILER): Invoke IT_USING_ECJ. + * javac.in: + Add final else block which exits with an error. + +2011-07-05 Andrew John Hughes <gnu.andrew@redhat.com> + + * javac.in: Add -XDignore.symbol.file=true + when using javac to avoid numerous proprietary + warnings. + +2010-12-08 Andrew John Hughes <gnu.andrew@redhat.com> + + * javac.in: + Pass -Xprefer:source (if javac is used) to + pick up local OpenJDK versions of classes + prior to those in the boot JDK. + +2009-07-21 Andrew John Hughes <gnu.andrew@redhat.com> + + * acinclude.m4: + (IT_USING_ECJ): Work out whether javac is ecj or not. + * javac.in: + Run @JAVAC@ rather than @ECJ@ and vary arguments as + needed depending on @USING_ECJ@. + +2009-07-09 Andrew John Hughes <gnu.andrew@redhat.com> + + * Makefile.am: + Add ANT_RESPECT_JAVA_HOME for Gentoo ant support. + +2012-11-28 Andrew John Hughes <gnu.andrew@redhat.com> + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Add the generated + file ORBUtilSystemException.java if the build JDK + has the old version. + * configure.ac: + Add checks for com.sun.corba.se.impl.logging.ORBUtilSystemException + and the method ioExceptionOnClose(Throwable). + * patches/ecj/corba-dependencies.patch: + Regenerated against new version of icedtea.patch. + * patches/ecj/icedtea.patch: + Remove unneeded addition of bootclasspath. + +2012-11-20 Andrew John Hughes <gnu.andrew@redhat.com> + + RH513605: Updating/Installing OpenJDK should recreate + the shared class-data archive + * Makefile.am: + (icedtea-against-icedtea): Depend on add-archive. + (clean-icedtea-against-icedtea): Depend on clean-add-archive. + (icedtea-debug-against-icedtea): Depend on add-archive-debug. + (clean-icedtea-against-icedtea): Depend on clean-add-archive-debug. + (add-archive): Run -Xshare:dump on the newly built JDK. + (clean-add-archive): Delete stamp. + (add-archive-debug): Same as add-archive for icedtea-debug. + (clean-add-archive-debug): Same as clean-add-archive for icedtea-debug. + (icedtea-ecj-against-icedtea): Depend on add-archive-ecj. + (clean-icedtea-against-icedtea): Depend on clean-add-archive-ecj. + (add-archive-ecj): Same as add-archive for icedtea-ecj. + (clean-add-archive-ecj): Same as clean-add-archive for icedtea-ecj. + * NEWS: Mention. + +2012-11-06 Xerxes RĂ„nby <xerxes@zafena.se> + Stefan Ring <stefan@complang.tuwien.ac.at> + + * Makefile.am (CACAO_VERSION, CACAO_SHA256SUM): Updated. + (ICEDTEA_PATCHES): Removed patches/cacao/jsig.patch. + (stamps/cacao.stamp): Create Xusage.txt and libjsig.so as for JamVM. + * patches/cacao/jsig.patch: Removed. + * HACKING: Updated. + * NEWS: Updated. + +2012-11-01 Lukas Berk <lberk@redhat.com> + + * Makefile.am: + (ICEDTEA_PATCHES): Add patches/systemtap.patch. + (EXTRA_DIST): Add tapset/hotspot_gc.stp.in. + (stamps/icedtea.stamp): Build tapset/hotspot_gc.stp. + (stamps/icedtea-debug.stamp): Likewise. + * configure.ac: Generate tapset/hotspot_gc.stp. + * patches/systemtap_gc.patch: + Add Garbage Collection dtrace/systemtap probes to hotspot. + * tapset/hotspot_gc.stp.in: + Systemtap tapset allowing use of GC probes more comfortablely. + 2012-10-31 Andrew John Hughes <gnu.andrew@redhat.com> * NEWS: Correct bad CVE number given by Oracle.
--- a/HACKING Wed Oct 31 11:42:49 2012 +0000 +++ b/HACKING Wed Dec 05 14:55:23 2012 +0000 @@ -89,9 +89,6 @@ * icedtea-java2d-mitre-join.patch: Backport fix for mitre join decoration (S6812600). * icedtea-java2d-stroker-internal-joint.patch: Fix penultimate joint created by GeneralPath.closePath(). * icedtea-java2d-stroker-internal-close-joint.patch: Fix final joint created by GeneralPath.closePath(). -* icedtea-cacao.patch: For the 'java' command, create new thread depending on the current VM. -* icedtea-cacao-no-mmap-first-page.patch: Don't mmap the first memory page. -* cacao/no-strict-aliasing.patch: Turn off strict aliasing which causes an issue with the verifier when building with GCC 4.4 (cacao PR129). * icedtea-shark.patch: Add support for the Shark JIT. * icedtea-xshm.patch: Support newer X11 headers for awt_GraphicsEnv.h. @@ -138,6 +135,9 @@ The following patches are only applied when building with the CACAO virtual machine: +* cacao/launcher.patch: For the 'java' command, create new thread depending on the current VM. +* cacao/memory.patch: Increase memory while building langtools for cacao builds. + The following patches are to support Xrender pipeline (-Dsun.java2d.xrender): * icedtea-xrender-xxx.patch: Numbered patches from xrender branch
--- a/Makefile.am Wed Oct 31 11:42:49 2012 +0000 +++ b/Makefile.am Wed Dec 05 14:55:23 2012 +0000 @@ -5,8 +5,8 @@ OPENJDK_VERSION = b28 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ -CACAO_VERSION = cff92704c4e0 -CACAO_SHA256SUM = dc768c9d097fb056ad34fc6d5a57e8fd4f3b24bf515be92acc5ee4208160eb3f +CACAO_VERSION = 9968abd511a3 +CACAO_SHA256SUM = 3b1ce9d2205d2afba4614a194484341758ee2cb340396310ac2c00e5a2a20955 CACAO_BASE_URL = http://icedtea.classpath.org/download/drops/cacao CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz @@ -80,6 +80,14 @@ $(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java endif +# Workaround for old OpenJDK versions with older CORBA classes +if !LACKS_ORBUTILSYSTEMEXCEPTION +if LACKS_ORBUTILSYSTEMEXCEPTION_IOEXCEPTIONONCLOSE_THROWABLE +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(abs_top_srcdir)/generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java +endif +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) @@ -433,7 +441,6 @@ if BUILD_CACAO ICEDTEA_PATCHES += \ patches/cacao/launcher.patch \ - patches/cacao/jsig.patch \ patches/cacao/memory.patch endif @@ -453,6 +460,7 @@ patches/sdt-dtrace-hpp.patch \ patches/sdt-make.patch \ patches/sdt-arguments.patch \ + patches/systemtap_gc.patch patches/systemtap-gcc-4.5.patch \ patches/systemtap-alloc-size-workaround.patch endif @@ -561,6 +569,7 @@ JAVAC="" \ JAVA_HOME="" \ JDK_HOME="" \ + ANT_RESPECT_JAVA_HOME="TRUE" \ DISTRIBUTION_ID="$(DIST_ID)" \ DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ DEBUG_CLASSFILES="true" \ @@ -646,6 +655,7 @@ tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ tapset/jstack.stp.in \ + tapset/hotspot_gc.stp.in \ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ @@ -1513,25 +1523,27 @@ stamps/icedtea-against-icedtea.stamp: stamps/icedtea.stamp \ stamps/add-jamvm.stamp stamps/add-cacao.stamp stamps/add-zero.stamp \ - stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp stamps/add-tzdata-support.stamp + stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp stamps/add-tzdata-support.stamp \ + stamps/add-archive.stamp mkdir -p stamps touch stamps/icedtea-against-icedtea.stamp clean-icedtea-against-icedtea: clean-add-jamvm clean-add-zero clean-add-cacao \ - clean-add-systemtap clean-add-pulseaudio \ - clean-add-nss clean-add-tzdata-support + clean-add-systemtap clean-add-pulseaudio clean-add-nss clean-add-tzdata-support \ + clean-add-archive rm -f stamps/icedtea-against-icedtea.stamp stamps/icedtea-debug-against-icedtea.stamp: stamps/icedtea-debug.stamp \ stamps/add-jamvm-debug.stamp stamps/add-cacao-debug.stamp \ stamps/add-zero-debug.stamp stamps/add-systemtap-debug.stamp stamps/add-pulseaudio-debug.stamp \ - stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp + stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp stamps/add-archive-debug.stamp mkdir -p stamps touch stamps/icedtea-debug-against-icedtea.stamp clean-icedtea-debug-against-icedtea: clean-add-zero-debug \ clean-add-jamvm-debug clean-add-cacao-debug clean-add-systemtap-debug \ - clean-add-pulseaudio-debug clean-add-nss-debug clean-add-tzdata-support-debug + clean-add-pulseaudio-debug clean-add-nss-debug clean-add-tzdata-support-debug \ + clean-add-archive-debug rm -f stamps/icedtea-debug-against-icedtea.stamp stamps/add-systemtap.stamp: stamps/icedtea.stamp @@ -1543,6 +1555,9 @@ < $(abs_top_builddir)/tapset/hotspot.stp \ > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ sed -e '/\/client\/libjvm.so/d' \ + < $(abs_top_builddir)/tapset/hotspot_gc.stp \ + > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_gc.stp; \ + sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot_jni.stp \ > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ @@ -1574,6 +1589,8 @@ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ + cp $(abs_top_builddir)/tapset/hotspot_gc.stp \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_gc.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi @@ -1760,6 +1777,32 @@ rm -f $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties rm -f stamps/add-tzdata-support-debug.stamp +stamps/add-archive.stamp: stamps/icedtea.stamp +if !ENABLE_JAMVM +if !ENABLE_CACAO + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/java ] ; then \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/java -Xshare:dump ; \ + fi +endif +endif + touch stamps/add-archive.stamp + +clean-add-archive: + rm -f stamps/add-archive.stamp + +stamps/add-archive-debug.stamp: stamps/icedtea-debug.stamp +if !ENABLE_JAMVM +if !ENABLE_CACAO + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/bin/java ] ; then \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/bin/java -Xshare:dump ; \ + fi +endif +endif + touch stamps/add-archive-debug.stamp + +clean-add-archive-debug: + rm -f stamps/add-archive-debug.stamp + # OpenJDK ecj Targets # =================== @@ -1780,12 +1823,13 @@ rm -f stamps/icedtea-ecj.stamp stamps/icedtea-against-ecj.stamp: stamps/icedtea-ecj.stamp stamps/add-systemtap-ecj.stamp \ - stamps/add-pulseaudio-ecj.stamp stamps/add-nss-ecj.stamp stamps/add-tzdata-support-ecj.stamp + stamps/add-pulseaudio-ecj.stamp stamps/add-nss-ecj.stamp stamps/add-tzdata-support-ecj.stamp \ + stamps/add-archive-ecj.stamp mkdir -p stamps touch stamps/icedtea-against-ecj.stamp clean-icedtea-against-ecj: clean-add-systemtap-ecj clean-add-pulseaudio-ecj clean-add-nss-ecj \ - clean-add-tzdata-support-ecj + clean-add-tzdata-support-ecj clean-add-archive-ecj rm -f stamps/icedtea-against-ecj.stamp stamps/add-systemtap-ecj.stamp: stamps/icedtea-ecj.stamp @@ -1797,11 +1841,16 @@ < $(abs_top_builddir)/tapset/hotspot.stp \ > $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ sed -e '/\/client\/libjvm.so/d' \ + < $(abs_top_builddir)/tapset/hotspot_gc.stp \ + > $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_gc.stp; \ + sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot_jni.stp \ > $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ + cp $(abs_top_builddir)/tapset/hotspot_gc.stp \ + $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_gc.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi @@ -1899,6 +1948,19 @@ rm -f $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties rm -f stamps/add-tzdata-support-ecj.stamp +stamps/add-archive-ecj.stamp: stamps/icedtea-ecj.stamp +if !ENABLE_JAMVM +if !ENABLE_CACAO + if [ -e $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/bin/java ] ; then \ + $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/bin/java -Xshare:dump ; \ + fi +endif +endif + touch stamps/add-archive-ecj.stamp + +clean-add-archive-ecj: + rm -f stamps/add-archive-ecj.stamp + # Rebuild targets rebuild: @@ -2124,6 +2186,8 @@ --enable-jre-layout $(CACAO_CONFIGURE_ARGS); \ $(ARCH_PREFIX) $(MAKE) -j$(PARALLEL_JOBS) install ln -s server $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/client + touch $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/server/Xusage.txt + ln -sf client/libjvm.so $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/libjsig.so endif endif mkdir -p stamps @@ -2482,6 +2546,12 @@ # Target Aliases # =============== +add-archive: stamps/add-archive.stamp + +add-archive-debug: stamps/add-archive-debug.stamp + +add-archive-ecj: stamps/add-archive-ecj.stamp + bootstrap-directory-ecj: stamps/bootstrap-directory-ecj.stamp bootstrap-directory: stamps/bootstrap-directory.stamp
--- a/NEWS Wed Oct 31 11:42:49 2012 +0000 +++ b/NEWS Wed Dec 05 14:55:23 2012 +0000 @@ -56,6 +56,14 @@ are actually missing from the boot JDK - PR1114: Provide option to turn off downloading of tarballs (--disable-downloading) - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible + - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive +* CACAO + - PR1120: Unified version for icedtea6/7 + - CA166, CA167: check-langtools fixes for icedtea6 + - Implemented sun.misc.Perf.highResCounter + - CACAO now identifies by its own Mercurial revision + - Some memory barrier maintenance + - Ability to run when compiled as Thumb on armv5 (no Thumb JIT though) * JamVM - ARMv6 armhf: Changes for Raspbian (Raspberry Pi) - PPC: Don't use lwsync if it isn't supported
--- a/acinclude.m4 Wed Oct 31 11:42:49 2012 +0000 +++ b/acinclude.m4 Wed Dec 05 14:55:23 2012 +0000 @@ -139,6 +139,9 @@ JAVAC="${ECJ} -nowarn" fi fi + + IT_USING_ECJ + AC_SUBST(ECJ) AC_SUBST(JAVAC) ]) @@ -1857,3 +1860,16 @@ AM_CONDITIONAL([DOWNLOADING], test x"${enable_downloading}" = "xyes") AC_SUBST([enable_downloading]) ]) + +AC_DEFUN([IT_USING_ECJ],[ +AC_CACHE_CHECK([if we are using ecj as javac], it_cv_ecj, [ +if $JAVAC -version 2>&1| grep '^Eclipse' >&AS_MESSAGE_LOG_FD ; then + it_cv_ecj=yes; +else + it_cv_ecj=no; +fi +]) +USING_ECJ=$it_cv_ecj +AC_SUBST(USING_ECJ) +AC_PROVIDE([$0])dnl +])
--- a/configure.ac Wed Oct 31 11:42:49 2012 +0000 +++ b/configure.ac Wed Dec 05 14:55:23 2012 +0000 @@ -58,12 +58,21 @@ IT_DISABLE_JDK_TESTS IT_CHECK_FOR_METHOD([JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER], - [javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener], + [javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener(PropertyChangeListener)], [javax.swing.plaf.basic.BasicDirectoryModel], ["addPropertyChangeListener",java.beans.PropertyChangeListener.class], [javax.swing.plaf.basic.BasicDirectoryModel model = new javax.swing.plaf.basic.BasicDirectoryModel(new javax.swing.JFileChooser()); model.addPropertyChangeListener(model)] ) +# Workaround issue with old CORBA classes in old OpenJDK builds +IT_CHECK_FOR_CLASS([ORBUTILSYSTEMEXCEPTION],[com.sun.corba.se.impl.logging.ORBUtilSystemException]) +IT_CHECK_FOR_METHOD([ORBUTILSYSTEMEXCEPTION_IOEXCEPTIONONCLOSE_THROWABLE], + [com.sun.corba.se.impl.logging.ORBUtilSystemException.ioExceptionOnClose(Throwable)], + [com.sun.corba.se.impl.logging.ORBUtilSystemException], + ["ioExceptionOnClose",java.lang.Throwable.class], + [new com.sun.corba.se.impl.logging.ORBUtilSystemException(null).ioExceptionOnClose(new InternalError())] +) + # Use xvfb-run if found to run gui tests (check-jdk). AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], []) AC_SUBST(XVFB_RUN_CMD) @@ -327,6 +336,7 @@ 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 dnl Check for libpng headers and libraries.
--- a/javac.in Wed Oct 31 11:42:49 2012 +0000 +++ b/javac.in Wed Dec 05 14:55:23 2012 +0000 @@ -4,11 +4,13 @@ use constant STRIP_ARGS => qw(-Werror -implicit:none -J-Xbootclasspath/p:); my $ECJ_WARNINGS="-nowarn"; +my $JAVAC_WARNINGS="-nowarn"; my @bcoption; push @bcoption, '-bootclasspath', glob '@abs_top_builddir@/bootstrap/jdk1.6.0/jre/lib/rt.jar' unless grep {$_ eq '-bootclasspath'} @ARGV; my @ecj_parms = ($ECJ_WARNINGS, @bcoption); +my @javac_parms = ($JAVAC_WARNINGS, '-Xprefer:source', '-XDignore.symbol.file=true'); # Work around ecj's inability to handle duplicate command-line # options and unknown javac options. @@ -49,6 +51,18 @@ my $ecj_args = gen_ecj_opts( \@ARGV ); exec '@abs_top_builddir@/native-ecj', @ecj_parms, @$ecj_args ; } +elsif ( -e "@JAVAC@" ) +{ + if ("@USING_ECJ@" eq "yes") + { + my $ecj_args = gen_ecj_opts( \@ARGV ); + exec '@JAVAC@', @ecj_parms, @$ecj_args ; + } + else + { + exec '@JAVAC@', @javac_parms, @ARGV ; + } +} elsif ( -e "@ECJ_JAR@" ) { my ($vm_args, $javac_args) = split_vm_args (gen_ecj_opts( \@ARGV )); @@ -59,6 +73,6 @@ } else { - my $ecj_args = gen_ecj_opts( \@ARGV ); - exec '@ECJ@', @ecj_parms, @$ecj_args ; + print STDERR "No Java compiler to run"; + exit -1; }
--- a/patches/cacao/jsig.patch Wed Oct 31 11:42:49 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -diff -Nru cacao.orig/Makefile.am cacao/Makefile.am ---- cacao.orig/cacao/src/cacao/Makefile.am 2008-08-04 17:51:28.000000000 +0100 -+++ cacao/cacao/src/cacao/Makefile.am 2010-05-11 10:29:35.000000000 +0100 -@@ -96,12 +96,12 @@ - $(mkdir_p) $(prefix)/jre/lib/$(JAVA_ARCH)/server - $(LN_S) -f $(libdir)/libjvm.so $(prefix)/jre/lib/$(JAVA_ARCH)/server - $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt -- $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so -+ $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so - - uninstall-local: - rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjvm.so - rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt -- rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so -+ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so - endif - -
--- a/patches/ecj/corba-dependencies.patch Wed Oct 31 11:42:49 2012 +0000 +++ b/patches/ecj/corba-dependencies.patch Wed Dec 05 14:55:23 2012 +0000 @@ -1,15 +1,16 @@ -diff -Nru openjdk.orig/corba/make/common/Rules.gmk openjdk/corba/make/common/Rules.gmk ---- openjdk-ecj.orig/corba/make/common/Rules.gmk 2012-08-15 16:52:40.749869095 +0100 -+++ openjdk-ecj/corba/make/common/Rules.gmk 2012-08-15 16:59:16.800640493 +0100 -@@ -202,9 +202,11 @@ +diff -Nru openjdk-ecj.orig/corba/make/common/Rules.gmk openjdk-ecj/corba/make/common/Rules.gmk +--- openjdk-ecj.orig/corba/make/common/Rules.gmk 2012-10-26 19:21:47.000000000 +0100 ++++ openjdk-ecj/corba/make/common/Rules.gmk 2012-11-28 00:38:06.787628798 +0000 +@@ -201,8 +201,12 @@ + $(ECHO) "# Java sources to be compiled: (listed in file $(JAVA_SOURCE_LIST))"; \ $(CAT) $(JAVA_SOURCE_LIST); \ $(ECHO) "# Running javac:"; \ - $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ -- -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ +- $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ +- $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ ++ $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) \ + -sourcepath "$(SOURCEPATH):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes" \ + -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ - $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ -- -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ ++ $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) \ + -sourcepath "$(SOURCEPATH):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes" \ + -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ fi
--- a/patches/ecj/icedtea.patch Wed Oct 31 11:42:49 2012 +0000 +++ b/patches/ecj/icedtea.patch Wed Dec 05 14:55:23 2012 +0000 @@ -327,22 +327,6 @@ # # We want to privatize JVM symbols on Solaris. This is so the user can -diff -Nru openjdk-ecj.orig/corba/make/common/Rules.gmk openjdk-ecj/corba/make/common/Rules.gmk ---- openjdk-ecj.orig/corba/make/common/Rules.gmk 2012-01-18 14:06:25.120768497 +0000 -+++ openjdk-ecj/corba/make/common/Rules.gmk 2012-01-18 21:44:43.635816486 +0000 -@@ -201,8 +201,10 @@ - $(ECHO) "# Java sources to be compiled: (listed in file $(JAVA_SOURCE_LIST))"; \ - $(CAT) $(JAVA_SOURCE_LIST); \ - $(ECHO) "# Running javac:"; \ -- $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ -- $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ -+ $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ -+ -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ -+ $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ -+ -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ - fi - @$(java-vm-cleanup) - diff -Nru openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk openjdk-ecj/corba/make/common/shared/Defs-java.gmk --- openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk 2012-01-18 16:50:57.569109033 +0000 +++ openjdk-ecj/corba/make/common/shared/Defs-java.gmk 2012-01-18 21:43:04.150185964 +0000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/systemtap_gc.patch Wed Dec 05 14:55:23 2012 +0000 @@ -0,0 +1,369 @@ +--- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp 2012-06-26 09:24:22.390325184 -0400 ++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp 2012-07-06 10:12:44.981413003 -0400 +@@ -33,9 +33,13 @@ + #include "memory/resourceArea.hpp" + #include "runtime/frame.inline.hpp" + #include "runtime/signature.hpp" ++#include "utilities/dtrace.hpp" + #ifdef COMPILER1 + #include "c1/c1_Defs.hpp" + #endif ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL1(provider, gc__collection__delete, *uintptr_t); ++#endif /* !USDT2 */ + + // OopMapStream + +@@ -677,6 +681,9 @@ + " - Derived: " INTPTR_FORMAT " Base: " INTPTR_FORMAT " (Offset: %d)", + derived_loc, (address)*derived_loc, (address)base, offset); + } ++#ifndef USDT2 ++ HS_DTRACE_PROBE1(hotspot, gc__collection__delete, entry); ++#endif /* !USDT2 */ + + // Delete entry + delete entry; +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2012-07-12 09:48:40.349999515 -0400 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2012-07-19 18:38:07.560757426 -0400 +@@ -53,11 +53,18 @@ + #include "runtime/vmThread.hpp" + #include "services/management.hpp" + #include "services/memoryService.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/events.hpp" + #include "utilities/stack.inline.hpp" + + #include <math.h> + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__ParallelCompact__clear, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parallel__collect, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__move, *uintptr_t, *uintptr_t, *uintptr_t, *uintptr_t); ++#endif /* !USDT2 */ ++ + // All sizes are in HeapWords. + const size_t ParallelCompactData::Log2RegionSize = 9; // 512 words + const size_t ParallelCompactData::RegionSize = (size_t)1 << Log2RegionSize; +@@ -433,6 +439,9 @@ + + void ParallelCompactData::clear() + { ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__ParallelCompact__clear, &_region_data, _region_data->data_location()); ++#endif /* !USDT2 */ + memset(_region_data, 0, _region_vspace->committed_size()); + } + +@@ -1970,6 +1979,9 @@ + "should be in vm thread"); + + ParallelScavengeHeap* heap = gc_heap(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__parallel__collect, heap, heap->gc_cause()); ++#endif /* !USDT2 */ + GCCause::Cause gc_cause = heap->gc_cause(); + assert(!heap->is_gc_active(), "not reentrant"); + +@@ -3376,6 +3388,9 @@ + // past the end of the partial object entering the region (if any). + HeapWord* const dest_addr = sd.partial_obj_end(dp_region); + HeapWord* const new_top = _space_info[space_id].new_top(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__move, &beg_addr, &end_addr, &dest_addr, &new_top); ++#endif /* !USDT2 */ + assert(new_top >= dest_addr, "bad new_top value"); + const size_t words = pointer_delta(new_top, dest_addr); + +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2012-08-15 12:04:43.837439833 -0400 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2012-08-15 12:01:47.897745719 -0400 +@@ -45,8 +45,13 @@ + #include "runtime/thread.hpp" + #include "runtime/vmThread.hpp" + #include "utilities/copy.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/events.hpp" + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__end, *uintptr_t, *uintptr_t); ++ #endif /* !USDT2 */ + class HeapRegion; + + void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, +@@ -84,6 +89,9 @@ + // The marking doesn't preserve the marks of biased objects. + BiasedLocking::preserve_marks(); + ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__G1__begin, &sh, sh->gc_cause()); ++#endif /* !USDT2 */ + mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); + + mark_sweep_phase2(); +@@ -103,6 +111,9 @@ + GenRemSet* rs = sh->rem_set(); + rs->invalidate(sh->perm_gen()->used_region(), true /*whole_heap*/); + ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__G1__end, &sh, sh->gc_cause()); ++#endif /* !USDT2 */ + // "free at last gc" is calculated from these. + // CHF: cheating for now!!! + // Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity()); +--- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2012-08-15 12:03:43.009543167 -0400 ++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2012-08-15 12:14:25.414381449 -0400 +@@ -33,6 +33,12 @@ + #include "memory/tenuredGeneration.hpp" + #include "oops/oop.inline.hpp" + #include "runtime/java.hpp" ++#include "utilities/dtrace.hpp" ++ ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ + + TenuredGeneration::TenuredGeneration(ReservedSpace rs, + size_t initial_byte_size, int level, +@@ -307,8 +313,14 @@ + size_t size, + bool is_tlab) { + retire_alloc_buffers_before_full_gc(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + OneContigSpaceCardGeneration::collect(full, clear_all_soft_refs, + size, is_tlab); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + } + + void TenuredGeneration::update_gc_stats(int current_level, +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2012-08-15 12:03:43.039543116 -0400 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2012-08-15 12:18:57.181932342 -0400 +@@ -49,6 +49,12 @@ + #include "utilities/copy.hpp" + #include "utilities/globalDefinitions.hpp" + #include "utilities/workgroup.hpp" ++#include "utilities/dtrace.hpp" ++ ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ + + #ifdef _MSC_VER + #pragma warning( push ) +@@ -878,6 +884,9 @@ + bool clear_all_soft_refs, + size_t size, + bool is_tlab) { ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + assert(full || size > 0, "otherwise we don't want to collect"); + GenCollectedHeap* gch = GenCollectedHeap::heap(); + assert(gch->kind() == CollectedHeap::GenCollectedHeap, +@@ -1032,6 +1041,10 @@ + gch->print_heap_change(gch_prev_used); + } + ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ ++ + if (PrintGCDetails && ParallelGCVerbose) { + TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats()); + TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats()); +--- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp 2012-08-15 12:03:43.010543164 -0400 ++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp 2012-08-15 12:21:41.076673646 -0400 +@@ -38,6 +38,7 @@ + #include "oops/oop.inline.hpp" + #include "runtime/java.hpp" + #include "utilities/copy.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/stack.inline.hpp" + #ifdef TARGET_OS_FAMILY_linux + # include "thread_linux.inline.hpp" +@@ -51,7 +52,10 @@ + #ifdef TARGET_OS_FAMILY_windows + # include "thread_windows.inline.hpp" + #endif +- ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ + // + // DefNewGeneration functions. + +@@ -528,6 +532,9 @@ + bool clear_all_soft_refs, + size_t size, + bool is_tlab) { ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + assert(full || size > 0, "otherwise we don't want to collect"); + GenCollectedHeap* gch = GenCollectedHeap::heap(); + _next_gen = gch->next_gen(this); +@@ -661,6 +668,10 @@ + to()->set_concurrent_iteration_safe_limit(to()->top()); + SpecializationStats::print(); + update_time_of_last_gc(os::javaTimeMillis()); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ ++ + } + + class RemoveForwardPointerClosure: public ObjectClosure { +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2012-08-15 12:03:43.044543106 -0400 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2012-08-15 12:25:26.632316692 -0400 +@@ -55,6 +55,12 @@ + #include "runtime/vmThread.hpp" + #include "services/memoryService.hpp" + #include "services/runtimeService.hpp" ++#include "utilities/dtrace.hpp" ++ ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ + + // statics + CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL; +@@ -1647,7 +1653,13 @@ + size_t size, + bool tlab) + { ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, tlab); ++#endif /* !USDT2 */ + collector()->collect(full, clear_all_soft_refs, size, tlab); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, tlab); ++#endif /* !USDT2 */ + } + + void CMSCollector::collect(bool full, +--- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp 2012-08-15 12:03:43.009543167 -0400 ++++ openjdk/hotspot/src/share/vm/memory/generation.cpp 2012-08-15 12:27:46.378095083 -0400 +@@ -39,8 +39,14 @@ + #include "oops/oop.inline.hpp" + #include "runtime/java.hpp" + #include "utilities/copy.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/events.hpp" + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ ++ + Generation::Generation(ReservedSpace rs, size_t initial_size, int level) : + _level(level), + _ref_processor(NULL) { +@@ -470,7 +476,13 @@ + // refs discovery is over the entire heap, not just this generation + ReferenceProcessorSpanMutator + x(ref_processor(), GenCollectedHeap::heap()->reserved_region()); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + SpecializationStats::print(); + } + +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2012-07-25 13:24:07.000000000 -0400 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2012-08-17 10:26:44.181117802 -0400 +@@ -51,8 +51,17 @@ + #include "runtime/vmThread.hpp" + #include "runtime/vm_operations.hpp" + #include "services/memoryService.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/stack.inline.hpp" + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSScavenge__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSScavenge__end, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSParallelCompact__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSParallelCompact__end, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSMarkSweep__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSMarkSweep__end, *uintptr_t, *uintptr_t); ++#endif /* !USDT2 */ + + HeapWord* PSScavenge::_to_space_top_before_gc = NULL; + int PSScavenge::_consecutive_skipped_scavenges = 0; +@@ -226,7 +235,13 @@ + PSAdaptiveSizePolicy* policy = heap->size_policy(); + IsGCActiveMark mark; + ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSScavenge__begin, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + bool scavenge_was_done = PSScavenge::invoke_no_policy(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSScavenge__end, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + + PSGCAdaptivePolicyCounters* counters = heap->gc_policy_counters(); + if (UsePerfData) +@@ -243,9 +258,21 @@ + const bool clear_all_softrefs = cp->should_clear_all_soft_refs(); + + if (UseParallelOldGC) { ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSParallelCompact__begin, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + PSParallelCompact::invoke_no_policy(clear_all_softrefs); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSParallelCompact__end, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + } else { ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSMarkSweep__begin, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + PSMarkSweep::invoke_no_policy(clear_all_softrefs); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSMarkSweep__end, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + } + } + } +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2012-07-25 13:24:07.000000000 -0400 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2012-08-31 15:14:23.936576341 -0400 +@@ -40,8 +40,14 @@ + #include "runtime/handles.inline.hpp" + #include "runtime/java.hpp" + #include "runtime/vmThread.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/vmError.hpp" + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__end, *uintptr_t, *uintptr_t); ++#endif /* !USDT2 */ ++ + PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; + PSOldGen* ParallelScavengeHeap::_old_gen = NULL; + PSPermGen* ParallelScavengeHeap::_perm_gen = NULL; +@@ -806,7 +812,13 @@ + } + + VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__begin, &op, cause); ++#endif /* !USDT2 */ + VMThread::execute(&op); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__end, &op, cause); ++#endif /* !USDT2 */ + } + + // This interface assumes that it's being called by the
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tapset/hotspot_gc.stp.in Wed Dec 05 14:55:23 2012 +0000 @@ -0,0 +1,534 @@ +/* + * probe - gc_collect_contig_begin + * + * @name: gc_collect_contig_begin + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This marks the start of a contiguous space generation collection. + * + */ + +probe hotspot.gc_collect_contig_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__contig__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__contig__begin") +{ + + name = "gc_collect_contig_begin"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_contig_end + * + * @name: gc_collect_contig_end_ + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge. + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This marks the end of a contiguous space generation collection. + * + */ + +probe hotspot.gc_collect_contig_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__contig__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__contig__end") +{ + + name = "gc_collect_contig_end"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_parnew_begin + * + * @name: gc_collect_parnew_begin + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This marks the beginning of a parallel collection of a new + * generation. + * + */ + +probe hotspot.gc_collect_parnew = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__parnew__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__parnew__begin") +{ + + name = "gc_collect_parnew_begin"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_parnew_end + * + * @name: gc_collect_parnew_end + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This marks the end of a parallel collection of a new + * generation. + * + */ + +probe hotspot.gc_collect_parnew_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__parnew__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__parnew__end") +{ + + name = "gc_collect_parnew_end"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_defnew_begin + * + * @name: gc_collect_defnew_begin + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This marks the start of a newly defined generation + * collection + * + */ + +probe hotspot.gc_collect_defnew_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__defnew__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__defnew__begin") +{ + + name = "gc_collect_defnew_begin"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_defnew_end + * + * @name: gc_collect_defnew_end + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This marks the end of a newly defined generation + * collection + * + */ + +probe hotspot.gc_collect_defnew_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__defnew__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__defnew__end") +{ + + name = "gc_collect_defnew_end"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_tenured_begin + * + * @name: gc_collect_tenured_begin + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This is the start of a collection of a tenured generation + * (a generation that has survived multiple garbage collections and is + * now in a 'tenured' object space. + * + */ + +probe hotspot.gc_collect_tenured_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__tenured__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__tenured__begin") +{ + + name = "gc_collect_tenured_begin"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_tenured_end + * + * @name: gc_collect_tenured_end + * @is_full: If TRUE, attempt a full collection of the generation. + * Else; perform a scavenge + * @size: The collection should achieve a minimum region of available + * memory to allow for an allocation of 'size'. + * @is_tlab: Is this a Thread Local Allocation Buffer? + * + * Description: This is the end of a collection of a tenured generation + * (a generation that has survived multiple garbage collections and is + * now in a 'tenured' object space. + * + */ + +probe hotspot.gc_collect_tenured_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__tenured__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__tenured__end") +{ + + name = "gc_collect_tenured_end"; + is_full = $arg2; + size = $arg3; + is_tlab = $arg4; + probestr = sprintf("%s(is_full='%d', size='%d', is_tlab='%d')", name, is_full, size, is_tlab); + +} + +/* + * probe - gc_collect_parallel_scavenge_heap_begin + * + * @name: gc_collect_parallel_scavenge_heap_begin + * @address: Address of region being collected. + * @cause: Cause of the collection. + * + * Description: This is a parallel heap scavenge beginning, the jvm process doesn't + * have to halt while the gc is being completed. + */ + +probe hotspot.gc_collect_parallel_scavenge = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__parscavenge__heap__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__parscavenge__heap__begin") +{ + name = "gc_collect_parallel_scavenge_heap_begin"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_parallel_scavenge_heap_end + * + * @name: gc_collect_parallel_scavenge_heap_end + * @address: Address of region being collected. + * @cause: Cause of the collection. + * + * Description: This is a parallel heap scavenge ending, the jvm process doesn't + * have to halt while the gc is being completed. + */ + +probe hotspot.gc_collect_parallel_scavenge_heap_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__parscavenge__heap__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__parscavenge__heap__end") +{ + name = "gc_collect_parallel_scavenge_heap_end"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_parallel_collect + * + * @name: gc_collect_parallel_collect + * @address: Address of object being collected. + * @cause: Cause of the collection. + * + * Description: This marks a parallel collection. + * + */ + +probe hotspot.gc_collect_parallel_collect = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__parallel__collect"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__parallel__collect") +{ + name = "gc_collect_parallel_collect"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_g1_begin + * + * @name: gc_collect_g1_begin + * @address: Address of object being collected. + * @cause: Cause of the collection. + * + * Description: This marks the start of a G1 style garbage collection + * (Garbage-First Garbage Collector). + * + */ + +probe hotspot.gc_collect_g1_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__G1__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__G1__begin") +{ + name = "gc_collect_g1_begin"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_g1_end + * + * @name: gc_collect_g1_end + * @address: Address of object being collected. + * @cause: Cause of the collection. + * + * Description: This marks then end of a G1 style garbage collection + * (Garbage-First Garbage Collector). + * + */ + +probe hotspot.gc_collect_g1_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__G1__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__G1__end") +{ + name = "gc_collect_g1_end"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_delete + * + * @name: gc_collect_delete + * @address: Address of object being collected. + * @cause: Cause of the collection. + * + * Description: A delete statement of an object. + * + */ + +probe hotspot.gc_collect_delete = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__delete"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__delete") +{ + name = "gc_collect_delete"; + address = sprintf("0x%x", $arg1); + probestr = sprintf("%s(address='%s')", name, address); +} + +/* + * probe - gc_collect_PSScavenge_begin + * + * @name: gc_collect_PSScavenge_begin + * @address: Address of scavenge + * @cause: Cause of the collection. + * + * Description: A parallel scavenge begins. A scavenge is a partial garbage + * collection which should be much more common than a full garbage collection + * throughout the course of the java program. + * + */ + +probe hotspot.gc_collect_PSScavenge_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__PSScavenge__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__PSScavenge__begin") +{ + name = "gc_collect_PSScavenge_begin"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_PSScavenge_end + * + * @name: gc_collect_PSScavenge_end + * @address: Address of scavenge. + * @cause: Cause of the collection. + * + * Description: The end of the parallel scavenge. The beginning and end of + * the scavenge is noted due to the possbility of multiple scavenges occuring + * at the same time. + * + */ + +probe hotspot.gc_collect_PSScavenge_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__PSScavenge__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__PSScavenge__end") +{ + name = "gc_collect_PSScavenge_end"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_PSParallelCompact_begin + * + * @name: gc_collect_PSParallelCompact_begin + * @address: Address of compaction. + * @cause: Cause of the collection. + * + * Description: This marks the start of a parallel compaction. + * + */ + +probe hotspot.gc_collect_PSParallelCompact_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__PSParallelCompact__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__PSParallelCompact__begin") +{ + name = "gc_collect_PSParallelCompact_begin"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_PSParallelCompact_end + * + * @name: gc_collect_PSParallelCompact_end + * @address: Address of compaction. + * @cause: Cause of the collection. + * + * Description: This marks the end of a parallel compaction. + * + */ + +probe hotspot.gc_collect_PSParallelCompact_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__PSParallelCompact__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__PSParallelCompact__end") +{ + name = "gc_collect_PSParallelCompact_end"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_PSMarkSweep_begin + * + * @name: gc_collect_PSMarkSweep_begin + * @address: Address of parallel mark sweep process. + * @cause: Cause of the collection. + * + * Description: This marks the start of a parallel mark sweep for + * objects that require collection. + * + */ + +probe hotspot.gc_collect_PSMarkSweep_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__PSMarkSweep__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__PSMarkSweep__begin") +{ + name = "gc_collect_PSMarkSweep_begin"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_PSMarkSweep_end + * + * @name: gc_collect_PSMarkSweep_end + * @address: Address of parallel mark sweep process. + * @cause: Cause of the collection. + * + * Description: This marks the start of a parallel mark sweep for + * objects that require collection. + * + */ + +probe hotspot.gc_collect_PSMarkSweep_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__PSMarkSweep__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__PSMarkSweep__end") +{ + name = "gc_collect_PSMarkSweep_end"; + address = sprintf("0x%x", $arg1); + cause = $arg2; + probestr = sprintf("%s(address='%s', cause='%d')", name, address, cause); +} + +/* + * probe - gc_collect_move + * + * @name: gc_collect_move + * @from_bottom_address: The bottom address of the object being moved. + * @from_top_address: The top address of the object being moved. + * @to_bottom_address: The bottom address of where the object is being moved to. + * @to_top_address: The top address of where the object is being moved to. + * @cause: Cause of the collection. + * + * Description: During garbage collections there are times where objects or + * blocks of memory need to be moved. This probe will detail from where + * the memory is moving and where to. + * + */ + +probe hotspot.gc_collect_move = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__move"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__move") +{ + name = "gc_collect_move"; + from_bottom_address = sprintf("0x%x", $arg1); + from_top_address = sprintf("0x%x", $arg2); + to_bottom_address = sprintf("0x%x", $arg3); + to_top_address = sprintf("0x%x", $arg4); + probestr = sprintf("%s(from_bottom_address='%s', from_top_address='%s', to_bottom_address='%s', to_top_address='%s')", name, from_bottom_address, from_top_address, to_bottom_address, to_top_address); + +} + +/* + * probe - gc_collect_clear + * + * @name: gc_collect_clear + * @address: Address of object being collected. + * @cause: Cause of the collection. + * + * Description: This probe dictates the region of data that needs to be + * cleared in a compaction action. + * + */ + +probe hotspot.gc_collect_clear = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__collection__ParallelCompact__clear"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__collection__ParallelCompact__clear") +{ + name = "gc_collect_clear"; + region_data = sprintf("0x%x", $arg1); + data_location = sprintf("0x%x", $arg2); + probestr = sprintf("%s(region_data='%s', data_location='%s')", name, region_data, data_location); + +}