As we believe it is important that the Java platform not be fragmented,
gcj and libgcj try to conform to the relevant Java
specifications. However, limited manpower and incomplete and unclear
documentation work against us. So, there are caveats to using
gcj.
This list of compatibility issues is by no means complete.
gcj implements the JDK 1.1 language. It supports inner classes,
though these are known to still be buggy. It does not yet support the
Java 2 strictfp keyword (it recognizes the keyword but ignores
it).
libgcj is largely compatible with the JDK 1.2 libraries.
However, libgcj is missing many packages, most notably
java.awt. There are also individual missing classes and methods.
We currently do not have a list showing differences between
libgcj and the Java 2 platform.
libgcj implementation of a method or class differs
from the JDK implementation. This is not always a bug. Still, if it
affects you, it probably makes sense to report it so that we can discuss
the appropriate response.