RFC: micro-libgcj merge proposal

Joel Dice dicej@mailsnare.net
Fri Jan 13 18:17:00 GMT 2006


Hi all.

The following is a brief proposal for merging micro-libgcj into the GCC
source tree.  Comments and suggestions are welcome.

  - Joel


Proposed Changes
----------------

* Add two new build options:
     --[enable|disable]-micro-libgcj
            Enable/disable lightweight libgcj build.

     --[enable|disable]-micro-synchronization
            Enable/disable lightweight, nonstandard synchronization based
            on java.lang.Syncronizable interface.  This option is enabled
            by default when --enable-micro-libgcj is specified, but may
            be enabled or disabled independent of that option.

* Add preprocessor directives to various native source files (*.cc) under
   the libjava directory of the following forms:

     #ifndef ULIBGCJ
       ... // code that should not be included in the micro-libgcj build
     #endif

     #ifdef ULIBGCJ
       ... // simplified version of code for micro-libgcj build
     #else
       ... // full-featured and/or high-performance version for normal
           // build
     #endif

   Note that these directives would not need to appear in any Java source
   files, nor in any files not included in the micro-libgcj build at all.
   Also, few if any header files should require any such directives.  I'm
   afraid I can't provide an exact list of files affected until I've
   actually done the merge.

* Add a new subdirectory under libgjava called micro-libgcj which will
   contain a separately-maintained set of Java files representing
   micro-libgcj's classpath (a subset of java.lang.* and java.util.*).


Plan
----

0. Get write access to the GCC repository.

1. Create a micro-libgcj branch in the repository.

2. Do the merge on that branch.

3. Document new build options.

4. When the next Stage 1 in the release schedule comes around, propose to
    merge micro-libgcj into the trunk.

5. Merge into trunk according to the schedule defined by the release
    manager.



More information about the Java mailing list