This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFC: micro-libgcj merge proposal


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]