Mercurial > hg > release > icedtea7-2.3
changeset 2578:ba9886ae5d7f
Explicitly check for Matcher.quoteReplacement rather than assuming it doesn't exist if sun.awt.Toolkit doesn't.
Specify source and target Java versions explicitly.
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. Fix use of
= instead of += with ModelMBeanInfo.
* acinclude.m4:
(IT_JAVAH): Explicitly set source & target.
(IT_LIBRARY_CHECK): Likewise.
(IT_PR40630_CHECK): Likewise.
(IT_CHECK_JAVA_AND_JAVAC_WORK): 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 | Tue, 14 Aug 2012 09:49:22 +0100 |
parents | 5954829aa7ed |
children | cc751b4320d0 |
files | ChangeLog Makefile.am acinclude.m4 configure.ac |
diffstat | 4 files changed, 90 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Aug 03 01:54:31 2012 +0100 +++ b/ChangeLog Tue Aug 14 09:49:22 2012 +0100 @@ -1,3 +1,21 @@ +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. Fix use of + = instead of += with ModelMBeanInfo. + * acinclude.m4: + (IT_JAVAH): Explicitly set source & target. + (IT_LIBRARY_CHECK): Likewise. + (IT_PR40630_CHECK): Likewise. + (IT_CHECK_JAVA_AND_JAVAC_WORK): 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. + 2012-08-02 Andrew John Hughes <gnu_andrew@member.fsf.org> * Makefile.am:
--- a/Makefile.am Fri Aug 03 01:54:31 2012 +0100 +++ b/Makefile.am Tue Aug 14 09:49:22 2012 +0100 @@ -102,13 +102,17 @@ ICEDTEA_BOOTSTRAP_CLASSES = if LACKS_SUN_AWT_TOOLKIT -#PR43148 - javac fails due to missing java.util.regex.Matcher.quoteReplacement #PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure ICEDTEA_BOOTSTRAP_CLASSES += \ - $(SHARE)/java/util/regex/Matcher.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 + #PR48033 - Missing javax.management.remote.JMXServiceURL if LACKS_JAVAX_MANAGEMENT_REMOTE_JMXSERVICEURL ICEDTEA_BOOTSTRAP_CLASSES += \ @@ -117,7 +121,7 @@ #PR48034 - javax.management.modelmbean.ModelMBeanInfo if LACKS_JAVAX_MANAGEMENT_MODELMBEAN_MODELMBEANINFO -ICEDTEA_BOOTSTRAP_CLASSES = \ +ICEDTEA_BOOTSTRAP_CLASSES += \ $(SHARE)/javax/management/modelmbean/ModelMBeanInfo.java endif
--- a/acinclude.m4 Fri Aug 03 01:54:31 2012 +0100 +++ b/acinclude.m4 Tue Aug 14 09:49:22 2012 +0100 @@ -1180,7 +1180,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; @@ -1231,7 +1231,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; @@ -1332,7 +1332,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 @@ -1372,7 +1372,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 @@ -1513,7 +1513,7 @@ } ] 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 @@ -1766,7 +1766,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; @@ -2298,3 +2298,61 @@ AM_CONDITIONAL(USING_CACAO, test "x${USING_CACAO}" = "xyes") AC_PROVIDE([$0])dnl ]) + +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 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]) +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); + } + 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 Fri Aug 03 01:54:31 2012 +0100 +++ b/configure.ac Tue Aug 14 09:49:22 2012 +0100 @@ -120,6 +120,7 @@ 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_ENABLE_WARNINGS IT_DIAMOND_CHECK IT_BYTECODE7_CHECK