Hi,
when configuring classpath with --with-ecj=something there is still a
test being run to check whether 'javac' exists and whether it is Java5
compatible.
I think the correct behavior would be:
a) test whether the supplied command (may ecj or whatever) is available
b) test whether this executable can compile Java5 code
There should be no test for other compilers if I explicitly provide one.
Good point. It is also confusing that ecj is still used even if a 'javac' is found and is 1.5 compatible. We should only do the former test if the ecj one fails (to reflect how Makefile.am works) and test 1.5 compatibility for both.
I've filed this as PR34578: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34578
Additionally the current test for Java5 compatibility is IMHO wrong. To
compile Java5 code one needs a suitable compiler and class library. If a
Java5-capable compiler is running on a pre-Java5 class library (e.g. ecj
on gcj 4.2.1) the current test fails.
A better test would IMHO be to compile the following source:
package java.lang;
public class Object
{
static <T> void foo()
{
}
}
with
<javac-to-be-tested> -source 1.5 -bootclasspath . -d . java/lang/Object.java
and check the results.
I agree; the current one depends on java.util.List being generic where it shouldn't, although I think a clearer test would be a simple enumeration which would achieve the same goal.
Filed as PR34579: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34579
File some bugs?
Yes; done :)
Regards
Robert
Thanks for reporting this,
--
Andrew :-)
Help end the Java Trap!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net