changeset 2038:0a32b3a23fcc

Merge
author Andrew John Hughes <ahughes@redhat.com>
date Tue, 02 Mar 2010 14:32:15 +0000
parents d93c134e3357 (current diff) e1e9efa47cbe (diff)
children 39dc82eccaa9
files ChangeLog Makefile.am patches/icedtea-timezone-default-permission.patch patches/icedtea-timezone.patch
diffstat 10 files changed, 309 insertions(+), 248 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Feb 25 18:50:04 2010 +0000
+++ b/ChangeLog	Tue Mar 02 14:32:15 2010 +0000
@@ -1,3 +1,124 @@
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	(stamps/cacao.stamp): Depend on rt.stamp
+	and use updated rt.jar to build against rather
+	than the contents of lib/rt, so that --with-openjdk
+	builds work.
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	(stamps/plugin.stamp): Create stamp with the
+	right filename.
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	(icedtea-against-icedtea): Convert to stamp
+	and provide this as an alias.
+	(icedtea-debug-against-icedtea): Likewise.
+	(stamps/jtreg.stamp): Depend on
+	stamps/icedtea-against-icedtea.stamp
+	(stamps/tools.stamp): Converted from
+	target relying on
+	bootstrap/jdk1.7.0/jre/lib/tools.jar to
+	a stamp target.
+	(clean-tools-jar): Remove the stamp.
+	(stamps/plugs.stamp): Depend on tools.stamp
+	not the jar file itself.
+	(icedtea): Match icedtea.stamp without bringing in
+	additional dependencies.  icedtea-against-icedtea
+	is equivalent to the old version.
+	(icedtea-debug): Likewise.
+	(tools-jar): New alias for tools.stamp
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	Patch should be added to ICEDTEA_ECJ_PATCHES
+	not ICEDTEA_ENV_ECJ.
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	Remove errant backslash.
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	Simply JAXWS patching for OpenJDK6.
+	* Makefile.am,
+	(NEED_JAXWS_SRC): Removed.
+	(JAXWS_PATCHES): Removed.
+	(ICEDTEA_ENV_ECJ): Add getdtdtype patch.
+	(extract.stamp): Remove extract-jaxws dependency.
+	(clean-extract): Remove clean-extract-jaxws dependency.
+	(extract-jaxws.stamp): Removed.
+	(clean-extract-jaxws): Removed.
+	* patches/ecj/icedtea-jaxws-getdtdtype.patch:
+	Updated to apply to JAXWS tree as a patch.
+
+2009-11-17  Andrew John Hughes  <ahughes@redhat.com>
+
+	* patches/ecj/icedtea-jaxws-getdtdtype.patch:
+	Replace getDTDType method, don't add another.
+
+2009-11-17  Andrew John Hughes  <ahughes@redhat.com>
+
+	* patches/ecj/icedtea-jaxws-getdtdtype.patch:
+	Add additional fix for AttributeBase.java
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	(stamps/extract.stamp): Add meta extract target
+	to pull in both extract-openjdk and extract-jaxws.
+	(stamps/extract-openjdk.stamp): Rename stamp file
+	to extract-openjdk.stamp.
+	(clean-extract-jaxws): Remove jaxws sources.
+
+2009-11-17  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
+	Make use of JAXWS dependent on absence of
+	getDTDType() bug.  Add new JAXWS patch.
+	(extract-jaxws.stamp): Apply getDTDType() patch
+	if bug found.
+	* acinclude.m4:
+	(IT_GETDTDTYPE_CHECK): Check for old versions of
+	gcj/Classpath which have
+	javax.xml.stream.events.Attribute.getDTDType()
+	with a return type of QName not String.
+	* configure.ac:
+	Invoke new IT_GETDTDTYPE_CHECK macro.
+	* patches/icedtea-jaxws-getdtdtype.patch:
+	New patch to work around the getDTDType() bug.
+
+2010-03-01  Andrew John Hughes  <ahughes@redhat.com>
+
+	* patches/ecj/icedtea.patch: Don't add tools.jar
+	to bootclasspath; now just a symlink to rt.jar.
+
+2010-03-01  Mark Wielaard  <mark@klomp.org>
+
+	* patches/ecj/icedtea.patch: Don't add generated dir to
+	bootclasspath in langtools/make/build.xml.
+
+2010-02-26  Mark Wielaard  <mark@klomp.org>
+
+	* patches/openjdk/6928623-verbose-langtools.patch: New patch.
+	* Makefile.am (ICEDTEA_PATCHES): Add new patch.
+
+2010-02-26  Pavel Tisnovsky <ptisnovs@redhat.com>
+
+	* removed two unnecessary timezone patches
+
+2010-02-26  Xerxes RĂ„nby  <xerxes@zafena.se>
+
+	* ports/hotspot/src/share/vm/shark/sharkCompiler.cpp
+	(SharkCompiler::generate_native_code): Undefine debug code for
+	NDEBUG builds
+
 2010-02-25 Andrew John Hughes  <ahughes@redhat.com>
 
 	* patches/hotspot/hs16/icedtea-params-cast-size_t.patch,
--- a/Makefile.am	Thu Feb 25 18:50:04 2010 +0000
+++ b/Makefile.am	Tue Mar 02 14:32:15 2010 +0000
@@ -61,7 +61,6 @@
 LANGTOOLS = openjdk/langtools/src/share/classes
 JAXP = openjdk/jaxp/src/share/classes
 CORBA = openjdk/corba/src/share/classes
-JAXWS = openjdk/jaxws/src/share/classes
 
 # FIXME (netx): NetX source directories go here
 
@@ -306,6 +305,7 @@
 	patches/icedtea-explicit-target-arch.patch \
 	patches/icedtea-gcc-stack-markings.patch \
 	patches/openjdk/6879689-hotspot_warning_fix.patch \
+	patches/openjdk/6928623-verbose-langtools.patch \
 	patches/icedtea-no-precompiled.patch \
 	patches/icedtea-linux-separate-debuginfo.patch \
 	patches/icedtea-parisc.patch \
@@ -371,6 +371,11 @@
 	patches/ecj/icedtea-jaxp-dependency.patch \
 	patches/ecj/bootver.patch
 
+if DTDTYPE_QNAME
+ICEDTEA_ECJ_PATCHES += \
+	patches/ecj/icedtea-jaxws-getdtdtype.patch
+endif
+
 # OpenJDK build environment.
 if ZERO_BUILD
   ICEDTEA_ZERO_BUILD = true
@@ -438,7 +443,8 @@
 	DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \
 	DEBUG_CLASSFILES="true" \
 	DEBUG_BINARIES="true" \
-	ALT_DROPS_DIR="$(abs_top_builddir)/drops"
+	ALT_DROPS_DIR="$(abs_top_builddir)/drops" \
+	VERBOSE="$(VERBOSE)"
 
 if WITH_CACAO
 ICEDTEA_ENV += \
@@ -532,7 +538,8 @@
 	DEBUG_BINARIES="true" \
 	DISABLE_NIMBUS="true" \
 	NO_DOCS="true" \
-	ALT_DROPS_DIR="$(abs_top_builddir)/drops"
+	ALT_DROPS_DIR="$(abs_top_builddir)/drops" \
+	VERBOSE="$(VERBOSE)"
 
 if WITH_CACAO
 ICEDTEA_ENV_ECJ += \
@@ -880,7 +887,14 @@
 endif
 
 #FIXME (meta): Split into multiple targets
-stamps/extract.stamp: stamps/download.stamp
+stamps/extract.stamp: stamps/extract-openjdk.stamp
+	mkdir -p stamps
+	touch $@
+
+clean-extract: 
+	rm -f stamps/extract.stamp
+
+stamps/extract-openjdk.stamp: stamps/download.stamp
 if OPENJDK_SRC_DIR_FOUND
 	cp -a $(OPENJDK_SRC_DIR) openjdk
 else
@@ -935,10 +949,7 @@
 	    -o -type d -exec chmod 750 '{}' ';'; \
 	fi
 	mkdir -p stamps
-	touch stamps/extract.stamp
-
-clean-extract:
-	rm -f stamps/extract.stamp
+	touch stamps/extract-openjdk.stamp
 
 stamps/replace-hotspot.stamp: stamps/extract.stamp
 if WITH_ALT_HSBUILD
@@ -1514,19 +1525,17 @@
 	  -C openjdk clobber
 	rm -f stamps/icedtea.stamp stamps/icedtea-debug.stamp
 
-icedtea-against-icedtea: \
-	stamps/bootstrap-directory-symlink.stamp \
-	stamps/icedtea.stamp \
-	stamps/add-cacao.stamp \
-	stamps/add-zero.stamp
+stamps/icedtea-against-icedtea.stamp: stamps/bootstrap-directory-symlink.stamp \
+ stamps/icedtea.stamp stamps/add-cacao.stamp stamps/add-zero.stamp
+	mkdir -p stamps
+	touch stamps/icedtea-against-icedtea.stamp
 
 #FIXME (clean): Missing clean-icedtea-against-icedtea
 
-icedtea-debug-against-icedtea: \
-	stamps/bootstrap-directory-symlink.stamp \
-	stamps/icedtea-debug.stamp \
-	stamps/add-cacao-debug.stamp \
-	stamps/add-zero-debug.stamp
+stamps/icedtea-debug-against-icedtea.stamp: stamps/bootstrap-directory-symlink.stamp \
+ stamps/icedtea-debug.stamp stamps/add-cacao-debug.stamp stamps/add-zero-debug.stamp
+	mkdir -p stamps
+	touch stamps/icedtea-debug-against-icedtea.stamp
 
 #FIXME (clean): Missing clean-icedtea-debug-against-icedtea
 
@@ -1646,7 +1655,7 @@
 
 stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET) $(ICEDTEANPPLUGIN_TARGET)
 	mkdir -p stamps
-	touch stamps/icedtea-plugin.stamp
+	touch stamps/plugin.stamp
 
 clean-plugin: $(ICEDTEAPLUGIN_CLEAN) $(ICEDTEANPPLUGIN_CLEAN)
 	rm -f stamps/plugin.stamp
@@ -1843,7 +1852,7 @@
 
 # CACAO
 
-stamps/cacao.stamp: $(OPENJDK_TREE) stamps/rt-class-files.stamp
+stamps/cacao.stamp: $(OPENJDK_TREE) stamps/rt.stamp
 if BUILD_CACAO
 if !USE_SYSTEM_CACAO
 	cd cacao/cacao && \
@@ -1854,7 +1863,7 @@
 	  --prefix=$(abs_top_builddir)/cacao/install \
 	  --with-java-runtime-library=openjdk \
 	  --with-java-runtime-library-prefix=$(abs_top_builddir)/openjdk \
-	  --with-java-runtime-library-classes=$(abs_top_builddir)/lib/rt \
+	  --with-java-runtime-library-classes=$(ICEDTEA_RT) \
 	  --enable-jre-layout $(CACAO_CONFIGURE_ARGS); \
 	$(ARCH_PREFIX) $(MAKE) install
 	ln -s server $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/client
@@ -2018,7 +2027,7 @@
 
 # jtreg
 
-stamps/jtreg.stamp: stamps/icedtea.stamp stamps/add-zero.stamp stamps/add-cacao.stamp
+stamps/jtreg.stamp: stamps/icedtea-against-icedtea.stamp
 	rm -rf test/jtreg/classes
 	mkdir -p test/jtreg/classes
 	$(ICEDTEA_BOOT_DIR)/bin/javac -g -d test/jtreg/classes -source 1.5 \
@@ -2149,7 +2158,7 @@
 	touch stamps/rt.stamp
 
 # tools.jar
-bootstrap/jdk1.7.0/jre/lib/tools.jar: 
+stamps/tools.stamp:
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
 	ln -sf $(ICEDTEA_RT) $(abs_top_builddir)/bootstrap/jdk1.7.0/jre/lib/tools.jar
 	if test -d bootstrap/ecj ; \
@@ -2158,15 +2167,18 @@
 	  ln -sf $(abs_top_builddir)/bootstrap/jdk1.7.0/jre/lib/tools.jar \
 	    $(abs_top_builddir)/bootstrap/ecj/lib/tools.jar; \
 	fi
+	mkdir -p stamps
+	touch stamps/tools.stamp
 
 clean-tools-jar: 
 	rm -f bootstrap/jdk1.7.0/jre/lib/tools.jar
 	if test -d bootstrap/ecj/lib ; then \
 	  rm -f $(abs_top_builddir)/bootstrap/ecj/lib/tools.jar; \
 	fi
+	rm -f stamps/tools.stamp
 
 # rt-closed.jar
-stamps/plugs.stamp: stamps/rt.stamp bootstrap/jdk1.7.0/jre/lib/tools.jar
+stamps/plugs.stamp: stamps/rt.stamp stamps/tools.stamp
 	$(ICEDTEA_BOOT_DIR)/bin/jar cf $(ICEDTEA_PLUGS) \
 	  -C lib/rt com/sun/jmx/snmp $(LIVECONNECT_DIR) \
 	  -C lib/rt net -C lib/rt javax/jnlp ;
@@ -2211,11 +2223,15 @@
 
 hotspot-ports: stamps/ports.stamp
 
-icedtea: stamps/icedtea.stamp stamps/add-cacao.stamp stamps/add-zero.stamp
+icedtea: stamps/icedtea.stamp
+
+icedtea-against-icedtea: stamps/icedtea-against-icedtea.stamp
 
 icedtea-against-ecj: stamps/icedtea-against-ecj.stamp
 
-icedtea-debug: stamps/icedtea-debug.stamp stamps/add-cacao-debug.stamp stamps/add-zero-debug.stamp
+icedtea-debug: stamps/icedtea-debug.stamp
+
+icedtea-debug-against-icedtea: stamps/icedtea-debug-against-icedtea.stamp
 
 icedtea-ecj: stamps/icedtea-ecj.stamp
 
@@ -2249,4 +2265,6 @@
 
 rt-class-files: stamps/rt-class-files.stamp
 
+tools-jar: stamps/tools.stamp
+
 visualvm: stamps/visualvm.stamp
--- a/acinclude.m4	Thu Feb 25 18:50:04 2010 +0000
+++ b/acinclude.m4	Tue Mar 02 14:32:15 2010 +0000
@@ -1244,6 +1244,80 @@
   AC_PROVIDE([$0])dnl
 ])
 
+AC_DEFUN([IT_GETDTDTYPE_CHECK],[
+  AC_CACHE_CHECK([if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName], it_cv_dtdtype, [
+  CLASS=Test.java
+  BYTECODE=$(echo $CLASS|sed 's#\.java##')
+  mkdir tmp.$$
+  cd tmp.$$
+  cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.Characters;
+import javax.xml.stream.events.EndElement;
+import javax.xml.stream.events.StartElement;
+
+import java.lang.reflect.Method;
+
+public class Test
+    implements Attribute
+{
+    // This method will not qualify if using an
+    // old version of Classpath where it returns
+    // a QName.
+    public String getDTDType() { return "Boom"; }
+
+    // Other Attribute methods
+    public QName getName() { return null; }
+    public String getValue() { return "Bang"; }
+    public boolean isSpecified() { return false; }
+
+    // XMLEvent methods
+    public Characters asCharacters() { return null; }
+    public EndElement asEndElement() { return null; }
+    public StartElement asStartElement() { return null; }
+    public int getEventType() { return 42; }
+    public Location getLocation() { return null; }
+    public QName getSchemaType() { return null; }
+    public boolean isAttribute() { return true; }
+    public boolean isCharacters() { return false; }
+    public boolean isEndDocument() { return false; }
+    public boolean isEndElement() { return false; }
+    public boolean isEntityReference() { return false; }
+    public boolean isNamespace() { return false; }
+    public boolean isProcessingInstruction() { return false; }
+    public boolean isStartDocument() { return false; }
+    public boolean isStartElement() { return false; }
+    public void writeAsEncodedUnicode(java.io.Writer w) {}
+
+    public static void main(String[] args)
+    {
+        for (Method m : Attribute.class.getMethods())
+            if (m.getName().equals("getDTDType"))
+                if (m.getReturnType().equals(QName.class))
+                    System.exit(1);
+    }
+}]
+EOF
+  if $JAVAC -cp . $JAVACFLAGS -source 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+    if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+      it_cv_dtdtype=no;
+    else
+      it_cv_dtdtype=yes;
+    fi
+  else
+    it_cv_dtdtype=yes;
+  fi
+  rm -f $CLASS *.class
+  cd ..
+  rmdir tmp.$$
+  ])
+AM_CONDITIONAL([DTDTYPE_QNAME], test x"${it_cv_dtdtype}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
 # Provides the option --with-parallel-jobs
 #  * --with-parallel-jobs; use jobs=processors + 1
 #  * --with-parallel-jobs=x; use jobs=x
--- a/configure.ac	Thu Feb 25 18:50:04 2010 +0000
+++ b/configure.ac	Tue Mar 02 14:32:15 2010 +0000
@@ -204,6 +204,7 @@
 AC_CHECK_WITH_HG_REVISION
 AC_CHECK_WITH_TZDATA_DIR
 IT_CHECK_FOR_CLASS([SUN_AWT_TOOLKIT], [sun.awt.SunToolkit])
+IT_GETDTDTYPE_CHECK
 IT_CHECK_XULRUNNER_VERSION
 
 if test "x${enable_visualvm}" = "xyes"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch	Tue Mar 02 14:32:15 2010 +0000
@@ -0,0 +1,43 @@
+diff -Nru openjdk-ecj.orig/jaxws/build.properties openjdk-ecj/jaxws/build.properties
+--- openjdk-ecj.orig/jaxws/build.properties	2010-03-01 15:13:38.000000000 +0000
++++ openjdk-ecj/jaxws/build.properties	2010-03-01 15:14:30.000000000 +0000
+@@ -81,7 +81,7 @@
+ patches.dir=patches
+ 
+ # Patches to apply
+-jaxws_src.patch.list=xjc.patch
++jaxws_src.patch.list=xjc.patch getdtdtype.patch
+ 
+ # Sanity information
+ sanity.info= Sanity Settings:${line.separator}\
+diff -Nru openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch
+--- openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch	1970-01-01 01:00:00.000000000 +0100
++++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch	2010-03-01 15:15:10.000000000 +0000
+@@ -0,0 +1,27 @@
++--- src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java	2009-11-17 16:37:06.000000000 +0000
+++++ src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java	2009-11-17 16:38:00.000000000 +0000
++@@ -276,7 +276,7 @@
++                 qName = localName;
++             else
++                 qName = prefix + ':' + localName;
++-            String type = staxAttr.getDTDType();
+++            String type = staxAttr.getDTDType().toString();
++             String value = staxAttr.getValue();
++ 
++             attrs.addAttribute(uri, localName, qName, type, value);
++--- src/com/sun/xml/internal/fastinfoset/stax/events/AttributeBase.java.old	2009-11-17 19:46:11.000000000 +0000
+++++ src/com/sun/xml/internal/fastinfoset/stax/events/AttributeBase.java	2009-11-17 19:46:35.000000000 +0000
++@@ -108,11 +108,10 @@
++    * the String "CDATA"
++    * @return the type as a String, default is "CDATA"
++    */
++-    public String getDTDType() {
++-        return _attributeType;
+++    public QName getDTDType() {
+++        return new QName(_attributeType);
++     }
++ 
++-
++   /**
++    * A flag indicating whether this attribute was actually
++    * specified in the start-tag of its element, or was defaulted from the schema.
--- a/patches/ecj/icedtea.patch	Thu Feb 25 18:50:04 2010 +0000
+++ b/patches/ecj/icedtea.patch	Tue Mar 02 14:32:15 2010 +0000
@@ -902,7 +902,7 @@
                         includeAntRuntime="no"
                         source="@{javac.source}"
                         target="@{javac.target}">
-+		    <compilerarg line="-bootclasspath @{classes.dir}:../../generated:${boot.java.home}/lib/tools.jar:${boot.java.home}/jre/lib/rt.jar"/>
++		    <compilerarg line="-bootclasspath @{classes.dir}:${boot.java.home}/jre/lib/rt.jar"/>
                      <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
                      <compilerarg line="${javac.version.opt}"/>
                      <compilerarg line="-Xlint"/>
@@ -910,7 +910,7 @@
                         target="@{javac.target}"
                         debug="${javac.debug}"
                         debuglevel="${javac.debuglevel}">
-+		    <compilerarg line="-bootclasspath @{classes.dir}:../../generated:${boot.java.home}/lib/tools.jar:${boot.java.home}/jre/lib/rt.jar"/>
++		    <compilerarg line="-bootclasspath @{classes.dir}:${boot.java.home}/jre/lib/rt.jar"/>
                      <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
                      <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
                      <compilerarg line="${javac.no.jdk.warnings}"/>
--- a/patches/icedtea-timezone-default-permission.patch	Thu Feb 25 18:50:04 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
---- openjdk7/jdk/src/share/classes/java/util/TimeZone.java	2009-08-04 18:54:13.026104895 +0200
-+++ openjdk/jdk/src/share/classes/java/util/TimeZone.java	2009-08-04 18:53:09.035985858 +0200
-@@ -602,11 +602,7 @@
-                 }
-             });
- 
--        if (hasPermission()) {
--            defaultTimeZone = tz;
--        } else {
--            defaultZoneTL.set(tz);
--        }
-+        defaultTimeZone = tz;
-         return tz;
-     }
- 
-@@ -637,6 +633,7 @@
-         if (hasPermission()) {
-             synchronized (TimeZone.class) {
-                 defaultTimeZone = zone;
-+                defaultZoneTL.set(null);
-             }
-         } else {
-             defaultZoneTL.set(zone);
--- a/patches/icedtea-timezone.patch	Thu Feb 25 18:50:04 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
---- openjdk/jdk/src/solaris/native/java/util/TimeZone_md_old.c	2008-11-25 04:06:19.000000000 -0500
-+++ openjdk/jdk/src/solaris/native/java/util/TimeZone_md.c	2009-03-24 12:08:35.000000000 -0400
-@@ -201,115 +201,105 @@
-     size_t size;
- 
-     /*
--     * First, try the ZONE entry in /etc/sysconfig/clock. However, the
--     * ZONE entry is not set up after initial Red Hat Linux
--     * installation. In case that /etc/localtime is set up without
--     * using timeconfig, there might be inconsistency between
--     * /etc/localtime and the ZONE entry. The inconsistency between
--     * timeconfig and linuxconf is reported as a bug in the Red Hat
--     * web page as of May 1, 2000.
-+     * First, try /etc/localtime to find the zone ID.
-      */
--    if ((fp = fopen(sysconfig_clock_file, "r")) != NULL) {
--        char line[256];
--
--        while (fgets(line, sizeof(line), fp) != NULL) {
--            char *p = line;
--            char *s;
-+    if (lstat(defailt_zoneinfo_file, &statbuf) == -1) {
-+    
-+    	/* If /etc/localtime doesn't exist, try /etc/sysconfig/clock */
-+    	if ((fp = fopen(sysconfig_clock_file, "r")) != NULL) {
-+     	    char line[256];
-+
-+            while (fgets(line, sizeof(line), fp) != NULL) {
-+                char *p = line;
-+                char *s;
- 
--            SKIP_SPACE(p);
--            if (*p != 'Z') {
--                continue;
--            }
--            if (strncmp(p, "ZONE=\"", 6) == 0) {
--                p += 6;
--            } else {
--                /*
--                 * In case we need to parse it token by token.
--                 */
--                if (strncmp(p, "ZONE", 4) != 0) {
-+                SKIP_SPACE(p);
-+                if (*p != 'Z') {
-                     continue;
-                 }
--                p += 4;
--                SKIP_SPACE(p);
--                if (*p++ != '=') {
--                    break;
-+                if (strncmp(p, "ZONE=\"", 6) == 0) {
-+                    p += 6;
-+                } else {
-+                    /*
-+                     * In case we need to parse it token by token.
-+                     */
-+                    if (strncmp(p, "ZONE", 4) != 0) {
-+                        continue;
-+                    }
-+                    p += 4;
-+                    SKIP_SPACE(p);
-+                    if (*p++ != '=') {
-+                        break;
-+                    }
-+                    SKIP_SPACE(p);
-+                    if (*p++ != '"') {
-+                        break;
-+                    }
-                 }
--                SKIP_SPACE(p);
--                if (*p++ != '"') {
-+                for (s = p; *s && *s != '"'; s++)
-+                    ;
-+                if (*s != '"') {
-+                    /* this ZONE entry is broken. */
-                     break;
-                 }
--            }
--            for (s = p; *s && *s != '"'; s++)
--                ;
--            if (*s != '"') {
--                /* this ZONE entry is broken. */
-+                *s = '\0';
-+                tz = strdup(p);
-                 break;
-             }
--            *s = '\0';
--            tz = strdup(p);
--            break;
--        }
--        (void) fclose(fp);
--        if (tz != NULL) {
-+            (void) fclose(fp);
-             return tz;
-         }
--    }
-+    } else {
- 
--    /*
--     * Next, try /etc/localtime to find the zone ID.
--     */
--    if (lstat(defailt_zoneinfo_file, &statbuf) == -1) {
--        return NULL;
--    }
-+        /*
-+         * If it's a symlink, get the link name and its zone ID part. (The
-+         * older versions of timeconfig created a symlink as described in
-+         * the Red Hat man page. It was changed in 1999 to create a copy
-+         * of a zoneinfo file. It's no longer possible to get the zone ID
-+         * from /etc/localtime.)
-+         */
-+         if (S_ISLNK(statbuf.st_mode)) {
-+             char linkbuf[PATH_MAX+1];
-+             int len;
-+
-+             if ((len = readlink(defailt_zoneinfo_file, linkbuf, sizeof(linkbuf)-1)) == -1) {
-+                jio_fprintf(stderr, (const char *) "can't get a symlink of %s\n",
-+                            defailt_zoneinfo_file);
-+                return NULL;
-+            }
-+            linkbuf[len] = '\0';
-+            tz = getZoneName(linkbuf);
-+            if (tz != NULL) {
-+                tz = strdup(tz);
-+            }
-+            return tz;
-+        }
- 
--    /*
--     * If it's a symlink, get the link name and its zone ID part. (The
--     * older versions of timeconfig created a symlink as described in
--     * the Red Hat man page. It was changed in 1999 to create a copy
--     * of a zoneinfo file. It's no longer possible to get the zone ID
--     * from /etc/localtime.)
--     */
--    if (S_ISLNK(statbuf.st_mode)) {
--        char linkbuf[PATH_MAX+1];
--        int len;
--
--        if ((len = readlink(defailt_zoneinfo_file, linkbuf, sizeof(linkbuf)-1)) == -1) {
--            jio_fprintf(stderr, (const char *) "can't get a symlink of %s\n",
--                        defailt_zoneinfo_file);
-+        /*
-+         * If it's a regular file, we need to find out the same zoneinfo file
-+         * that has been copied as /etc/localtime.
-+         */
-+         size = (size_t) statbuf.st_size;
-+         buf = (char *) malloc(size);
-+        if (buf == NULL) {
-             return NULL;
-         }
--        linkbuf[len] = '\0';
--        tz = getZoneName(linkbuf);
--        if (tz != NULL) {
--            tz = strdup(tz);
-+        if ((fd = open(defailt_zoneinfo_file, O_RDONLY)) == -1) {
-+            free((void *) buf);
-+            return NULL;
-         }
--        return tz;
--    }
- 
--    /*
--     * If it's a regular file, we need to find out the same zoneinfo file
--     * that has been copied as /etc/localtime.
--     */
--    size = (size_t) statbuf.st_size;
--    buf = (char *) malloc(size);
--    if (buf == NULL) {
--        return NULL;
--    }
--    if ((fd = open(defailt_zoneinfo_file, O_RDONLY)) == -1) {
--        free((void *) buf);
--        return NULL;
--    }
--
--    if (read(fd, buf, size) != (ssize_t) size) {
-+        if (read(fd, buf, size) != (ssize_t) size) {
-+            (void) close(fd);
-+            free((void *) buf);
-+            return NULL;
-+        }
-         (void) close(fd);
-+
-+        tz = findZoneinfoFile(buf, size, zoneinfo_dir);
-         free((void *) buf);
--        return NULL;
-+        return tz;
-     }
--    (void) close(fd);
--
--    tz = findZoneinfoFile(buf, size, zoneinfo_dir);
--    free((void *) buf);
--    return tz;
- }
- #else
- #ifdef __solaris__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6928623-verbose-langtools.patch	Tue Mar 02 14:32:15 2010 +0000
@@ -0,0 +1,22 @@
+
+# HG changeset patch
+# User andrew
+# Date 1266874633 0
+# Node ID f25efdb55c998759ce2c1d8711011619455beaba
+# Parent a3be81d385ee94edb4bffed3436fc548d68423b4
+6928623: Behaviour of VERBOSE=true on langtools build
+Summary: VERBOSE=true causes -diagnostics to be passed to ant rather than -debug
+Reviewed-by: jjg
+
+--- openjdk/langtools/make/Makefile	Thu Feb 18 15:41:36 2010 -0800
++++ openjdk/langtools/make/Makefile	Mon Feb 22 21:37:13 2010 +0000
+@@ -70,7 +70,7 @@ endif
+ endif
+ 
+ ifdef VERBOSE
+-  ANT_OPTIONS += -verbose -diagnostics
++  ANT_OPTIONS += -verbose -debug
+ endif
+ 
+ ifdef JDK_VERSION
+
--- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp	Thu Feb 25 18:50:04 2010 +0000
+++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp	Tue Mar 02 14:32:15 2010 +0000
@@ -250,6 +250,7 @@
 
     if (SharkPrintAsmOf != NULL) {
 #if SHARK_LLVM_VERSION >= 27
+#ifndef NDEBUG
       if (!fnmatch(SharkPrintAsmOf, name, 0)) {
         llvm::SetCurrentDebugType(X86_ONLY("x86-emitter") NOT_X86("jit"));
         llvm::DebugFlag = true;
@@ -258,6 +259,7 @@
         llvm::SetCurrentDebugType("");
         llvm::DebugFlag = false;
       }
+#endif
 #else
       // NB you need to patch LLVM with http://tinyurl.com/yf3baln for this
       std::vector<const char*> args;