changeset 1896:bafcc83b864b

Check both javac and java can run the code in the PR40616 check. 2009-07-20 Andrew John Hughes <ahughes@redhat.com> * acinclude.m4: (IT_LIBRARY_CHECK): Check the class can be run as well, for when java and javac use different class libraries.
author Andrew John Hughes <ahughes@redhat.com>
date Mon, 20 Jul 2009 16:01:38 +0100
parents f13e31f619e2
children 4afd4198f215
files ChangeLog acinclude.m4
diffstat 2 files changed, 20 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Jul 18 02:04:40 2009 +0100
+++ b/ChangeLog	Mon Jul 20 16:01:38 2009 +0100
@@ -1,3 +1,10 @@
+2009-07-20  Andrew John Hughes  <ahughes@redhat.com>
+
+	* acinclude.m4:
+	(IT_LIBRARY_CHECK): Check the class can be
+	run as well, for when java and javac use
+	different class libraries.
+
 2009-07-17  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
--- a/acinclude.m4	Sat Jul 18 02:04:40 2009 +0100
+++ b/acinclude.m4	Mon Jul 20 16:01:38 2009 +0100
@@ -1516,26 +1516,35 @@
 AC_DEFUN([IT_LIBRARY_CHECK],[
 AC_CACHE_CHECK([if java.io.PrintStream is missing the 1.5 constructors (PR40616)], it_cv_cp40616, [
 CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
 mkdir tmp.$$
 cd tmp.$$
 cat << \EOF > $CLASS
 /* [#]line __oline__ "configure" */
+import java.io.File;
+import java.io.PrintStream;
+
 public class Test 
 {
   public static void main(String[] args)
   throws Exception
   {
-    new java.io.PrintStream(new java.io.File("bluh"), "UTF-8");
+    PrintStream p = new PrintStream(new File("bluh"), "UTF-8");
+    p.close();
   }
 }
 EOF
 if $JAVAC -cp . $JAVACFLAGS $CLASS >/dev/null 2>&1; then
-  it_cv_cp40616=no;
+  if $JAVA -classpath . $BYTECODE >/dev/null 2>&1; then
+    it_cv_cp40616=no;
+  else
+    it_cv_cp40616=yes;
+  fi
 else
   it_cv_cp40616=yes;
 fi
 ])
-rm -f $CLASS *.class
+rm -f $CLASS *.class bluh
 cd ..
 rmdir tmp.$$
 AM_CONDITIONAL([CP40616], test x"${it_cv_cp40616}" = "xyes")
@@ -1560,7 +1569,7 @@
 }
 EOF
 if $JAVAC -cp . $JAVACFLAGS $CLASS >/dev/null 2>&1; then
-  if $JAVA -classpath . $BYTECODE 2>&1 | grep 'Exception'; then
+  if $JAVA -classpath . $BYTECODE 2>&1 | grep 'Exception' >/dev/null 2>&1; then
       it_cv_cp30436=yes;
   else
       it_cv_cp30436=no;