RFC: JamVM - Taste the New Flavour!
Dr Andrew John Hughes
ahughes at redhat.com
Mon Feb 21 18:33:30 PST 2011
On 02:48 Tue 22 Feb , Xerxes Rånby wrote:
> On 2011-02-21 22:40, Robert Lougher wrote:
> > Hi,
> >
> > On 21 February 2011 21:22, Dr Andrew John Hughes<ahughes at redhat.com> wrote:
> >> On 21:20 Sat 19 Feb , Xerxes Ranby wrote:
> >>> Greetings!
> >>>
> >>> "JamVM's got a shiny new Git repository, which contains the port to the
> >>> OpenJDK class-library."
> >>> http://draenog.blogspot.com/2011/02/openjdkjamvm-git-repository.html
> >>>
> >>> The attached patch adds Robert Lougher's new JamVM flavour to Icedtea6!
> >>>
> >> See comments below on the --enable-jamvm option.
> >> I'll leave comments on addvm to doko.
>
> I will split this patch in two commits, one for each option, to ease
> review, In this mail i have added the patch for the --enable-jamvm option.
>
> I will add --with-additional-vms=jamvm in a follow up patch.
>
This looks fine now and can go in for me.
It looks like a simple rename issue for WITH_CACAO. Either you or I can
do it, but lets get this patch in first so those changes don't break this.
Once this is in, I plan to branch for 1.10.
> >>
> >> I think this should be ok to go in before the 1.10 branch as the changes
> >> to the build are mainly ancillary and don't affect the main options.
> >>
> >
> > Xerxes, can you take a new snapshot from the berlios git tree? A
> > couple of people have already tested the port. One of them (Ludovic
> > Orban) reported a crash with an application which stressed the GC
> > (failure after compaction). I tracked this down over the weekend, and
> > the port is now running stably.
> >
> > Rob.
> >
> > P.S. Thanks for doing the integration!
> >
>
> Superb!
> I have grabbed the updated stable snapshot. Thank you for the fix!
>
> >>> Index: icedtea6/Makefile.am
> >>> ===================================================================
> >>> --- icedtea6.orig/Makefile.am 2011-02-19 02:26:05.000000000 +0100
> >>> +++ icedtea6/Makefile.am 2011-02-19 20:58:34.000000000 +0100
> >>> @@ -11,6 +11,18 @@
> >>> CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz
> >>> CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz
> >>>
> >>> +# The jamvm-e9b0f82b9c9cfe5e5550f5e77de53ec2fba603a3.tar.gz got fetched from
> >>> +# http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/snapshot/jamvm-e9b0f82b9c9cfe5e5550f5e77de53ec2fba603a3.tar.gz
> >>> +# Unfortunally the generated .tar.gz by the berlios cgit snapshot function
> >>> +# keeps changing sha256sum. I have hosted a snapshot on labb.zafena.se
> >>> +# while we wait for the final JamVM 1.6.0 release.
> >>> +JAMVM_VERSION = e9b0f82b9c9cfe5e5550f5e77de53ec2fba603a3
> >>> +JAMVM_SHA256SUM = 24cf67795970d7e63d297a13b370ae8c3b141c35a22c3fd96137b5e62815a607
> >>> +JAMVM_BASE_URL = http://labb.zafena.se/jamvm
> >>> +JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz
> >>> +JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz
> >>> +JAMVM_IMPORT_PATH = \$(abs_top_builddir)/jamvm/install/hotspot
> >>> +
> >>
> >> I'd prefer JAMVM_IMPORT_PATH was with the other paths in the Makefile.am rather than here.
>
> JAMVM_IMPORT_PATH Moved down to the other paths.
>
> >> Is there a reason for the leading backslash?
>
> No reason... removed.
>
> >>>
> >>> +stamps/download-jamvm.stamp:
> >>> +if BUILD_JAMVM
> >>> + if ! echo "$(JAMVM_SHA256SUM) $(JAMVM_SRC_ZIP)" \
> >>> + | $(SHA256SUM) --check ; \
> >>> + then \
> >>> + if [ $(JAMVM_SRC_ZIP) ] ; \
> >>> + then \
> >>> + mv $(JAMVM_SRC_ZIP) $(JAMVM_SRC_ZIP).old ; \
> >>> + fi ; \
> >>> + $(WGET) $(JAMVM_URL) -O $(JAMVM_SRC_ZIP); \
> >>> + if ! echo "$(JAMVM_SHA256SUM) $(JAMVM_SRC_ZIP)" \
> >>> + | $(SHA256SUM) --check ; \
> >>> + then echo "ERROR: Bad download of JamVM zip"; false; \
> >>> + fi; \
> >>> + fi
> >>> +endif
> >>> + mkdir -p stamps
> >>> + touch $@
> >>
> >> We need an option equivalent to --with-cacao-src-zip. I'd suggest
> >> adding this in a follow up patch. As with the drop tarballs, we
> >> should verify the checksum for pre-provided tarballs as well as
> >> download ones. It should be just a matter of symlinking the tarball
> >> here if an alternate one is specified.
> >>
>
> Noted, I will add --with-cacao-src-zip in another follow up patch.
>
> >> @@ -1018,6 +1080,7 @@
> >> fi
> >>
> >> icedtea_version="$(PACKAGE_VERSION)$(ICEDTEA_REV)" ; \
> >> + if ! test "x$(WITH_JAMVM)" = "xno"; then \
> >
> > I don't think this will work, but it's hard to tell in patch form.
> > It looks like WITH_CACAO is getting nested inside WITH_JAMVM which
> > means WITH_CACAO will only be checked if WITH_JAMVM is set.
>
> Thank you for spotting this. Yes this part was clearly wrong as can be
> verified from the -version output of my first patch.
>
> The goal of this part are to make sure that when using CACAO or JamVM
> as the main VM then the Runtime environment should be named IcedTea6
> Runtime Environment instead of OpenJDK Runtime Environment.
>
> >
> > Can you include the whole rule in a reply?
> >
>
> New whole new rule now looks like this:
>
> if test "x$(WITH_CACAO)" = "xyes" || \
> test "x$(ENABLE_JAMVM)" = "xyes"; then \
> echo "JDK_DERIVATIVE_NAME=$${icedtea_version}" \
> >>openjdk/jdk/make/common/shared/Defs.gmk ; \
> echo "PRODUCT_NAME=$(ICEDTEA_NAME)" \
> >>openjdk/jdk/make/common/shared/Defs.gmk ; \
> else \
> echo "JDK_DERIVATIVE_NAME=$(ICEDTEA_NAME) $${icedtea_version}" \
> >>openjdk/jdk/make/common/shared/Defs.gmk ; \
> fi ;
>
>
> And now java -version work as expected when using --enable-jamvm
> xranby at hp:~/icedtea6-jamvm-build$ ./openjdk.build/j2sdk-image/bin/java
> -version
> java version "1.6.0_21"
> IcedTea6 Runtime Environment (1.10pre+r55566ffe7026) (Ubuntu build
> 1.6.0_21-b21)
> JamVM (build 1.6.0-devel, inline-threaded interpreter)
>
> >>> @@ -1694,6 +1771,61 @@
> >>> fi
> >>> rm -f stamps/rewrite-rhino.stamp
> >>>
> >>> +# JAMVM
>
> Renamed to JamVM
>
> >>> +
> >>> +stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp
> >>> +if BUILD_JAMVM
> >>> + cd jamvm/jamvm&& \
> >>> + ./autogen.sh --with-java-runtime-library=openjdk \
> >>> + --prefix=$(abs_top_builddir)/jamvm/install ; \
> >>> + $(MAKE) ; \
> >>> + $(MAKE) install
> >>> + mkdir -p $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server
> >>> + cp $(abs_top_builddir)/jamvm/install/lib/libjvm.so $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server
> >>> + ln -s server $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/client
> >>> + touch $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server/Xusage.txt
> >>> + touch $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/libjsig.so
> >>> +endif
>
> Added missing
> mkdir -p stamps
> touch $@
>
> >>> Index: icedtea6/configure.ac
> >>> ===================================================================
> >>> --- icedtea6.orig/configure.ac 2011-02-19 02:26:05.000000000 +0100
> >>> +++ icedtea6/configure.ac 2011-02-19 02:26:38.000000000 +0100
> >>> @@ -175,6 +175,9 @@
> >>> AC_CHECK_WITH_CACAO_HOME
> >>> AC_CHECK_WITH_CACAO_SRC_ZIP
> >>> AC_CHECK_WITH_CACAO_SRC_DIR
> >>> +
> >>> +AC_CHECK_ENABLE_JAMVM
> >>> +
> >>
> >> Please use IT as the prefix rather than AC. We are not the autoconf project :-)
>
> Fixed, now we are the IcedTea project :-)!
> Thank you Andrew for renaming the rest whole lot!
>
> >>
> >>> DISABLE_OPTIMIZATIONS
> >>> SET_SHARK_BUILD
> >>> ENABLE_ZERO_BUILD
> >>> Index: icedtea6/acinclude.m4
> >>> ===================================================================
> >>> --- icedtea6.orig/acinclude.m4 2011-02-19 02:26:05.000000000 +0100
> >>> +++ icedtea6/acinclude.m4 2011-02-19 03:23:52.000000000 +0100
> >>> @@ -746,11 +746,15 @@
> >>> sparc*-*-*) ;;
> >>> x86_64-*-*) ;;
> >>> *)
> >>> - if test "x${WITH_CACAO}" != xno; then
> >>> + if test "x${WITH_JAMVM}" != xno; then
> >>> use_zero=no
> >>> else
> >>> - use_zero=yes
> >>> - fi
> >>> + if test "x${WITH_CACAO}" != xno; then
> >>> + use_zero=no
> >>> + else
> >>> + use_zero=yes
> >>> + fi
> >>> + fi
> >>
> >> This would be clearer if you just added JAMVM as a new option
> >> rather than changing the CACAO one.
>
> I have now changed this part to
>
> @@ -746,7 +746,8 @@
> sparc*-*-*) ;;
> x86_64-*-*) ;;
> *)
> - if test "x${WITH_CACAO}" != xno; then
> + if test "x${WITH_CACAO}" != xno || \
> + test "x${ENABLE_JAMVM}" = xyes; then
> use_zero=no
> else
> use_zero=yes
>
>
> hope it makes things clearer.
>
> >>
> >>> ;;
> >>> esac
> >>> fi
> >>> @@ -820,6 +824,23 @@
> >>> AM_CONDITIONAL(SHARK_BUILD, test "x${use_shark}" = xyes)
> >>> ])
> >>>
> >>> +AC_DEFUN([AC_CHECK_ENABLE_JAMVM],
> >>> +[
> >>> + AC_MSG_CHECKING(whether to use JamVM as VM)
> >>> + AC_ARG_ENABLE([jamvm],
> >>> + [AS_HELP_STRING(--enable-jamvm,use JamVM as VM [[default=no]])],
> >>> + [
> >>> + WITH_JAMVM="${enableval}"
> >>> + ],
> >>> + [
> >>> + WITH_JAMVM=no
> >>> + ])
> >>> +
> >>> + AC_MSG_RESULT(${WITH_JAMVM})
> >>> + AM_CONDITIONAL(WITH_JAMVM, test x"${WITH_JAMVM}" = "xyes")
> >>> + AC_SUBST(WITH_JAMVM)
> >>> +])
> >>> +
> >>
> >> Again, should be IT_CHECK_ENABLE_JAMVM.
> >> Why are we using 'WITH_JAMVM' rather than 'ENABLE_JAMVM'?
> When CACAO got integrated in icedtea 1.3 then the configure option got
> named --with-cacao this is why the code are littered with WITH_CACAO...
> I simply copied the naming to make the code look familiar with its CACAO
> heritage.
>
> Noted, I will consider changing the WITH_CACAO to ENABLE_CACAO in a
> future CACAO naming cleanup patch.
>
> 'with' implies it's possible to
> >> take some option but we aren't using AC_ARG_WITH but AC_ARG_ENABLE.
>
> I have switched name to ENABLE_JAMVM in the new patch.
>
> >> Also if it is only yes/no a lot of the above would be simpler if we just tested for 'yes'.
> >> It seems to assume some other value is possible.
>
> Updated to only check for yes.
>
>
> >>
> >> --
> >> Andrew :)
> >>
> >> Free Java Software Engineer
> >> Red Hat, Inc. (http://www.redhat.com)
> >>
> >> Support Free Java!
> >> Contribute to GNU Classpath and IcedTea
> >> http://www.gnu.org/software/classpath
> >> http://icedtea.classpath.org
> >> PGP Key: F5862A37 (https://keys.indymedia.org/)
> >> Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37
> >>
>
> Thank you Rob and Andrew for the first review round.
>
> New patch attached that implements the --enable-jamvm option
>
> Ok to push?
>
> Cheers
> Xerxes
> Index: icedtea6/Makefile.am
> ===================================================================
> --- icedtea6.orig/Makefile.am 2011-02-22 00:46:38.000000000 +0100
> +++ icedtea6/Makefile.am 2011-02-22 00:46:58.000000000 +0100
> @@ -11,6 +11,17 @@
> CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz
> CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz
>
> +# The jamvm-3f02679901ac46985c9c3ac3f1b99e8eaf6a7e27.tar.gz got fetched from
> +# http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/snapshot/jamvm-3f02679901ac46985c9c3ac3f1b99e8eaf6a7e27.tar.gz
> +# Unfortunally the generated .tar.gz by the berlios cgit snapshot function
> +# keeps changing sha256sum. I have hosted a snapshot on labb.zafena.se
> +# while we wait for the final JamVM 1.6.0 release.
> +JAMVM_VERSION = 3f02679901ac46985c9c3ac3f1b99e8eaf6a7e27
> +JAMVM_SHA256SUM = 396daf08896a71cfcddfabfbaf2d8b3f07557d8143eaaa93be25e2d80f30e165
> +JAMVM_BASE_URL = http://labb.zafena.se/jamvm
> +JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz
> +JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz
> +
> JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops
> JAXWS_DROP_ZIP = jdk6-jaxws-b20.zip
> JAXWS_DROP_SHA256SUM = 0c460583898b968a58bf88eb53f90a0e34369e2562d65fb3a143512dfcaeb3eb
> @@ -37,6 +48,7 @@
> ENDORSED_DIR = $(BOOT_DIR)/lib/endorsed
> ECJ_BOOT_DIR = $(abs_top_builddir)/bootstrap/ecj
> ICEDTEA_BOOT_DIR = $(abs_top_builddir)/bootstrap/icedtea
> +JAMVM_IMPORT_PATH = $(abs_top_builddir)/jamvm/install/hotspot
> SERVER_DIR = hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server
> BUILD_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
> BUILD_DEBUG_JRE_ARCH_DIR = $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
> @@ -126,8 +138,13 @@
> ICEDTEA_BUILD_TARGET=jdk_only
> ICEDTEA_DEBUG_BUILD_TARGET = jdk_fastdebug_only
> else
> +if ENABLE_JAMVM
> + ICEDTEA_BUILD_TARGET=jdk_only
> + ICEDTEA_DEBUG_BUILD_TARGET = jdk_fastdebug_only
> +else
> ICEDTEA_DEBUG_BUILD_TARGET = debug_build
> endif
> +endif
>
> if BOOTSTRAPPING
> BOOTSTRAP_DIRECTORY_STAMP = stamps/bootstrap-directory.stamp
> @@ -470,6 +487,11 @@
> ALT_HOTSPOT_IMPORT_PATH="$(CACAO_IMPORT_PATH)"
> endif
>
> +if ENABLE_JAMVM
> +ICEDTEA_ENV += \
> + ALT_HOTSPOT_IMPORT_PATH="$(JAMVM_IMPORT_PATH)"
> +endif
> +
> if DISABLE_OPTIMIZATIONS
> ICEDTEA_ENV += \
> NO_OPTIMIZATIONS="true" \
> @@ -583,8 +605,10 @@
> clean-icedtea icedtea-against-icedtea clean-icedtea-ecj \
> clean-tools-jar clean-copy clean-rt hotspot \
> hotspot-helper clean-extra clean-jtreg clean-jtreg-reports \
> - clean-add-zero clean-add-zero-debug clean-icedtea clean-icedtea-debug
> - clean-icedtea-against-ecj clean-cacao clean-add-cacao clean-add-cacao-debug \
> + clean-add-zero clean-add-zero-debug clean-icedtea clean-icedtea-debug \
> + clean-icedtea-against-ecj \
> + clean-jamvm \
> + clean-cacao clean-add-cacao clean-add-cacao-debug \
> clean-ports clean-overlay clean-extract-ecj clean-extract clean-extract-openjdk \
> clean-replace-hotspot clean-generated clean-download clean-hgforest clean-download-openjdk \
> clean-rewriter clean-rewrite-rhino clean-add-systemtap clean-add-systemtap-debug \
> @@ -741,6 +765,29 @@
> rm -f $(CACAO_SRC_ZIP)
> rm -f stamps/download-cacao.stamp
>
> +stamps/download-jamvm.stamp:
> +if BUILD_JAMVM
> + if ! echo "$(JAMVM_SHA256SUM) $(JAMVM_SRC_ZIP)" \
> + | $(SHA256SUM) --check ; \
> + then \
> + if [ $(JAMVM_SRC_ZIP) ] ; \
> + then \
> + mv $(JAMVM_SRC_ZIP) $(JAMVM_SRC_ZIP).old ; \
> + fi ; \
> + $(WGET) $(JAMVM_URL) -O $(JAMVM_SRC_ZIP); \
> + if ! echo "$(JAMVM_SHA256SUM) $(JAMVM_SRC_ZIP)" \
> + | $(SHA256SUM) --check ; \
> + then echo "ERROR: Bad download of JamVM zip"; false; \
> + fi; \
> + fi
> +endif
> + mkdir -p stamps
> + touch $@
> +
> +clean-download-jamvm:
> + rm -f $(JAMVM_SRC_ZIP)
> + rm -f stamps/download-jamvm.stamp
> +
> clean-drops: clean-download-jaxp-drop clean-download-jaf-drop \
> clean-download-jaxws-drop
> if [ -e drops ] ; then \
> @@ -803,18 +850,19 @@
> rm -f stamps/download-openjdk.stamp
>
> stamps/download.stamp: stamps/download-drops.stamp stamps/download-cacao.stamp \
> - stamps/download-openjdk.stamp
> + stamps/download-jamvm.stamp stamps/download-openjdk.stamp
> touch stamps/download.stamp
>
> -clean-download: clean-drops clean-download-cacao clean-download-openjdk
> +clean-download: clean-drops clean-download-cacao clean-download-jamvm \
> + clean-download-openjdk
> rm -f stamps/download.stamp
>
> stamps/extract.stamp: stamps/extract-openjdk.stamp \
> - stamps/extract-cacao.stamp
> + stamps/extract-cacao.stamp stamps/extract-jamvm.stamp
> mkdir -p stamps
> touch $@
>
> -clean-extract: clean-extract-openjdk clean-cacao
> +clean-extract: clean-extract-openjdk clean-cacao clean-jamvm
> rm -f stamps/extract.stamp
>
> stamps/extract-openjdk.stamp: stamps/download.stamp
> @@ -872,6 +920,20 @@
> mkdir -p stamps
> touch stamps/extract-cacao.stamp
>
> +stamps/extract-jamvm.stamp:
> +if BUILD_JAMVM
> + set -e ; \
> + if ! test -d jamvm ; \
> + then \
> + mkdir jamvm ; \
> + $(TAR) xf $(JAMVM_SRC_ZIP) -C jamvm ; \
> + dir=$$(basename jamvm/jamvm-*) ; \
> + ln -s $$dir jamvm/jamvm ; \
> + fi
> +endif
> + mkdir -p stamps
> + touch stamps/extract-jamvm.stamp
> +
> stamps/replace-hotspot.stamp: stamps/extract.stamp
> if WITH_ALT_HSBUILD
> if test "x${HSBUILD}" != "xoriginal"; then \
> @@ -1019,7 +1081,8 @@
> fi
>
> icedtea_version="$(PACKAGE_VERSION)$(ICEDTEA_REV)" ; \
> - if ! test "x$(WITH_CACAO)" = "xno"; then \
> + if test "x$(WITH_CACAO)" = "xyes" || \
> + test "x$(ENABLE_JAMVM)" = "xyes"; then \
> echo "JDK_DERIVATIVE_NAME=$${icedtea_version}" \
> >>openjdk/jdk/make/common/shared/Defs.gmk ; \
> echo "PRODUCT_NAME=$(ICEDTEA_NAME)" \
> @@ -1245,7 +1308,8 @@
> # If you change anything here in the icedtea target, please make sure
> # you change it in the icedtea-debug target as well.
> stamps/icedtea.stamp: stamps/bootstrap-directory-symlink.stamp \
> - $(OPENJDK_TREE) stamps/cacao.stamp stamps/rewrite-rhino.stamp
> + $(OPENJDK_TREE) stamps/cacao.stamp stamps/rewrite-rhino.stamp \
> + stamps/jamvm.stamp
> $(ARCH_PREFIX) $(MAKE) \
> $(ICEDTEA_ENV) \
> -C openjdk \
> @@ -1263,6 +1327,9 @@
> if WITH_CACAO
> printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
> endif
> +if ENABLE_JAMVM
> + printf -- '-jamvm ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
> +endif
> @echo "IcedTea is served:" $(BUILD_OUTPUT_DIR)
> mkdir -p stamps
> touch stamps/icedtea.stamp
> @@ -1272,7 +1339,8 @@
> rm -f stamps/icedtea.stamp
>
> stamps/icedtea-debug.stamp: stamps/bootstrap-directory-symlink.stamp \
> - $(OPENJDK_TREE) stamps/cacao.stamp stamps/rewrite-rhino.stamp
> + $(OPENJDK_TREE) stamps/cacao.stamp stamps/rewrite-rhino.stamp \
> + stamps/jamvm.stamp
> $(ARCH_PREFIX) $(MAKE) \
> $(ICEDTEA_ENV) \
> -C openjdk \
> @@ -1290,6 +1358,9 @@
> if WITH_CACAO
> printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
> endif
> +if ENABLE_JAMVM
> + printf -- '-jamvm ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
> +endif
> @echo "IcedTea (debug build) is served:" \
> $(DEBUG_BUILD_OUTPUT_DIR)
> mkdir -p stamps
> @@ -1695,6 +1766,29 @@
> fi
> rm -f stamps/rewrite-rhino.stamp
>
> +# JamVM
> +
> +stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp
> +if BUILD_JAMVM
> + cd jamvm/jamvm && \
> + ./autogen.sh --with-java-runtime-library=openjdk \
> + --prefix=$(abs_top_builddir)/jamvm/install ; \
> + $(MAKE) ; \
> + $(MAKE) install
> + mkdir -p $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server
> + cp $(abs_top_builddir)/jamvm/install/lib/libjvm.so $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server
> + ln -s server $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/client
> + touch $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server/Xusage.txt
> + touch $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/libjsig.so
> +endif
> + mkdir -p stamps
> + touch $@
> +
> +clean-jamvm:
> + rm -rf jamvm
> + rm -f stamps/jamvm.stamp
> + rm -f stamps/extract-jamvm.stamp
> +
> # CACAO
>
> stamps/cacao.stamp: $(OPENJDK_TREE) stamps/rt.stamp
> @@ -2059,6 +2153,8 @@
>
> download-drops: stamps/download-drops.stamp
>
> +download-jamvm: stamps/download-jamvm.stamp
> +
> download-jaf-drop: stamps/download-jaf-drop.stamp
>
> download-jaxp-drop: stamps/download-jaxp-drop.stamp
> @@ -2083,6 +2179,8 @@
>
> icedtea-ecj: stamps/icedtea-ecj.stamp
>
> +jamvm: stamps/jamvm.stamp
> +
> jtreg: stamps/jtreg.stamp
>
> liveconnect: stamps/liveconnect.stamp
> Index: icedtea6/configure.ac
> ===================================================================
> --- icedtea6.orig/configure.ac 2011-02-22 00:46:20.000000000 +0100
> +++ icedtea6/configure.ac 2011-02-22 00:46:58.000000000 +0100
> @@ -175,6 +175,9 @@
> AC_CHECK_WITH_CACAO_HOME
> AC_CHECK_WITH_CACAO_SRC_ZIP
> AC_CHECK_WITH_CACAO_SRC_DIR
> +
> +IT_CHECK_ENABLE_JAMVM
> +
> DISABLE_OPTIMIZATIONS
> SET_SHARK_BUILD
> ENABLE_ZERO_BUILD
> Index: icedtea6/acinclude.m4
> ===================================================================
> --- icedtea6.orig/acinclude.m4 2011-02-22 00:46:20.000000000 +0100
> +++ icedtea6/acinclude.m4 2011-02-22 01:55:54.000000000 +0100
> @@ -746,7 +746,8 @@
> sparc*-*-*) ;;
> x86_64-*-*) ;;
> *)
> - if test "x${WITH_CACAO}" != xno; then
> + if test "x${WITH_CACAO}" != xno || \
> + test "x${ENABLE_JAMVM}" = xyes; then
> use_zero=no
> else
> use_zero=yes
> @@ -820,6 +821,20 @@
> AM_CONDITIONAL(SHARK_BUILD, test "x${use_shark}" = xyes)
> ])
>
> +AC_DEFUN([IT_CHECK_ENABLE_JAMVM],
> +[
> + AC_MSG_CHECKING(whether to use JamVM as VM)
> + AC_ARG_ENABLE([jamvm],
> + [AS_HELP_STRING(--enable-jamvm,use JamVM as VM [[default=no]])],
> + [
> + ENABLE_JAMVM="${enableval}"
> + ])
> +
> + AC_MSG_RESULT(${ENABLE_JAMVM})
> + AM_CONDITIONAL(ENABLE_JAMVM, test x"${ENABLE_JAMVM}" = "xyes")
> + AC_SUBST(ENABLE_JAMVM)
> +])
> +
> AC_DEFUN([AC_CHECK_ENABLE_CACAO],
> [
> AC_MSG_CHECKING(whether to use CACAO as VM)
> @@ -1166,6 +1181,7 @@
> AM_CONDITIONAL(ADD_CACAO_BUILD, test x$add_vm_cacao != x)
> AM_CONDITIONAL(ADD_ZERO_BUILD, test x$add_vm_zero != x || test x$add_vm_shark != x)
> AM_CONDITIONAL(ADD_SHARK_BUILD, test x$add_vm_shark != x)
> +AM_CONDITIONAL(BUILD_JAMVM, test "x${ENABLE_JAMVM}" = xyes)
> AM_CONDITIONAL(BUILD_CACAO, test x$add_vm_cacao != x || test "x${WITH_CACAO}" = xyes)
>
> if test "x${WITH_CACAO}" = xyes && test "x${ADD_CACAO_BUILD_TRUE}" = x; then
> Index: icedtea6/NEWS
> ===================================================================
> --- icedtea6.orig/NEWS 2011-02-22 00:46:38.000000000 +0100
> +++ icedtea6/NEWS 2011-02-22 00:46:58.000000000 +0100
> @@ -10,6 +10,7 @@
>
> New in release 1.10 (2011-XX-XX):
>
> +* Added out-of-the-box JamVM support using --enable-jamvm
> * NetX and the plugin moved to the IcedTea-Web project with a separate
> release cycle.
> * Shark provided upstream rather than as part of IcedTea.
> Index: icedtea6/ChangeLog
> ===================================================================
> --- icedtea6.orig/ChangeLog 2011-02-22 01:58:56.000000000 +0100
> +++ icedtea6/ChangeLog 2011-02-22 02:44:50.000000000 +0100
> @@ -1,3 +1,42 @@
> +2011-02-22 Xerxes Ranby <xerxes at zafena.se>
> +
> + JamVM: Taste the New --enable-jamvm Flavour!
> + * NEWS: Updated.
> + * Makefile.am (JAMVM_VERSION): New variable.
> + (JAMVM_SHA256SUM): Likewise.
> + (JAMVM_BASE_URL): Likewise.
> + (JAMVM_URL): Likewise.
> + (JAMVM_SRC_ZIP): Likewise.
> + (JAMVM_IMPORT_PATH): Likewise.
> + (ICEDTEA_BUILD_TARGET):
> + Build only jdk if jamvm are enabled.
> + (ICEDTEA_DEBUG_BUILD_TARGET): Likewise.
> + (ICEDTEA_ENV): Set ALT_HOTSPOT_IMPORT_PATH to JAMVM_IMPORT_PATH
> + if jamvm are enabled.
> + (PRODUCT_NAME): Make -version report IcedTea6 Runtime Environment
> + if jamvm are enabled.
> + (JDK_DERIVATIVE_NAME): Only show IcedTea version
> + if jamvm are enabled.
> + (stamps/download-jamvm.stamp): New make target.
> + (clean-download-jamvm): Likewise.
> + (stamps/extract-jamvm.stamp): Likewise.
> + (stamps/jamvm.stamp): Likewise.
> + (clean-jamvm): Likewise.
> + (.PHONY): Add clean-jamvm.
> + (stamps/download.stamp): Add stamps/download-jamvm.stamp.
> + (clean-download): Add clean-download-jamvm.
> + (stamps/extract.stamp): Add stamps/extract-jamvm.stamp.
> + (clean-extract): Add clean-jamvm.
> + (stamps/icedtea.stamp): Add stamps/jamvm.stamp.
> + (download-jamvm): Alias to stamps/download-jamvm.stamp.
> + (jamvm): Alias to stamps/jamvm.stamp.
> + * configure.ac (IT_CHECK_ENABLE_JAMVM): Use new macro.
> + * acinclude.m4:
> + (ENABLE_ZERO_BUILD): Do not use zero if JamVM are enabled.
> + (IT_CHECK_ENABLE_JAMVM): New macro.
> + (BUILD_JAMVM): New conditional.
> + (ENABLE_JAMVM): New conditional.
> +
> 2011-02-21 Xerxes Ranby <xerxes at zafena.se>
>
> PR600: HS19 upgrade broke CACAO build on ARM
--
Andrew :)
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
Support Free Java!
Contribute to GNU Classpath and IcedTea
http://www.gnu.org/software/classpath
http://icedtea.classpath.org
PGP Key: F5862A37 (https://keys.indymedia.org/)
Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37
More information about the distro-pkg-dev
mailing list