Mercurial > hg > release > icedtea7-2.1
changeset 2563:40b919581506 icedtea-2.1.8
PR1404: Failure to bootstrap with ecj 4.2
2013-05-02 Andrew John Hughes <gnu.andrew@member.fsf.org>
* Makefile.am:
(ICEDTEA_BOOTSTRAP_CLASSES): Initialise to
empty so it always has a value. Change
addition of classes to += from =.
* acinclude.m4:
(IT_CHECK_FOR_METHOD): Remove call to
IT_CHECK_JAVA_AND_JAVAC_WORK to avoid backporting.
(IT_CHECK_FOR_CONSTRUCTOR): Likewise.
2013-04-18 Andrew John Hughes <gnu.andrew@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@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.
2012-08-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
* Makefile.am:
(ICEDTEA_BOOTSTRAP_CLASSES): Only add Matcher if
the quoteReplacement method is absent.
* acinclude.m4:
(IT_JAVAH): Explicitly set source & target.
(IT_LIBRARY_CHECK): Likewise.
(IT_PR40630_CHECK): Likewise.
(IT_CHECK_FOR_CLASS): Likewise.
(IT_DIAMOND_CHECK): Specify target as 7 as well.
(IT_CHECK_FOR_METHOD): New macro to check for the
existence of a Java method both at build and runtime.
* configure.ac:
Check for java.util.regex.Matcher.quoteReplacement.
author | Andrew John Hughes <gnu_andrew@member.fsf.org> |
---|---|
date | Thu, 02 May 2013 16:10:08 +0100 |
parents | 0f170ac337a6 |
children | bda6f93d4927 |
files | ChangeLog Makefile.am acinclude.m4 configure.ac |
diffstat | 4 files changed, 236 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu May 02 10:21:43 2013 +0100 +++ b/ChangeLog Thu May 02 16:10:08 2013 +0100 @@ -1,3 +1,57 @@ +2013-05-02 Andrew John Hughes <gnu.andrew@member.fsf.org> + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Initialise to + empty so it always has a value. Change + addition of classes to += from =. + * acinclude.m4: + (IT_CHECK_FOR_METHOD): Remove call to + IT_CHECK_JAVA_AND_JAVAC_WORK to avoid backporting. + (IT_CHECK_FOR_CONSTRUCTOR): Likewise. + +2013-04-18 Andrew John Hughes <gnu.andrew@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@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. + +2012-08-13 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Only add Matcher if + the quoteReplacement method is absent. + * acinclude.m4: + (IT_JAVAH): Explicitly set source & target. + (IT_LIBRARY_CHECK): Likewise. + (IT_PR40630_CHECK): Likewise. + (IT_CHECK_FOR_CLASS): Likewise. + (IT_DIAMOND_CHECK): Specify target as 7 as well. + (IT_CHECK_FOR_METHOD): New macro to check for the + existence of a Java method both at build and runtime. + * configure.ac: + Check for java.util.regex.Matcher.quoteReplacement. + 2013-05-02 Andrew John Hughes <gnu.andrew@member.fsf.org> * configure.ac: Bump to 2.1.8 proper.
--- a/Makefile.am Thu May 02 10:21:43 2013 +0100 +++ b/Makefile.am Thu May 02 16:10:08 2013 +0100 @@ -98,22 +98,50 @@ SOURCEPATH_DIRS = $(abs_top_srcdir)/generated:$(OPENJDK_SOURCEPATH_DIRS) # Sources used from OpenJDK. +ICEDTEA_BOOTSTRAP_CLASSES = + if LACKS_SUN_AWT_TOOLKIT -#PR43148 - javac fails due to missing java.util.regex.Matcher.quoteReplacement #PR48033 - Missing javax.management.remote.JMXServiceURL #PR48034 - javax.management.modelmbean.ModelMBeanInfo #PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure -ICEDTEA_BOOTSTRAP_CLASSES = \ - $(SHARE)/java/util/regex/Matcher.java \ +ICEDTEA_BOOTSTRAP_CLASSES += \ $(SHARE)/javax/management/remote/JMXServiceURL.java \ $(SHARE)/javax/management/modelmbean/ModelMBeanInfo.java \ $(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 += \ + $(SHARE)/java/util/regex/Matcher.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)
--- a/acinclude.m4 Thu May 02 10:21:43 2013 +0100 +++ b/acinclude.m4 Thu May 02 16:10:08 2013 +0100 @@ -1181,7 +1181,7 @@ public native void doStuff(); } EOF -if $JAVAC -cp . $JAVACFLAGS $SUBCLASS >&AS_MESSAGE_LOG_FD 2>&1; then +if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $SUBCLASS >&AS_MESSAGE_LOG_FD 2>&1; then if $JAVAH -classpath . $SUB >&AS_MESSAGE_LOG_FD 2>&1; then if cat $SUBHEADER | grep POTATO >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_cp39408_javah=no; @@ -1232,7 +1232,7 @@ } } EOF -if $JAVAC -cp . $JAVACFLAGS $SRC >&AS_MESSAGE_LOG_FD 2>&1; then +if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $SRC >&AS_MESSAGE_LOG_FD 2>&1; then if $JAVAH -classpath . $CLASSFILE >&AS_MESSAGE_LOG_FD 2>&1; then if test -e Test_Inner.h ; then it_cv_cp45526_javah=no; @@ -1333,7 +1333,7 @@ } }] EOF -if $JAVAC -cp . $JAVACFLAGS $CLASS >&AS_MESSAGE_LOG_FD 2>&1 ; then +if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1 ; then if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1 ; then it_cv_cp40616=no; else @@ -1373,7 +1373,7 @@ } }] EOF - if $JAVAC -cp . $JAVACFLAGS $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_cp40630=no; else @@ -1470,12 +1470,12 @@ { public static void main(String[] args) { - $2.class.toString(); + System.err.println("Class found: " + $2.class); } } ] EOF -if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then +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 @@ -1727,7 +1727,7 @@ } }] EOF - if $JAVAC -cp . $JAVACFLAGS -source 7 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVAC -cp . $JAVACFLAGS -source 7 -target 7 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_diamond=no; else it_cv_diamond=yes; @@ -2178,3 +2178,124 @@ AM_CONDITIONAL([NO_BYTECODE7], test x"${it_cv_bytecode7}" = "xyes") AC_PROVIDE([$0])dnl ]) + +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_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 +]) + +dnl Generic macro to check for a Java method +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_CACHE_CHECK([if $2 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.Method; + +public class Test +{ + public static void main(String[] args) + { + Class<?> cl = $3.class; + try + { + Method m = cl.getDeclaredMethod($4); + System.err.println("Method found: " + m); + } + catch (NoSuchMethodException e) + { + System.exit(-1); + } + } + + public void dontRun() + { + $5; + } + +} +] +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 +])
--- a/configure.ac Thu May 02 10:21:43 2013 +0100 +++ b/configure.ac Thu May 02 16:10:08 2013 +0100 @@ -116,6 +116,29 @@ IT_CHECK_FOR_CLASS([JAVAX_ANNOTATION_RESOURCE], [javax.annotation.Resource]) IT_GETDTDTYPE_CHECK IT_CHECK_FOR_CLASS([SUN_AWT_TOOLKIT], [sun.awt.SunToolkit]) +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 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