Currently we build the Java frontend and libjava by default.  At the GCC
Summit we raised the question of whether should turn this off, thus only
building it when java is explicitly selected at configure time with
--enable-languages.  Among the people at the summit, there was general
support for this, and nobody was opposed to it.

Here is a patch which implements that.  I'm sending this to the mailing
lists gcc@ and java@, as well as the relevant -patches@ lists, because
it does deserve some broader discussion.

This is not a proposal to remove the Java frontend nor is it leading up
to that.  It is a proposal to not build the frontend by default, putting
Java in the same category as Ada and Objective C++.  The main argument
in favor of this proposal is twofold: 1) building libjava is a large
component of gcc bootstrap time, and thus a large component in the
amount of time it takes to test changes; 2) it is in practice very
unusual for middle-end or back-end changes to cause problems with Java
without also causing problems for C/C++, thus building and testing
libjava does not in practice help ensure the stability of the compiler.
A supporting argument is since Sun has released their Java tools under
the GPL, community interest seems to have shifted toward the Sun tools;
gcc's Java frontend is in maintenance mode, with little new development
currently planned.

This patch should not of course change whether or not distros choose to
package the Java compiler; undoubtedly they would continue to do so,
just as they package the Ada compiler today.

Comments?  Approvals?

Ian


gcc/java/ChangeLog:

2010-10-31  Ian Lance Taylor  <i...@google.com>

        * config-lang.in (build_by_default): Set to no.

gcc/ChangeLog:

2010-10-31  Ian Lance Taylor  <i...@google.com>

        * doc/install.texi (Configuration): Note in two places that Java
        is not enabled by default.


Index: gcc/java/config-lang.in
===================================================================
--- gcc/java/config-lang.in	(revision 166080)
+++ gcc/java/config-lang.in	(working copy)
@@ -36,5 +36,7 @@ gtfiles="\$(srcdir)/java/java-tree.h \$(
 
 target_libs=${libgcj_saved}
 lang_dirs="fastjar"
-#build_by_default=no
 lang_requires=c++
+
+# Do not build java by default.
+build_by_default=no
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	(revision 166080)
+++ gcc/doc/install.texi	(working copy)
@@ -1320,7 +1309,7 @@ Currently, you can use any of the follow
 Building the Ada compiler has special requirements, see below.
 If you do not pass this flag, or specify the option @code{all}, then all
 default languages available in the @file{gcc} sub-tree will be configured.
-Ada and Objective-C++ are not default languages; the rest are.
+Java, Ada and Objective-C++ are not default languages; the rest are.
 Re-defining @code{LANGUAGES} when calling @samp{make} @strong{does not}
 work anymore, as those language sub-directories might not have been
 configured!
@@ -1763,7 +1741,9 @@ tools.
 
 @subheading Java-Specific Options
 
-The following option applies to the build of the Java front end.
+The following option applies to the build of the Java front end.  Note
+that the Java front end is not built by default; in order to build it,
+use the @option{--enable-languages} option described above.
 
 @table @code
 @item --disable-libgcj

Reply via email to