changeset 2581:60bd733bd20c

PR1119: Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields) are actually missing from the boot JDK 2012-08-16 Andrew John Hughes <gnu_andrew@member.fsf.org> * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Only add BasicDirectoryModel if addPropertyListener is missing. Dispense with LACKS_SUN_AWT_TOOLKIT conditional. (rt-source-files.txt): Remove dead ICEDTEA_BOOTSTRAP_DIRS which has not been set for some time. (rt-class-files.stamp): Replace LACKS_SUN_AWT_TOOLKIT conditional with test of contents of ICEDTEA_BOOTSTRAP_CLASSES. Note; need to use grep as field contains whitespace. (rt.stamp): Likewise. * configure.ac: Add call to IT_CHECK_FOR_METHOD to look for javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener. Improve readability using line breaks. * NEWS: Updated.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Thu, 16 Aug 2012 01:07:29 +0100
parents 32dfd32d5674
children 000df05fbd54
files ChangeLog Makefile.am NEWS configure.ac
diffstat 4 files changed, 58 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Aug 15 13:20:11 2012 +0200
+++ b/ChangeLog	Thu Aug 16 01:07:29 2012 +0100
@@ -1,3 +1,22 @@
+2012-08-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	(ICEDTEA_BOOTSTRAP_CLASSES): Only add
+	BasicDirectoryModel if addPropertyListener
+	is missing.  Dispense with LACKS_SUN_AWT_TOOLKIT
+	conditional.
+	(rt-source-files.txt): Remove dead ICEDTEA_BOOTSTRAP_DIRS
+	which has not been set for some time.
+	(rt-class-files.stamp): Replace LACKS_SUN_AWT_TOOLKIT
+	conditional with test of contents of ICEDTEA_BOOTSTRAP_CLASSES.
+	Note; need to use grep as field contains whitespace.
+	(rt.stamp): Likewise.
+	* configure.ac:
+	Add call to IT_CHECK_FOR_METHOD to look for
+	javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener.
+	Improve readability using line breaks.
+	* NEWS: Updated.
+
 2012-08-15  Xerxes RĂ„nby  <xerxes@zafena.se>
 	    Robert Lougher  <rob@jamvm.org.uk>
 
--- a/Makefile.am	Wed Aug 15 13:20:11 2012 +0200
+++ b/Makefile.am	Thu Aug 16 01:07:29 2012 +0100
@@ -101,12 +101,6 @@
 # Sources used from OpenJDK.
 ICEDTEA_BOOTSTRAP_CLASSES =
 
-if LACKS_SUN_AWT_TOOLKIT
-#PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure 
-ICEDTEA_BOOTSTRAP_CLASSES += \
-	$(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java
-endif
-
 #PR43148 - javac fails due to missing java.util.regex.Matcher.quoteReplacement
 if LACKS_JAVA_UTIL_REGEX_MATCHER_QUOTEREPLACEMENT
 ICEDTEA_BOOTSTRAP_CLASSES += \
@@ -125,6 +119,12 @@
 	$(SHARE)/javax/management/modelmbean/ModelMBeanInfo.java
 endif
 
+#PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure 
+if LACKS_JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER
+ICEDTEA_BOOTSTRAP_CLASSES += \
+	$(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java
+endif
+
 # Settings for javac
 
 IT_LANGUAGE_SOURCE_VERSION=6
@@ -2368,39 +2368,36 @@
 
 rt-source-files.txt: $(OPENJDK_BOOT_TREE)
 	rm -f $@
-	for dir in $(ICEDTEA_BOOTSTRAP_DIRS) ; \
-	do \
-	$(FIND) $(abs_top_builddir)/$$dir -name '*.java' >> $@; \
-	done
 	for files in $(ICEDTEA_BOOTSTRAP_CLASSES) ; \
 	do \
 	  echo $$files >> $@ ; \
 	done
+	touch $@
 
 stamps/rt-class-files.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) rt-source-files.txt
 	mkdir -p lib/rt
-if LACKS_SUN_AWT_TOOLKIT
-	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d lib/rt \
-	  -classpath $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \
-          -sourcepath '$(SOURCEPATH_DIRS)' \
-          -bootclasspath \'\' @rt-source-files.txt ;
-endif
+	if echo $(ICEDTEA_BOOTSTRAP_CLASSES) | grep '\S' &> /dev/null ; then \
+	  $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d lib/rt \
+	    -classpath $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \
+            -sourcepath '$(SOURCEPATH_DIRS)' \
+            -bootclasspath \'\' @rt-source-files.txt ; \
+	fi
 	mkdir -p stamps
 	touch $@
 
 stamps/rt.stamp: stamps/rt-class-files.stamp
-if LACKS_SUN_AWT_TOOLKIT
-	(set -e ; \
-	 cd lib/rt ; \
-	 for dirs in $(ICEDTEA_BOOTSTRAP_RESOURCES) ; \
-	   do \
-	   destpath=`echo $$dirs|sed -e 's#$(LANGTOOLS)/##' -e 's#$(SHARE)/##'` ; \
-	   mkdir -p `dirname $$destpath` ; \
-	   cp -a ../../$$dirs $$destpath ; \
-	 done ; \
-	 $(ZIP) -qur $(STAGE1_BOOT_DIR)/jre/lib/rt.jar \
-	 com java javax sun );
-endif
+	if echo $(ICEDTEA_BOOTSTRAP_CLASSES) | grep '\S' &> /dev/null ; then \
+	  (set -e ; \
+	   cd lib/rt ; \
+	   for dirs in $(ICEDTEA_BOOTSTRAP_RESOURCES) ; \
+	     do \
+	     destpath=`echo $$dirs|sed -e 's#$(LANGTOOLS)/##' -e 's#$(SHARE)/##'` ; \
+	     mkdir -p `dirname $$destpath` ; \
+	     cp -a ../../$$dirs $$destpath ; \
+	   done ; \
+	   $(ZIP) -qur $(STAGE1_BOOT_DIR)/jre/lib/rt.jar \
+	     com java javax sun ); \
+	fi
 	mkdir -p stamps
 	touch $@
 
--- a/NEWS	Wed Aug 15 13:20:11 2012 +0200
+++ b/NEWS	Thu Aug 16 01:07:29 2012 +0100
@@ -16,6 +16,8 @@
   - PR902: PulseAudioClip getMicrosecondsLength() returns length in milliseconds, not microseconds
   - PR986: IcedTea7 fails to build with IcedTea6 CACAO due to low max heap size
   - PR1050: Stream objects not garbage collected
+  - PR1119: Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields)
+    are actually missing from the boot JDK
 * JamVM
   - ARMv6 armhf: Changes for Raspbian (Raspberry Pi)
   - PPC: Don't use lwsync if it isn't supported
--- a/configure.ac	Wed Aug 15 13:20:11 2012 +0200
+++ b/configure.ac	Thu Aug 16 01:07:29 2012 +0100
@@ -117,10 +117,20 @@
 IT_PR40630_CHECK
 IT_CHECK_FOR_CLASS([JAVAX_ANNOTATION_RESOURCE], [javax.annotation.Resource])
 IT_GETDTDTYPE_CHECK
-IT_CHECK_FOR_CLASS([SUN_AWT_TOOLKIT], [sun.awt.SunToolkit])
 IT_CHECK_FOR_CLASS([JAVAX_MANAGEMENT_REMOTE_JMXSERVICEURL], [javax.management.remote.JMXServiceURL])
 IT_CHECK_FOR_CLASS([JAVAX_MANAGEMENT_MODELMBEAN_MODELMBEANINFO], [javax.management.modelmbean.ModelMBeanInfo])
-IT_CHECK_FOR_METHOD([JAVA_UTIL_REGEX_MATCHER_QUOTEREPLACEMENT],[java.util.regex.Matcher.quoteReplacement],[java.util.regex.Matcher],["quoteReplacement",String.class],java.util.regex.Matcher.quoteReplacement("Blah"))
+IT_CHECK_FOR_METHOD([JAVA_UTIL_REGEX_MATCHER_QUOTEREPLACEMENT],
+  [java.util.regex.Matcher.quoteReplacement],
+  [java.util.regex.Matcher],
+  ["quoteReplacement",String.class],
+  [java.util.regex.Matcher.quoteReplacement("Blah")]
+)
+IT_CHECK_FOR_METHOD([JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER],
+  [javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener],
+  [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)]
+)
 IT_CHECK_ENABLE_WARNINGS
 IT_DIAMOND_CHECK
 IT_BYTECODE7_CHECK