Mercurial > hg > release > icedtea7-2.4
changeset 2632:5554ebb0913a
PR716: IcedTea7 should bootstrap with IcedTea6
2013-05-15 Andrew John Hughes <gnu.andrew@member.fsf.org>
PR716: IcedTea7 should bootstrap with IcedTea6
* NEWS: Updated.
* Makefile.am:
(JDK_CHANGESET): Bring in CertificateRevokedException
ambiguity fix.
(JDK_SHA256SUM): Likewise.
(ICEDTEA_BOOT_PATCHES): Rename ecj-fphexconstants
to fphexconstants. Make xbootclasspath and the new
bootstrap-tools split-off patch conditional.
* INSTALL: Document --disable-bootstrap-tools.
* acinclude.m4:
(IT_BYTECODE7_CHECK): Use AC_DEFUN_ONCE.
(IT_USE_BOOTSTRAP_TOOLS): Add --disable-bootstrap-tools
to decide whether to use the boot javac/javah or the
one built as part of langtools. Defaults to on for
bootstrap tools that support Java 1.7.
(IT_CHECK_FOR_XBOOTCLASSPATH): Check whether java
can be passed -Xbootclasspath/p to prepend a path
to the bootclasspath or not.
* configure.ac: Invoke the new macros.
* javac.in: Handle -Xbootclasspath/p by prepending
its value to the bootclasspath option used to ecj.
* patches/boot/bootstrap-tools.patch:
Split from xbootclasspath.patch. Uses the bootstrap
javac and javah rather than the langtools one for
CORBA and JDK.
* patches/boot/corba-dependencies.patch:
Include the langtools source directory on the sourcepath.
* patches/boot/fphexconstants.patch:
Replace additional cases in java.lang.Math (needed
when using javac via gcj).
* patches/boot/icedteart.patch:
Split from xbootclasspath.patch; the parts that
extend the classpath. The java.text Makefile changes
are changed to use -Xbootclasspath/a rather than a
complete rewrite.
* patches/boot/jaxws-jdk-dependency.patch:
Include the generated sources on the sourcepath.
* patches/boot/xbootclasspath.patch:
Revised version of the java.text Makefile changes
that replaces the use of -Xbootclasspath for those
VMs that don't support it.
author | Andrew John Hughes <gnu_andrew@member.fsf.org> |
---|---|
date | Wed, 15 May 2013 20:17:08 +0100 |
parents | 933d082ec889 |
children | c8821d8403ff |
files | ChangeLog INSTALL Makefile.am NEWS acinclude.m4 configure.ac javac.in patches/boot/bootstrap-tools.patch patches/boot/corba-dependencies.patch patches/boot/ecj-fphexconstants.patch patches/boot/fphexconstants.patch patches/boot/icedteart.patch patches/boot/jaxws-jdk-dependency.patch patches/boot/xbootclasspath.patch |
diffstat | 14 files changed, 370 insertions(+), 169 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue May 07 15:59:03 2013 +0200 +++ b/ChangeLog Wed May 15 20:17:08 2013 +0100 @@ -1,3 +1,48 @@ +2013-05-15 Andrew John Hughes <gnu.andrew@member.fsf.org> + + PR716: IcedTea7 should bootstrap with IcedTea6 + * NEWS: Updated. + * Makefile.am: + (JDK_CHANGESET): Bring in CertificateRevokedException + ambiguity fix. + (JDK_SHA256SUM): Likewise. + (ICEDTEA_BOOT_PATCHES): Rename ecj-fphexconstants + to fphexconstants. Make xbootclasspath and the new + bootstrap-tools split-off patch conditional. + * INSTALL: Document --disable-bootstrap-tools. + * acinclude.m4: + (IT_BYTECODE7_CHECK): Use AC_DEFUN_ONCE. + (IT_USE_BOOTSTRAP_TOOLS): Add --disable-bootstrap-tools + to decide whether to use the boot javac/javah or the + one built as part of langtools. Defaults to on for + bootstrap tools that support Java 1.7. + (IT_CHECK_FOR_XBOOTCLASSPATH): Check whether java + can be passed -Xbootclasspath/p to prepend a path + to the bootclasspath or not. + * configure.ac: Invoke the new macros. + * javac.in: Handle -Xbootclasspath/p by prepending + its value to the bootclasspath option used to ecj. + * patches/boot/bootstrap-tools.patch: + Split from xbootclasspath.patch. Uses the bootstrap + javac and javah rather than the langtools one for + CORBA and JDK. + * patches/boot/corba-dependencies.patch: + Include the langtools source directory on the sourcepath. + * patches/boot/fphexconstants.patch: + Replace additional cases in java.lang.Math (needed + when using javac via gcj). + * patches/boot/icedteart.patch: + Split from xbootclasspath.patch; the parts that + extend the classpath. The java.text Makefile changes + are changed to use -Xbootclasspath/a rather than a + complete rewrite. + * patches/boot/jaxws-jdk-dependency.patch: + Include the generated sources on the sourcepath. + * patches/boot/xbootclasspath.patch: + Revised version of the java.text Makefile changes + that replaces the use of -Xbootclasspath for those + VMs that don't support it. + 2013-05-07 Xerxes RĂ„nby <xerxes@zafena.se> JamVM
--- a/INSTALL Tue May 07 15:59:03 2013 +0200 +++ b/INSTALL Wed May 15 20:17:08 2013 +0100 @@ -176,6 +176,7 @@ * --enable-Werror: Turn gcc & javac warnings into errors. * --disable-jar-compression: Don't compress the OpenJDK JAR files. * --disable-downloading: Don't download tarballs if not available; fail instead. +* --disable-bootstrap-tools: Use javac and javah from langtools, not the bootstrap JDK. Other options may be supplied which enable or disable new features. These are documented fully in the relevant section below. @@ -217,7 +218,7 @@ PulseAudio which can be enabled using --enable-pulse-java. The resulting provider is org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider. -Xrender Support +XRender Support =============== IcedTea7 includes support for an Xrender-based rendering pipeline @@ -327,7 +328,7 @@ Currently, IcedTea7 only supports the 'original' HotSpot provided as part of the upstream IcedTea forest. -Javascript Support +JavaScript Support ================== IcedTea7 adds Javascript support via the javax.script API by using @@ -346,6 +347,15 @@ avoids conflicts between the JDK's copy of Rhino and any used by other applications. +Bootstrap Tools +=============== + +For bootstrap builds, the option --disable-bootstrap-tools can be used +to make use of the javac and javah built as part of the langtools build, +rather than the bootstrap tools. The default setting of this option is +to use the bootstrap tools when they support Java 1.7 (tested at +configure time). + Building Additional Virtual Machines ====================================
--- a/Makefile.am Tue May 07 15:59:03 2013 +0200 +++ b/Makefile.am Wed May 15 20:17:08 2013 +0100 @@ -7,14 +7,14 @@ CORBA_CHANGESET = 4366e0fe59d5 JAXP_CHANGESET = 5a11895b645d JAXWS_CHANGESET = 29619865cc64 -JDK_CHANGESET = d4cd8f10764d +JDK_CHANGESET = 5e20c1a72aa8 LANGTOOLS_CHANGESET = 718a945bfdb9 OPENJDK_CHANGESET = 6579f526e5e4 CORBA_SHA256SUM = b23b0980c704247a0a690f6fb663ec561f56e2fcdc5d69f13d9629d2c1937f32 JAXP_SHA256SUM = a0f4516cdabb60bea73ce157db3c31c24634bc4058d35257b981b6b1be5114ba JAXWS_SHA256SUM = 53e63c8b63380f4a34ae955f91455ece2f687dbe3dd47e4c14ac03761cb3daee -JDK_SHA256SUM = 4a03854b630151719fa9747525c08bc6b86362d7d2a26e62e349dc9ebfc27e51 +JDK_SHA256SUM = 5b9f736df39198eec25a697792783d361e4ea4a8289b4dc7f156bcb307278b0c LANGTOOLS_SHA256SUM = c412b61b095154fee4c45dc133f2baca3100fecd48b742f80da49a52ec473b02 OPENJDK_SHA256SUM = 44c3e4a130fe4b76c1ba977ae2251884cefa774b82a24c4415b64395aef9594c @@ -308,10 +308,9 @@ patches/boot/corba-no-gen.patch \ patches/boot/corba-orb.patch \ patches/boot/demos.patch \ - patches/boot/ecj-fphexconstants.patch \ + patches/boot/fphexconstants.patch \ patches/boot/fontconfig.patch \ patches/boot/generated-comments.patch \ - patches/boot/xbootclasspath.patch \ patches/boot/icedteart.patch \ patches/boot/jar.patch \ patches/boot/symbols.patch \ @@ -336,6 +335,16 @@ patches/boot/xsltproc.patch \ patches/boot/ecj-odd.patch +if !DISABLE_BOOTSTRAP_TOOLS +ICEDTEA_BOOT_PATCHES += \ + patches/boot/bootstrap-tools.patch +endif + +if !VM_SUPPORTS_XBOOTCLASSPATH +ICEDTEA_BOOT_PATCHES += \ + patches/boot/xbootclasspath.patch +endif + if !WITH_PAX ICEDTEA_BOOT_PATCHES += patches/boot/test_gamma.patch endif
--- a/NEWS Tue May 07 15:59:03 2013 +0200 +++ b/NEWS Wed May 15 20:17:08 2013 +0100 @@ -678,6 +678,7 @@ - Revert 7060849 - Set UNLIMITED_CRYPTO=true to ensure we use the unlimited policy. - Set handleStartupErrors to ignoreMultipleInitialisation in nss.cfg to fix PR473 + - PR716: IcedTea7 should bootstrap with IcedTea6 * CACAO - src/vm/jit/x86_64/asmpart.S (asm_abstractmethoderror): Keep stack aligned. - src/native/jni.cpp (GetObjectClass): Remove null pointer check.
--- a/acinclude.m4 Tue May 07 15:59:03 2013 +0200 +++ b/acinclude.m4 Wed May 15 20:17:08 2013 +0100 @@ -2184,7 +2184,7 @@ AC_SUBST(ALT_JAMVM_SRC_ZIP) ]) -AC_DEFUN([IT_BYTECODE7_CHECK],[ +AC_DEFUN_ONCE([IT_BYTECODE7_CHECK],[ AC_CACHE_CHECK([if the VM lacks support for 1.7 bytecode], it_cv_bytecode7, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -2463,3 +2463,69 @@ AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes") AC_PROVIDE([$0])dnl ]) + +AC_DEFUN_ONCE([IT_USE_BOOTSTRAP_TOOLS], +[ + AC_REQUIRE([IT_BYTECODE7_CHECK]) + AC_MSG_CHECKING([whether to disable the use of bootstrap tools for bootstrapping]) + AC_ARG_ENABLE([bootstrap-tools], + [AS_HELP_STRING(--disable-bootstrap-tools, + disable the use of bootstrap tools for bootstrapping [[default=no if they support 7]])], + [ + case "${enableval}" in + no) + disable_bootstrap_tools=yes + ;; + *) + disable_bootstrap_tools=no + ;; + esac + ], + [ + if test "x${it_cv_bytecode7}" = "xyes"; then + disable_bootstrap_tools=yes; + else + disable_bootstrap_tools=no; + fi + ]) + AC_MSG_RESULT([$disable_bootstrap_tools]) + AM_CONDITIONAL([DISABLE_BOOTSTRAP_TOOLS], test x"${disable_bootstrap_tools}" = "xyes") +]) + +AC_DEFUN_ONCE([IT_CHECK_FOR_XBOOTCLASSPATH], +[ + AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) + AC_CACHE_CHECK([if the VM supports -Xbootclasspath], it_cv_xbootclasspath_works, [ + CLASS=Test.java + BYTECODE=$(echo $CLASS|sed 's#\.java##') + mkdir tmp.$$ + cd tmp.$$ + cat << \EOF > $CLASS +[/* [#]line __oline__ "configure" */ + +public class Test +{ + public static void main(String[] args) + { + System.out.println("Hello World!"); + } +}] +EOF + mkdir build + if $JAVAC -d build -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVA -Xbootclasspath/p:build $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_xbootclasspath_works=yes; + else + it_cv_xbootclasspath_works=no; + fi + else + it_cv_xbootclasspath_works=no; + fi + rm -f $CLASS build/*.class + rmdir build + cd .. + rmdir tmp.$$ + ]) + AC_PROVIDE([$0])dnl + AM_CONDITIONAL([VM_SUPPORTS_XBOOTCLASSPATH], test x"${it_cv_xbootclasspath_works}" = "xyes") +])
--- a/configure.ac Tue May 07 15:59:03 2013 +0200 +++ b/configure.ac Wed May 15 20:17:08 2013 +0100 @@ -151,6 +151,8 @@ IT_CHECK_ENABLE_WARNINGS IT_DIAMOND_CHECK IT_BYTECODE7_CHECK +IT_USE_BOOTSTRAP_TOOLS +IT_CHECK_FOR_XBOOTCLASSPATH IT_FIND_RHINO_JAR IT_WITH_OPENJDK_SRC_ZIP
--- a/javac.in Tue May 07 15:59:03 2013 +0200 +++ b/javac.in Wed May 15 20:17:08 2013 +0100 @@ -18,7 +18,15 @@ } my @bcoption; -push @bcoption, '-bootclasspath', glob '@abs_top_builddir@/bootstrap/jdk1.6.0/jre/lib/rt.jar' +my @bcoptions = grep {$_ =~ '^-Xbootclasspath/p:' } @ARGV; +my $bc = $bcoptions[0]; +my $systembc = glob '/home/andrew/builder/icedtea7/bootstrap/jdk1.6.0/jre/lib/rt.jar'; +if ($bc) +{ + $bc =~ s/^[^:]*://; + $systembc = join ":", $bc, $systembc; +} +push @bcoption, '-bootclasspath', $systembc unless grep {$_ eq '-bootclasspath'} @ARGV; my @ecj_parms = ($ECJ_WARNINGS, @bcoption); my @javac_parms = ($JAVAC_WARNINGS, '-Xprefer:source',
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/bootstrap-tools.patch Wed May 15 20:17:08 2013 +0100 @@ -0,0 +1,66 @@ +diff -Nru openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk openjdk-boot/corba/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk 2012-06-29 15:19:55.000000000 +0100 ++++ openjdk-boot/corba/make/common/shared/Defs-java.gmk 2012-06-29 18:52:40.584723407 +0100 +@@ -131,26 +131,14 @@ + CLASS_VERSION = -target $(TARGET_CLASS_VERSION) + JAVACFLAGS += $(CLASS_VERSION) + JAVACFLAGS += -encoding ascii +-JAVACFLAGS += -classpath $(BOOTDIR)/lib/tools.jar ++JAVACFLAGS += -classpath $(LANGTOOLS_DIST)/lib/classes.jar + JAVACFLAGS += $(OTHER_JAVACFLAGS) + + # Langtools +-ifdef LANGTOOLS_DIST +- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar +- JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar +- DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar +- JAVAC_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVAC_JAR)" \ +- -jar $(JAVAC_JAR) $(JAVACFLAGS) +- JAVADOC_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ +- -jar $(JAVADOC_JAR) +-else +- # If no explicit tools, use boot tools (add VM flags in this case) +- JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ +- $(JAVACFLAGS) +- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) +-endif ++# If no explicit tools, use boot tools (add VM flags in this case) ++JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ ++ $(JAVACFLAGS) ++JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) + + # Override of what javac to use (see deploy workspace) + ifdef JAVAC +diff -Nru openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk openjdk-boot/jdk/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk 2012-06-29 15:21:00.000000000 +0100 ++++ openjdk-boot/jdk/make/common/shared/Defs-java.gmk 2012-06-29 18:53:43.337711469 +0100 +@@ -168,27 +168,15 @@ + + # Langtools + ifdef LANGTOOLS_DIST +- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar +- JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar + JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar + DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar +- JAVAC_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVAC_JAR)" \ +- -jar $(JAVAC_JAR) $(JAVACFLAGS) +- JAVAH_CMD = $(BOOT_JAVA_CMD) \ +- "-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \ +- -jar $(JAVAH_JAR) $(JAVAHFLAGS) + JAVADOC_CMD = $(BOOT_JAVA_CMD) \ + "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ + -jar $(JAVADOC_JAR) $(JAVADOCFLAGS) +-else +- # If no explicit tools, use boot tools (add VM flags in this case) + JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ + $(JAVACFLAGS) + JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \ + $(JAVAHFLAGS) +- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \ +- $(JAVADOCFLAGS) + endif + + # Override of what javac to use (see deploy workspace)
--- a/patches/boot/corba-dependencies.patch Tue May 07 15:59:03 2013 +0200 +++ b/patches/boot/corba-dependencies.patch Wed May 15 20:17:08 2013 +0100 @@ -7,8 +7,19 @@ $(CAT) $(JAVA_SOURCE_LIST); \ - $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ + $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) \ -+ -sourcepath "$(SOURCEPATH):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes" \ ++ -sourcepath "$(SOURCEPATH):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(LANGTOOLS_TOPDIR)/src/share/classes" \ + -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ fi @$(java-vm-cleanup) +diff --git a/make/Defs-internal.gmk b/make/Defs-internal.gmk +--- openjdk-boot.orig/make/Defs-internal.gmk ++++ openjdk-boot/make/Defs-internal.gmk +@@ -305,6 +305,7 @@ + + # Common make arguments (supplied to all component builds) + COMMON_BUILD_ARGUMENTS = \ ++ LANGTOOLS_TOPDIR=$(ABS_LANGTOOLS_TOPDIR) \ + JDK_TOPDIR=$(ABS_JDK_TOPDIR) \ + JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \ + EXTERNALSANITYCONTROL=true \
--- a/patches/boot/ecj-fphexconstants.patch Tue May 07 15:59:03 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -diff -Nru ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Double.java openjdk-boot/jdk/src/share/classes/java/lang/Double.java ---- ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Double.java 2009-10-30 16:49:00.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/java/lang/Double.java 2009-10-30 16:59:16.000000000 +0000 -@@ -76,7 +76,7 @@ - * {@code 0x1.fffffffffffffP+1023} and also equal to - * {@code Double.longBitsToDouble(0x7fefffffffffffffL)}. - */ -- public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308 -+ public static final double MAX_VALUE = 1.7976931348623157e+308; - - /** - * A constant holding the smallest positive normal value of type -@@ -86,7 +86,7 @@ - * - * @since 1.6 - */ -- public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308 -+ public static final double MIN_NORMAL = 2.2250738585072014E-308; - - /** - * A constant holding the smallest positive nonzero value of type -@@ -95,7 +95,7 @@ - * {@code 0x0.0000000000001P-1022} and also equal to - * {@code Double.longBitsToDouble(0x1L)}. - */ -- public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324 -+ public static final double MIN_VALUE = 4.9e-324; - - /** - * Maximum exponent a finite {@code double} variable may have. -diff -Nru ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Float.java openjdk-boot/jdk/src/share/classes/java/lang/Float.java ---- ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Float.java 2009-10-30 16:49:00.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/java/lang/Float.java 2009-10-30 16:59:16.000000000 +0000 -@@ -76,7 +76,7 @@ - * {@code 0x1.fffffeP+127f} and also equal to - * {@code Float.intBitsToFloat(0x7f7fffff)}. - */ -- public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f -+ public static final float MAX_VALUE = 3.4028235e+38f; - - /** - * A constant holding the smallest positive normal value of type -@@ -86,7 +86,7 @@ - * - * @since 1.6 - */ -- public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f -+ public static final float MIN_NORMAL = 1.17549435E-38f; - - /** - * A constant holding the smallest positive nonzero value of type -@@ -94,7 +94,7 @@ - * hexadecimal floating-point literal {@code 0x0.000002P-126f} - * and also equal to {@code Float.intBitsToFloat(0x1)}. - */ -- public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f -+ public static final float MIN_VALUE = 1.4e-45f; - - /** - * Maximum exponent a finite {@code float} variable may have. It
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/fphexconstants.patch Wed May 15 20:17:08 2013 +0100 @@ -0,0 +1,81 @@ +diff -Nru ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Double.java openjdk-boot/jdk/src/share/classes/java/lang/Double.java +--- ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Double.java 2009-10-30 16:49:00.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Double.java 2009-10-30 16:59:16.000000000 +0000 +@@ -76,7 +76,7 @@ + * {@code 0x1.fffffffffffffP+1023} and also equal to + * {@code Double.longBitsToDouble(0x7fefffffffffffffL)}. + */ +- public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308 ++ public static final double MAX_VALUE = 1.7976931348623157e+308; + + /** + * A constant holding the smallest positive normal value of type +@@ -86,7 +86,7 @@ + * + * @since 1.6 + */ +- public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308 ++ public static final double MIN_NORMAL = 2.2250738585072014E-308; + + /** + * A constant holding the smallest positive nonzero value of type +@@ -95,7 +95,7 @@ + * {@code 0x0.0000000000001P-1022} and also equal to + * {@code Double.longBitsToDouble(0x1L)}. + */ +- public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324 ++ public static final double MIN_VALUE = 4.9e-324; + + /** + * Maximum exponent a finite {@code double} variable may have. +diff -Nru ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Float.java openjdk-boot/jdk/src/share/classes/java/lang/Float.java +--- ../openjdk.orig/openjdk-boot/jdk/src/share/classes/java/lang/Float.java 2009-10-30 16:49:00.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/Float.java 2009-10-30 16:59:16.000000000 +0000 +@@ -76,7 +76,7 @@ + * {@code 0x1.fffffeP+127f} and also equal to + * {@code Float.intBitsToFloat(0x7f7fffff)}. + */ +- public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f ++ public static final float MAX_VALUE = 3.4028235e+38f; + + /** + * A constant holding the smallest positive normal value of type +@@ -86,7 +86,7 @@ + * + * @since 1.6 + */ +- public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f ++ public static final float MIN_NORMAL = 1.17549435E-38f; + + /** + * A constant holding the smallest positive nonzero value of type +@@ -94,7 +94,7 @@ + * hexadecimal floating-point literal {@code 0x0.000002P-126f} + * and also equal to {@code Float.intBitsToFloat(0x1)}. + */ +- public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f ++ public static final float MIN_VALUE = 1.4e-45f; + + /** + * Maximum exponent a finite {@code float} variable may have. It +diff --git a/src/share/classes/java/lang/Math.java b/src/share/classes/java/lang/Math.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/Math.java ++++ openjdk-boot/jdk/src/share/classes/java/lang/Math.java +@@ -647,7 +647,7 @@ + * @see java.lang.Integer#MIN_VALUE + */ + public static int round(float a) { +- if (a != 0x1.fffffep-2f) // greatest float value less than 0.5 ++ if (a != nextAfter(0.5f, 0.4f)) // greatest float value less than 0.5 + return (int)floor(a + 0.5f); + else + return 0; +@@ -674,7 +674,7 @@ + * @see java.lang.Long#MIN_VALUE + */ + public static long round(double a) { +- if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5 ++ if (a != nextAfter(0.5d, 0.4d)) // greatest double value less than 0.5 + return (long)floor(a + 0.5d); + else + return 0;
--- a/patches/boot/icedteart.patch Tue May 07 15:59:03 2013 +0200 +++ b/patches/boot/icedteart.patch Wed May 15 20:17:08 2013 +0100 @@ -39,3 +39,37 @@ @$(java-vm-cleanup) $(INSTALLDIR)/$(MAPFILE): $(WORKDIR)/$(MAPFILE) +diff -Nru openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk openjdk-boot/jdk/make/common/shared/Defs-java.gmk +--- openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk 2012-06-29 15:21:00.000000000 +0100 ++++ openjdk-boot/jdk/make/common/shared/Defs-java.gmk 2012-06-29 18:53:43.337711469 +0100 +@@ -157,7 +157,7 @@ + JAVACFLAGS += $(OTHER_JAVACFLAGS) + + # Needed for javah +-JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH)" ++JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH):$(ICEDTEA_RT):$(CLASSDESTDIR)" + + # Needed for javadoc to ensure it builds documentation + # against the newly built classes +diff --git a/make/java/text/base/Makefile b/make/java/text/base/Makefile +--- openjdk-boot/jdk/make/java/text/base/Makefile ++++ openjdk-boot/jdk/make/java/text/base/Makefile +@@ -81,6 +81,7 @@ + $(TEXT_SOURCES) + $(MKDIR) -p $(TEXT_CLASSDIR) + $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \ ++ -Xbootclasspath/a:$(ABS_OUTPUTDIR)/classes \ + -jar $(GENERATEBREAKITERATORDATA_JARFILE) \ + -o $(TEXT_CLASSDIR) \ + -spec $(UNICODEDATA)/UnicodeData.txt +diff --git a/make/sun/text/Makefile b/make/sun/text/Makefile +--- openjdk-boot/jdk/make/sun/text/Makefile ++++ openjdk-boot/jdk/make/sun/text/Makefile +@@ -86,6 +86,7 @@ + -sourcepath $(TEXT_SRCDIR) \ + $(BIRULES) $(BIINFO) + $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \ ++ -Xbootclasspath/a:$(ABS_OUTPUTDIR)/classes \ + -jar $(GENERATEBREAKITERATORDATA_JARFILE) \ + -o $(CLASSDESTDIR)/sun/text/resources \ + -spec $(UNICODEDATA)/UnicodeData.txt \
--- a/patches/boot/jaxws-jdk-dependency.patch Tue May 07 15:59:03 2013 +0200 +++ b/patches/boot/jaxws-jdk-dependency.patch Wed May 15 20:17:08 2013 +0100 @@ -7,16 +7,17 @@ +# JDK sources + -+jdk.sources=${jdk.topdir}/src/share/classes:${jdk.topdir}/src/solaris/classes ++jdk.sources=${jdk.topdir}/src/share/classes:${jdk.topdir}/src/solaris/classes:${jdk.gensrcdir} + # Distributed results dist.dir=${output.dir}/dist dist.lib.dir=${dist.dir}/lib -@@ -92,6 +96,7 @@ +@@ -92,6 +96,8 @@ output.dir=${output.dir}${line.separator}\ build.dir=${build.dir}${line.separator}\ dist.dir=${dist.dir}${line.separator}\ + jdk.topdir=${jdk.topdir}${line.separator}\ ++ jdk.gensrcdir=${jdk.gensrcdir}${line.separator}\ ${line.separator} #------------------------------------------------------------ @@ -34,7 +35,7 @@ diff -Nru openjdk-boot.orig/jaxws/make/Makefile openjdk-boot/jaxws/make/Makefile --- openjdk-boot.orig/jaxws/make/Makefile 2012-06-11 14:30:27.904723311 +0100 +++ openjdk-boot/jaxws/make/Makefile 2012-06-11 14:36:04.005990816 +0100 -@@ -123,6 +123,10 @@ +@@ -123,6 +123,14 @@ endif endif @@ -42,6 +43,22 @@ + ANT_OPTIONS += -Djdk.topdir=$(JDK_TOPDIR) +endif + ++ifdef GENSRCDIR ++ ANT_OPTIONS += -Djdk.gensrcdir=$(GENSRCDIR) ++endif ++ # Default target and expected 'do everything' target default: all +--- openjdk-boot.orig/make/jaxws-rules.gmk.orig 2013-05-07 13:46:03.172779265 +0100 ++++ openjdk-boot/make/jaxws-rules.gmk 2013-05-07 13:46:15.332968843 +0100 +@@ -31,7 +31,8 @@ + $(COMMON_BUILD_ARGUMENTS) \ + ALT_OUTPUTDIR=$(JAXWS_OUTPUTDIR) \ + ALT_BOOTDIR=$(BOOTDIR) \ +- ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH) ++ ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH) \ ++ GENSRCDIR=$(GENSRCDIR) + + ifeq ($(BUILD_LANGTOOLS), true) + JAXWS_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
--- a/patches/boot/xbootclasspath.patch Tue May 07 15:59:03 2013 +0200 +++ b/patches/boot/xbootclasspath.patch Wed May 15 20:17:08 2013 +0100 @@ -1,86 +1,12 @@ -diff -Nru openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk openjdk-boot/corba/make/common/shared/Defs-java.gmk ---- openjdk-boot.orig/corba/make/common/shared/Defs-java.gmk 2012-06-29 15:19:55.000000000 +0100 -+++ openjdk-boot/corba/make/common/shared/Defs-java.gmk 2012-06-29 18:52:40.584723407 +0100 -@@ -131,26 +131,14 @@ - CLASS_VERSION = -target $(TARGET_CLASS_VERSION) - JAVACFLAGS += $(CLASS_VERSION) - JAVACFLAGS += -encoding ascii --JAVACFLAGS += -classpath $(BOOTDIR)/lib/tools.jar -+JAVACFLAGS += -classpath $(LANGTOOLS_DIST)/lib/classes.jar - JAVACFLAGS += $(OTHER_JAVACFLAGS) - - # Langtools --ifdef LANGTOOLS_DIST -- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar -- JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar -- DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar -- JAVAC_CMD = $(BOOT_JAVA_CMD) \ -- "-Xbootclasspath/p:$(JAVAC_JAR)" \ -- -jar $(JAVAC_JAR) $(JAVACFLAGS) -- JAVADOC_CMD = $(BOOT_JAVA_CMD) \ -- "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ -- -jar $(JAVADOC_JAR) --else -- # If no explicit tools, use boot tools (add VM flags in this case) -- JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ -- $(JAVACFLAGS) -- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) --endif -+# If no explicit tools, use boot tools (add VM flags in this case) -+JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ -+ $(JAVACFLAGS) -+JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) - - # Override of what javac to use (see deploy workspace) - ifdef JAVAC -diff -Nru openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk openjdk-boot/jdk/make/common/shared/Defs-java.gmk ---- openjdk-boot.orig/jdk/make/common/shared/Defs-java.gmk 2012-06-29 15:21:00.000000000 +0100 -+++ openjdk-boot/jdk/make/common/shared/Defs-java.gmk 2012-06-29 18:53:43.337711469 +0100 -@@ -157,7 +157,7 @@ - JAVACFLAGS += $(OTHER_JAVACFLAGS) - - # Needed for javah --JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH)" -+JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH):$(ICEDTEA_RT):$(CLASSDESTDIR)" - - # Needed for javadoc to ensure it builds documentation - # against the newly built classes -@@ -168,27 +168,15 @@ - - # Langtools - ifdef LANGTOOLS_DIST -- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar -- JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar - JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar - DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar -- JAVAC_CMD = $(BOOT_JAVA_CMD) \ -- "-Xbootclasspath/p:$(JAVAC_JAR)" \ -- -jar $(JAVAC_JAR) $(JAVACFLAGS) -- JAVAH_CMD = $(BOOT_JAVA_CMD) \ -- "-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \ -- -jar $(JAVAH_JAR) $(JAVAHFLAGS) - JAVADOC_CMD = $(BOOT_JAVA_CMD) \ - "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ - -jar $(JAVADOC_JAR) $(JAVADOCFLAGS) --else -- # If no explicit tools, use boot tools (add VM flags in this case) - JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ - $(JAVACFLAGS) - JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \ - $(JAVAHFLAGS) -- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \ -- $(JAVADOCFLAGS) - endif - - # Override of what javac to use (see deploy workspace) diff -Nru openjdk-boot.orig/jdk/make/java/text/base/Makefile openjdk-boot/jdk/make/java/text/base/Makefile ---- openjdk-boot.orig/jdk/make/java/text/base/Makefile 2012-06-29 15:21:00.000000000 +0100 -+++ openjdk-boot/jdk/make/java/text/base/Makefile 2012-06-29 18:52:40.596723600 +0100 -@@ -80,8 +80,8 @@ +--- openjdk-boot.orig/jdk/make/java/text/base/Makefile 2013-05-14 19:17:14.115508141 +0100 ++++ openjdk-boot/jdk/make/java/text/base/Makefile 2013-05-14 19:25:03.882202419 +0100 +@@ -80,9 +80,8 @@ -sourcepath $(TEXT_SRCDIR) \ $(TEXT_SOURCES) $(MKDIR) -p $(TEXT_CLASSDIR) - $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \ +- -Xbootclasspath/a:$(ABS_OUTPUTDIR)/classes \ - -jar $(GENERATEBREAKITERATORDATA_JARFILE) \ + $(BOOT_JAVA_CMD) -cp $(TEXT_CLASSES):$(GENERATEBREAKITERATORDATA_JARFILE):$(ABS_OUTPUTDIR)/classes \ + build.tools.generatebreakiteratordata.GenerateBreakIteratorData \ @@ -88,13 +14,14 @@ -spec $(UNICODEDATA)/UnicodeData.txt @$(java-vm-cleanup) diff -Nru openjdk-boot.orig/jdk/make/sun/text/Makefile openjdk-boot/jdk/make/sun/text/Makefile ---- openjdk-boot.orig/jdk/make/sun/text/Makefile 2012-06-29 15:21:00.000000000 +0100 -+++ openjdk-boot/jdk/make/sun/text/Makefile 2012-06-29 18:52:40.596723600 +0100 -@@ -85,8 +85,9 @@ +--- openjdk-boot.orig/jdk/make/sun/text/Makefile 2013-05-14 19:17:14.115508141 +0100 ++++ openjdk-boot/jdk/make/sun/text/Makefile 2013-05-14 19:25:30.390363949 +0100 +@@ -85,9 +85,9 @@ $(BOOT_JAVAC_CMD) -d $(TEXT_CLASSES) \ -sourcepath $(TEXT_SRCDIR) \ $(BIRULES) $(BIINFO) - $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \ +- -Xbootclasspath/a:$(ABS_OUTPUTDIR)/classes \ - -jar $(GENERATEBREAKITERATORDATA_JARFILE) \ + $(BOOT_JAVA_CMD) \ + -cp $(TEXT_CLASSES):$(ABS_OUTPUTDIR)/classes:$(GENERATEBREAKITERATORDATA_JARFILE) \ @@ -102,19 +29,3 @@ -o $(CLASSDESTDIR)/sun/text/resources \ -spec $(UNICODEDATA)/UnicodeData.txt \ -language th -diff -Nru openjdk-boot.orig/langtools/make/build.xml openjdk-boot/langtools/make/build.xml ---- openjdk-boot.orig/langtools/make/build.xml 2012-06-29 18:09:26.064153871 +0100 -+++ openjdk-boot/langtools/make/build.xml 2012-06-29 18:52:40.596723600 +0100 -@@ -872,10 +872,8 @@ - executable="${boot.java.home}/bin/javac" - srcdir="${make.tools.dir}/GenStubs" - destdir="${build.toolclasses.dir}/" -- classpath="${ant.core.lib}" -- includeantruntime="false"> -- <compilerarg value="-Xbootclasspath/p:${build.bootstrap.dir}/classes"/> -- </javac> -+ classpath="${build.bootstrap.dir}/classes:${ant.core.lib}" -+ includeantruntime="false"/> - <taskdef name="genstubs" - classname="GenStubs$$Ant" - classpath="${build.toolclasses.dir}:${build.bootstrap.dir}/classes:${ant.home}/lib/ant.jar"/>