Commit 2dc73168 by Tom Tromey Committed by Tom Tromey

Changes suggested by Per Bothner:

	* gcj.texi (Input Options): Don't mention input files.
	(Code Generation): Updated --main information.
	(Invoking jcf-dump): Mention that --javap is incomplete.
	From Alexandre Petit-Bianco:
	(Warnings): Don't mention -Wunsupported-jdk11.
	My stuff:
	(Compatibility): Mention JDK 1.2-ness of libraries.
	(Resources): Mention resources used when writing gcj.

From-SVN: r39103
parent 6fee9e99
2001-01-17 Tom Tromey <tromey@redhat.com> 2001-01-17 Tom Tromey <tromey@redhat.com>
Changes suggested by Per Bothner:
* gcj.texi (Input Options): Don't mention input files.
(Code Generation): Updated --main information.
(Invoking jcf-dump): Mention that --javap is incomplete.
From Alexandre Petit-Bianco:
(Warnings): Don't mention -Wunsupported-jdk11.
My stuff:
(Compatibility): Mention JDK 1.2-ness of libraries.
(Resources): Mention resources used when writing gcj.
2001-01-17 Tom Tromey <tromey@redhat.com>
* gcj.texi: New file. * gcj.texi: New file.
* Make-lang.in ($(srcdir)/java/gcj.info): New target. * Make-lang.in ($(srcdir)/java/gcj.info): New target.
(java.info): Depend on gcj.info. (java.info): Depend on gcj.info.
......
...@@ -61,7 +61,7 @@ gcc, Using the GNU Compiler Collection}. This manual only documents the ...@@ -61,7 +61,7 @@ gcc, Using the GNU Compiler Collection}. This manual only documents the
options specific to @code{gcj}. options specific to @code{gcj}.
@menu @menu
* Input Options:: How to find input files * Input Options:: How gcj finds files
* Encodings:: Options controlling source file encoding * Encodings:: Options controlling source file encoding
* Warnings:: Options controlling warnings specific to gcj * Warnings:: Options controlling warnings specific to gcj
* Code Generation:: Options controlling the output of gcj * Code Generation:: Options controlling the output of gcj
...@@ -74,14 +74,16 @@ options specific to @code{gcj}. ...@@ -74,14 +74,16 @@ options specific to @code{gcj}.
@cindex class path @cindex class path
@code{gcj} has options to control where it looks to find input files. @code{gcj} has options to control where it looks to find files it needs.
Like other compilers for the Java language, @code{gcj} has a notion of a For instance, @code{gcj} might need to load a class that is referenced
@dfn{class path}. There are several options and environment variables by the file it has been asked to compile. Like other compilers for the
which can be used to manipulate the class path. When @code{gcj} looks Java language, @code{gcj} has a notion of a @dfn{class path}. There are
for a given class, it searches the class path looking for the several options and environment variables which can be used to
corresponding @file{.class} file. @code{gcj} comes with a built-in manipulate the class path. When @code{gcj} looks for a given class, it
class path which points at the installed @file{libgcj.jar}, a file which searches the class path looking for the corresponding @file{.class}
contains all the standard classes. file. @code{gcj} comes with a built-in class path which points at the
installed @file{libgcj.jar}, a file which contains all the standard
classes.
In the below, a directory or path component can refer either to an In the below, a directory or path component can refer either to an
actual directory on the filesystem, or to a @file{.zip} or @file{.jar} actual directory on the filesystem, or to a @file{.zip} or @file{.jar}
...@@ -169,11 +171,6 @@ document the form of the warning which will have an effect -- the ...@@ -169,11 +171,6 @@ document the form of the warning which will have an effect -- the
default being the opposite of what is listed. default being the opposite of what is listed.
@table @code @table @code
@item -Wunsupported-jdk11
This will cause @code{gcj} to warn that @code{final} local variables are
being treated as non-final.
@c FIXME: why do we want this? Is it just not implemented yet?
@item -Wredundant-modifiers @item -Wredundant-modifiers
With this flag, @code{gcj} will warn about redundant modifiers. For With this flag, @code{gcj} will warn about redundant modifiers. For
instance, it will warn if an interface method is declared @code{public}. instance, it will warn if an interface method is declared @code{public}.
...@@ -204,13 +201,13 @@ In addition to the many @code{gcc} options controlling code generation, ...@@ -204,13 +201,13 @@ In addition to the many @code{gcc} options controlling code generation,
@table @code @table @code
@item --main=@var{CLASSNAME} @item --main=@var{CLASSNAME}
This option is used when linking. Since the linker expects to find a This option is used when linking to specify the name of the class whose
method simply named @code{main}, and since Java programs won't have such @code{main} method should be invoked when the resulting executable is
a method (due to name mangling), at link time @code{gcj} will generate a run. @footnote{The linker by default looks for a global function named
stub @code{main} function which will initialize the runtime and then @code{main}. Since Java does not have global functions, and a
invoke the @code{main} method of the appropriate class. This option is collection of Java classes may have more than one class with a
used to specify the name of the class whose @code{main} method should be @code{main} method, you need to let the linker know which of those
invoked when the resulting executable is run. @code{main} methods it should invoke when starting the application.}
@item -D@var{name}[=@var{value}] @item -D@var{name}[=@var{value}]
This option can only be used with @code{--main}. It defines a system This option can only be used with @code{--main}. It defines a system
...@@ -229,9 +226,6 @@ to be put in the appropriate subdirectory of @var{directory}. By ...@@ -229,9 +226,6 @@ to be put in the appropriate subdirectory of @var{directory}. By
default they will be put in subdirectories of the current working default they will be put in subdirectories of the current working
directory. directory.
@c @item -fassume-compiled
@c Nobody is sure what this does and anyway it doesn't work.
@item -fno-bounds-check @item -fno-bounds-check
By default, @code{gcj} generates code which checks the bounds of all By default, @code{gcj} generates code which checks the bounds of all
array indexing operations. With this option, these checks are omitted. array indexing operations. With this option, these checks are omitted.
...@@ -278,7 +272,7 @@ dividing by zero. ...@@ -278,7 +272,7 @@ dividing by zero.
@node Compatibility @node Compatibility
@chapter Compatibility @chapter Compatibility with the Java Platform
As we believe it is important that the Java platform not be fragmented, As we believe it is important that the Java platform not be fragmented,
@code{gcj} and @code{libgcj} try to conform to the relevant Java @code{gcj} and @code{libgcj} try to conform to the relevant Java
...@@ -296,7 +290,11 @@ Java 2 @code{strictfp} keyword (it recognizes the keyword but ignores ...@@ -296,7 +290,11 @@ Java 2 @code{strictfp} keyword (it recognizes the keyword but ignores
it). it).
@item @item
@code{libgcj} is missing many packages, most notably @code{java.awt}. @code{libgcj} is largely compatible with the JDK 1.2 libraries.
However, @code{libgcj} is missing many packages, most notably
@code{java.awt}. There are also individual missing classes and methods.
We currently do not have a list showing differences between
@code{libgcj} and the Java 2 platform.
@item @item
Sometimes the @code{libgcj} implementation of a method or class differs Sometimes the @code{libgcj} implementation of a method or class differs
...@@ -407,7 +405,8 @@ or file name. ...@@ -407,7 +405,8 @@ or file name.
Disassemble method bodies. By default method bodies are not printed. Disassemble method bodies. By default method bodies are not printed.
@item --javap @item --javap
Generate output in @code{javap} format. Generate output in @code{javap} format. The implementation of this
feature is very incomplete.
@item --classpath=@var{path} @item --classpath=@var{path}
@itemx --CLASSPATH=@var{path} @itemx --CLASSPATH=@var{path}
...@@ -468,6 +467,13 @@ as the name of a jar file, not a class. ...@@ -468,6 +467,13 @@ as the name of a jar file, not a class.
@node Resources @node Resources
@chapter Resources @chapter Resources
While writing @code{gcj} and @code{libgcj} we have, of course, relied
heavily on documentation from Sun Microsystems. In particular we have
used The Java Language Specification (both first and second editions),
the Java Class Libraries (volumes one and two), and the Java Virtual
Machine Specification. In addition we've used the online documentation
at @uref{http://java.sun.com/}.
The current @code{gcj} home page is The current @code{gcj} home page is
@uref{http://sources.redhat.com/java/}. This is likely to change in the @uref{http://sources.redhat.com/java/}. This is likely to change in the
near future. near future.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment