PATCH: GCC 3.2 suddenly fails every java test, CLASSPATH wrong
H. J. Lu
hjl@lucon.org
Fri Aug 16 10:59:00 GMT 2002
On Fri, Aug 16, 2002 at 11:43:46AM -0600, Tom Tromey wrote:
> H.J.> http://gcc.gnu.org/ml/gcc/2002-08/msg00901.html
>
> Thanks. Try the appended patch. I think it will work (I did some
> testing in tclsh). If it works for you I will check it in.
>
> Tom
>
> Index: ChangeLog
> from Tom Tromey <tromey@redhat.com>
>
> * lib/libjava.exp (libjava_init): Handle case where gcc has a
> release version number.
>
> Index: lib/libjava.exp
> ===================================================================
> RCS file: /cvs/gcc/gcc/libjava/testsuite/lib/libjava.exp,v
> retrieving revision 1.43
> diff -u -r1.43 libjava.exp
> --- lib/libjava.exp 24 Jun 2002 04:44:53 -0000 1.43
> +++ lib/libjava.exp 16 Aug 2002 17:41:01 -0000
> @@ -132,7 +132,9 @@
>
> # Determine the version so we can find the libgcj jar file.
> set text [eval exec "$GCJ_UNDER_TEST --version 2>@ stdout"]
> - regexp -- "gcj \[^ \]+ (\[^ \]+) .*" $text ignore gcc_version
> + # Extract the first line and operate on that.
> + set text [lindex [split $text \n] 0]
> + regexp -- "gcj \[^ \]+ (\[^ \]+)( .*|)$" $text ignore gcc_version
> verbose "jar file is libgcj-$gcc_version.jar"
>
> # FIXME: This finds libgcj.spec for the default multilib.
I don't like it. We got into trouble with it before already. What is
wrong with tcl glob? Here is mine replacing find with tcl glob.
H.J.
-------------- next part --------------
2002-08-16 H.J. Lu <hjl@gnu.org>
* lib/libjava.exp (gcc_version): Removed.
(libgcj_jar): New.
(libjava_init): Set libgcj_jar with tcl glob.
(libjava_arguments): Use libgcj_jar.
--- libjava/testsuite/lib/libjava.exp.release Sun May 19 21:51:07 2002
+++ libjava/testsuite/lib/libjava.exp Thu Aug 15 12:09:04 2002
@@ -112,7 +112,7 @@ proc libjava_init { args } {
global TOOL_EXECUTABLE
global original_ld_library_path
global env objdir
- global env gcc_version
+ global env libgcj_jar
global tool_root_dir
global libjava_libgcc_s_path
@@ -130,10 +130,9 @@ proc libjava_init { args } {
}
}
- # Determine the version so we can find the libgcj jar file.
- set text [eval exec "$GCJ_UNDER_TEST --version 2>@ stdout"]
- regexp -- "gcj \[^ \]+ (\[^ \]+) .*" $text ignore gcc_version
- verbose "jar file is libgcj-$gcc_version.jar"
+ # Find the libgcj jar file.
+ set libgcj_jar [glob $objdir/../libgcj-*.jar]
+ verbose "jar file is $libgcj_jar"
# FIXME: This finds libgcj.spec for the default multilib.
# If thread models differ between multilibs, this has to be moved
@@ -271,7 +270,7 @@ proc libjava_arguments {{mode compile}}
global runtests
global env
global tool_root_dir
- global gcc_version
+ global libgcj_jar
global libjava_libgcc_s_path
if [info exists LIBJAVA] {
@@ -337,9 +336,9 @@ proc libjava_arguments {{mode compile}}
verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
# Set the CLASSPATH environment variable
- verbose "CLASSPATH is .:$srcdir/$subdir:$objdir:$objdir/../libgcj-$gcc_version.jar"
+ verbose "CLASSPATH is .:$srcdir/$subdir:$objdir:$libgcj_jar"
global env
- set env(CLASSPATH) ".:$srcdir/$subdir:$objdir:$objdir/../libgcj-$gcc_version.jar"
+ set env(CLASSPATH) ".:$srcdir/$subdir:$objdir:$libgcj_jar"
if {$mode == "link"} {
global wrapper_file wrap_compile_flags;
More information about the Java
mailing list