/hg/icedtea7: PR1404: Failure to bootstrap with ecj 4.2
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Fri Apr 19 11:37:31 PDT 2013
changeset 3757116b4861 in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=3757116b4861
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Apr 19 19:37:22 2013 +0100
PR1404: Failure to bootstrap with ecj 4.2
2013-04-18 Andrew John Hughes <gnu.andrew at member.fsf.org>
PR1404: Failure to bootstrap with ecj 4.2
* Makefile.am:
(ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext,
SSLEngine and SslRMIServerSocketFactory if
methods are missing.
(IT_LANGUAGE_SOURCE_VERSION): Set to 7 if supported.
(IT_CLASS_TARGET_VERSION): Likewise.
* configure.ac: Mention bugs in comments.
Add tests for getDefaultSSLParameters/setSSLParameters
and new 7 SslRMIServerSocketFactory.
* NEWS: Updated.
2013-01-11 Andrew John Hughes <gnu.andrew at redhat.com>
* acinclude.m4:
(IT_CHECK_FOR_CLASS): Write class toString() output
to System.err rather than throwing it away. It then
appears in config.log and may be useful in debugging.
(IT_CHECK_FOR_METHOD): Fix documentation and add
System.err output as for IT_CHECK_FOR_CLASS.
(IT_CHECK_FOR_CONSTRUCTOR): New macro to test for
the presence of a specific constructor. Works
with both private & protected constructors by
using a subclass for the compile test.
diffstat:
ChangeLog | 26 ++++++++++++++++++++
Makefile.am | 22 +++++++++++++++++
acinclude.m4 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
configure.ac | 25 +++++++++++++++++++
4 files changed, 144 insertions(+), 6 deletions(-)
diffs (223 lines):
diff -r 397dd0f8e62a -r 3757116b4861 ChangeLog
--- a/ChangeLog Thu Apr 04 22:52:56 2013 +0100
+++ b/ChangeLog Fri Apr 19 19:37:22 2013 +0100
@@ -1,3 +1,29 @@
+2013-04-18 Andrew John Hughes <gnu.andrew at member.fsf.org>
+
+ PR1404: Failure to bootstrap with ecj 4.2
+ * Makefile.am:
+ (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext,
+ SSLEngine and SslRMIServerSocketFactory if
+ methods are missing.
+ (IT_LANGUAGE_SOURCE_VERSION): Set to 7 if supported.
+ (IT_CLASS_TARGET_VERSION): Likewise.
+ * configure.ac: Mention bugs in comments.
+ Add tests for getDefaultSSLParameters/setSSLParameters
+ and new 7 SslRMIServerSocketFactory.
+
+2013-01-11 Andrew John Hughes <gnu.andrew at redhat.com>
+
+ * acinclude.m4:
+ (IT_CHECK_FOR_CLASS): Write class toString() output
+ to System.err rather than throwing it away. It then
+ appears in config.log and may be useful in debugging.
+ (IT_CHECK_FOR_METHOD): Fix documentation and add
+ System.err output as for IT_CHECK_FOR_CLASS.
+ (IT_CHECK_FOR_CONSTRUCTOR): New macro to test for
+ the presence of a specific constructor. Works
+ with both private & protected constructors by
+ using a subclass for the compile test.
+
2013-04-04 Andrew John Hughes <gnu_andrew at member.fsf.org>
* patches/zero_libffi.patch:
diff -r 397dd0f8e62a -r 3757116b4861 Makefile.am
--- a/Makefile.am Thu Apr 04 22:52:56 2013 +0100
+++ b/Makefile.am Fri Apr 19 19:37:22 2013 +0100
@@ -117,10 +117,32 @@
$(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java
endif
+#PR56553 - SSLParameters support missing
+if LACKS_JAVAX_NET_SSL_SSLCONTEXT_GETDEFAULTSSLPARAMETERS
+ICEDTEA_BOOTSTRAP_CLASSES += \
+ $(SHARE)/javax/net/ssl/SSLContext.java
+endif
+if LACKS_JAVAX_NET_SSL_SSLENGINE_SETSSLPARAMETERS
+ICEDTEA_BOOTSTRAP_CLASSES += \
+ $(SHARE)/javax/net/ssl/SSLEngine.java
+endif
+
+#PR57008 - Add missing SslRMIServerSocketFactory constructor from 7
+if LACKS_JAVAX_RMI_SSL_SSLRMISERVERSOCKETFACTORY_7
+ICEDTEA_BOOTSTRAP_CLASSES += \
+ $(SHARE)/javax/rmi/ssl/SslRMIServerSocketFactory.java
+endif
+
# Settings for javac
+if NO_BYTECODE7
IT_LANGUAGE_SOURCE_VERSION=6
IT_CLASS_TARGET_VERSION=6
+else
+IT_LANGUAGE_SOURCE_VERSION=7
+IT_CLASS_TARGET_VERSION=7
+endif
+
IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
diff -r 397dd0f8e62a -r 3757116b4861 acinclude.m4
--- a/acinclude.m4 Thu Apr 04 22:52:56 2013 +0100
+++ b/acinclude.m4 Fri Apr 19 19:37:22 2013 +0100
@@ -1506,7 +1506,7 @@
{
public static void main(String[] args)
{
- $2.class.toString();
+ System.err.println("Class found: " + $2.class);
}
}
]
@@ -2298,11 +2298,12 @@
])
dnl Generic macro to check for a Java method
-dnl Takes four arguments: the name of the macro,
-dnl the name of the class, the method signature
-dnl and an example call to the method. The macro name
-dnl is usually the name of the class with '.'
-dnl replaced by '_' and all letters capitalised.
+dnl Takes five arguments: the name of the macro,
+dnl the name of the method, the name of the class,
+dnl the method signature and an example call to the
+dnl method. The macro name is usually the name of
+dnl the class with '.' replaced by '_' and all letters
+dnl capitalised.
dnl e.g. 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"))
AC_DEFUN([IT_CHECK_FOR_METHOD],[
AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
@@ -2323,6 +2324,7 @@
try
{
Method m = cl.getDeclaredMethod($4);
+ System.err.println("Method found: " + m);
}
catch (NoSuchMethodException e)
{
@@ -2398,3 +2400,66 @@
AC_MSG_RESULT([$enable_jar_compression])
AM_CONDITIONAL([ENABLE_JAR_COMPRESSION], test x"${enable_jar_compression}" = "xyes")
])
+
+dnl Generic macro to check for a Java constructor
+dnl Takes four arguments: the name of the macro,
+dnl the name of the class, the method signature
+dnl and an example call to the method. The macro name
+dnl is usually the name of the class with '.'
+dnl replaced by '_' and all letters capitalised.
+dnl e.g. IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true])
+AC_DEFUN([IT_CHECK_FOR_CONSTRUCTOR],[
+AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
+AC_CACHE_CHECK([if $2($3) is missing], it_cv_$1, [
+CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import java.lang.reflect.Constructor;
+
+public class Test
+{
+ public static void main(String[] args)
+ {
+ Class<?> cl = $2.class;
+ try
+ {
+ Constructor<?> cons = cl.getDeclaredConstructor($3);
+ System.err.println("Constructor found: " + cons);
+ }
+ catch (NoSuchMethodException e)
+ {
+ System.exit(-1);
+ }
+ }
+
+ private class TestCons extends $2
+ {
+ TestCons()
+ {
+ super($4);
+ }
+ }
+
+}
+
+]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_$1=no;
+ else
+ it_cv_$1=yes;
+ fi
+else
+ it_cv_$1=yes;
+fi
+])
+rm -f $CLASS *.class
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
diff -r 397dd0f8e62a -r 3757116b4861 configure.ac
--- a/configure.ac Thu Apr 04 22:52:56 2013 +0100
+++ b/configure.ac Fri Apr 19 19:37:22 2013 +0100
@@ -109,20 +109,45 @@
IT_PR40630_CHECK
IT_CHECK_FOR_CLASS([JAVAX_ANNOTATION_RESOURCE], [javax.annotation.Resource])
IT_GETDTDTYPE_CHECK
+dnl PR48033 - Missing javax.management.remote.JMXServiceURL
IT_CHECK_FOR_CLASS([JAVAX_MANAGEMENT_REMOTE_JMXSERVICEURL], [javax.management.remote.JMXServiceURL])
+dnl PR48034 - javax.management.modelmbean.ModelMBeanInfo
IT_CHECK_FOR_CLASS([JAVAX_MANAGEMENT_MODELMBEAN_MODELMBEANINFO], [javax.management.modelmbean.ModelMBeanInfo])
+dnl PR43148 - javac fails due to missing java.util.regex.Matcher.quoteReplacement
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")]
)
+dnl PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure
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)]
)
+dnl PR56553 - SSLParameters support missing
+IT_CHECK_FOR_METHOD([JAVAX_NET_SSL_SSLCONTEXT_GETDEFAULTSSLPARAMETERS],
+ [javax.net.ssl.SSLContext.getDefaultSSLParameters],
+ [javax.net.ssl.SSLContext],
+ ["getDefaultSSLParameters"],
+ [try { javax.net.ssl.SSLContext.getDefault().getDefaultSSLParameters(); } catch (Exception e) {}]
+)
+IT_CHECK_FOR_METHOD([JAVAX_NET_SSL_SSLENGINE_SETSSLPARAMETERS],
+ [javax.net.ssl.SSLEngine.setSSLParameters],
+ [javax.net.ssl.SSLEngine],
+ ["setSSLParameters", javax.net.ssl.SSLParameters.class],
+ [try { javax.net.ssl.SSLContext.getDefault().createSSLEngine().setSSLParameters(new javax.net.ssl.SSLParameters()); }
+ catch (Exception e) {}]
+)
+dnl PR57008 - Add missing SslRMIServerSocketFactory constructor from 7
+IT_CHECK_FOR_CONSTRUCTOR([JAVAX_RMI_SSL_SSLRMISERVERSOCKETFACTORY_7],
+ [javax.rmi.ssl.SslRMIServerSocketFactory],
+ [javax.net.ssl.SSLContext.class,String@<:@@:>@.class,String@<:@@:>@.class,Boolean.TYPE],
+ [null,null,null,true]
+)
+
IT_CHECK_ENABLE_WARNINGS
IT_DIAMOND_CHECK
IT_BYTECODE7_CHECK
More information about the distro-pkg-dev
mailing list