summaryrefslogtreecommitdiffstats
path: root/libjava/HACKING
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-16 01:27:14 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-16 01:27:14 +0000
commita63c2657c94913d72b3cd388730d61edcb09fc69 (patch)
tree8762d1f992e2f725a6bde1ff966ed6f1e5f4f823 /libjava/HACKING
parent6484dceb0094998183c2f8d3c8c27c6f4e53b8a9 (diff)
downloadppe42-gcc-a63c2657c94913d72b3cd388730d61edcb09fc69.tar.gz
ppe42-gcc-a63c2657c94913d72b3cd388730d61edcb09fc69.zip
Major merge with Classpath.
Removed many duplicate files. * HACKING: Updated.x * classpath: Imported new directory. * standard.omit: New file. * Makefile.in, aclocal.m4, configure: Rebuilt. * sources.am: New file. * configure.ac: Run Classpath configure script. Moved code around to support. Disable xlib AWT peers (temporarily). * Makefile.am (SUBDIRS): Added 'classpath' (JAVAC): Removed. (AM_CPPFLAGS): Added more -I options. (BOOTCLASSPATH): Simplified. Completely redid how sources are built. Include sources.am. * include/Makefile.am (tool_include__HEADERS): Removed jni.h. * include/jni.h: Removed (in Classpath). * scripts/classes.pl: Updated to look at built classes. * scripts/makemake.tcl: New file. * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Added -I options. (gcj_jni_invocation_compile_c_to_binary): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102082 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/HACKING')
-rw-r--r--libjava/HACKING64
1 files changed, 38 insertions, 26 deletions
diff --git a/libjava/HACKING b/libjava/HACKING
index a26590596a1..df74b06414e 100644
--- a/libjava/HACKING
+++ b/libjava/HACKING
@@ -7,36 +7,46 @@ explained in this HACKING file. Please add them if you discover them :)
--
-A lot of the standard library files come from the GNU Classpath project.
-<http://www.gnu.org/software/classpath/>
-The libgcj and Classpath project have officially merged, but the merge
-is not yet complete. Our eventual goal is for Classpath to be an upstream
-source provider for libgcj, however it will be some time before this becomes
-reality: libgcj and Classpath have different implementations of many core
-java classes. In order to merge them, we need to select the best (most
-efficient, cleanest) implementation of each method/class/package, resolve
-any conflicts created by the merge, and test the final result.
-
-The merged files can be recognized by the standard Classpath copyright
-comments at the top of the file. If you make changes to these files
-then you should also check in the fix to Classpath. For small changes
-it may be easier to send a patch to the classpath mailinglist. For
-large changes, if you have direct write access to the libgcj tree,
-then you will also need to get a Classpath account and do the work
-yourself.
-<http://mail.gnu.org/mailman/listinfo/classpath/>
-<mailto:classpath@gnu.org>
-
-If you merge a libgcj class with a classpath class then you must update the
-copyright notice at the top of the file so others can see that this is a
-shared libgcj/classpath file.
+libgcj uses GNU Classpath as an upstream provider. Snapshots of
+Classpath are imported into the libgcj source tree. Some classes are
+overridden by local versions; these files still appear in the libgcj
+tree.
+
+To import a new release:
+
+- Check out a classpath snapshot
+- Use auto* to create configure, Makefile.in, etc
+ You have to make sure to use the gcc libtool.m4 and gcc lt* scripts
+ cd .../classpath
+ cp ../../lt* .
+ aclocal -I m4 -I ../..
+ autoconf
+ autoheader
+ automake
+ rm -rf autom4te.cache
+- Test everything first. The simplest way to do this is by overlaying
+ the checked out classpath on your gcc tree and then doing a build.
+- Use 'cvs import' to import. The vendor tag is 'CLASSPATH'. For the
+ release tag, if this is a released classpath version, use something
+ like 'classpath-import-VERSION'; otherwise something like
+ 'classpath-import-DATE'.
+ Be sure to use -ko and -I\!
+- Remove any files that were deleted in Classpath
+- Run 'scripts/makemake.tcl > sources.am' in the source tree
+- Run automake for libgcj
+
+Over time we plan to remove as many of the remaining divergences as
+possible.
+
+File additions and deletions require running scripts/makemake.tcl
+before running automake.
+
--
If you need to add new java files to libgcj then you have to edit the
Makefile.am file in the top (libjava) directory. And run automake.
-Tom Tromey adds:
If you add a class to java.lang, java.io, or java.util
(including sub-packages, like java.lang.ref).
@@ -45,8 +55,10 @@ If you add a class to java.lang, java.io, or java.util
* Go to the `namespace java' line, and delete that entire block (the
entire contents of the namespace)
-* Then insert the output of `perl ../scripts/classes.pl' into the file
- at that point.
+* Then insert the output of `perl scripts/classes.pl' into the file
+ at that point. This must be run from the build tree, in
+ <build>/classpath/lib; it uses the .class file name to determine
+ what to print.
If you're generating a patch there is a program you can get to do an
offline `cvs add' (it will fake an `add' if you don't have write
OpenPOWER on IntegriCloud