gcc/libjava
Hans Boehm bf3b8e42e2 Implement bitmap descriptor based marking for Boehm GC.
2000-09-30  Hans Boehm  <boehm@acm.org>
	    Bryce McKinlay  <bryce@albatross.co.nz>

	Implement bitmap descriptor based marking for Boehm GC.

	* configure.in: Define JC1GCSPEC. Set it if boehm-gc is used.
	* configure: Rebuilt.
	* libgcj.spec.in: Pass JC1GCSPEC to jc1.
	* include/jvm.h (struct _Jv_VTable): New field `gc_descr'. New inline
	method get_finalizer().
	(struct _Jv_ArrayVTable): Ditto. Declare method array with
	NUM_OBJECT_METHODS elements instead of NUM_OBJECT_METHODS + 1.
	(_Jv_AllocObj): Add new jclass parameter.
	(_Jv_AllocArray): Ditto.
	(_Jv_BuildGCDescr): New prototype.
	* prims.cc (_Jv_AllocObject): Rename parameter `c' to `klass'. Pass
	`klass' to _Jv_AllocObj. Don't set the new object's vtable. Use
	get_finalizer() instead of direct finalizer vtable offset.
	(_Jv_NewObjectArray): Rename parameter `clas' to `klass'. Pass
	`klass' to _Jv_AllocArray. Don't set the new array's vtable.
	(_Jv_NewPrimArray): Call _Jv_FindArrayClass before _Jv_AllocObj.
	Pass `klass' to _Jv_AllocObj. Don't set the new array's vtable.
	* resolve.cc (METHOD_NOT_THERE, METHOD_INACCESSIBLE): New #defines.
	(_Jv_ResolvePoolEntry): Use METHOD_NOT_THERE and METHOD_INACCESSIBLE.
	(_Jv_DetermineVTableIndex): Ditto.
	(_Jv_PrepareClass): Ditto. Remove offset-by-one adjustments from vtable
	calculations to account for new gc_descr field.
	* boehm.cc: #include gc_gcj.h.
	(obj_kind_x, obj_free_list): `#if 0'-ed away.
	(_Jv_MarkObj): Check that vtable doesn't point to a cleared object.
	New commentary from HB. Mark the classes vtable.
	(_Jv_MarkArray): Check that vtable doesn't point to a cleared object.
	(GC_DEFAULT_DESCR): New #define.
	(_Jv_BuildGCDescr): New function. Use GC_DEFAULT_DESCR, for now.
	(_Jv_AllocObj): New parameter `klass'. Use GC_GCJ_MALLOC ().
	(_Jv_AllocArray): New parameter `klass'. Allocate with GC_MALLOC and
	scan conservativly if size is less than min_heap_addr. Set vtable
	pointer of new object before returning.
	(_Jv_AllocBytes): Use GC_MALLOC_ATOMIC, not GC_GENERIC_MALLOC.
	(_Jv_InitGC): Call GC_init_gcj_malloc(). Don't set up marking and
	allocation for obj_kind_x.
	* nogc.cc (_Jv_BuildGCDescr): New function. Return 0.
	(_Jv_AllocObj): Set vtable on returned object.
	(_Jv_AllocArray): Ditto.
	* java/lang/Class.h (_Jv_NewObjectArray): No longer a friend.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_AllocObj): Declare as a friend.
	(_Jv_AllocArray): Ditto.
	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Copy gc_descr
	from &ObjectClass into new array class. Remove offset-by-one
	adjustments from `method' size calculations to account for gc_descr
	field.

Co-Authored-By: Bryce McKinlay <bryce@albatross.co.nz>

From-SVN: r36679
2000-09-30 10:56:58 +01:00
..
doc * doc/cni.sgml: Updated from master copy. 2000-09-05 17:48:57 +00:00
gcj Makefile.in: Rebuilt. 2000-08-30 20:43:48 +00:00
gnu BytesToUnicode.java (getDefaultDecoder): Let default decoder use iconv. 2000-09-11 00:35:51 +00:00
include Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
java Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
libltdl * Updated from libtool multi-language branch. 2000-09-10 08:04:40 +00:00
scripts
sysdep
testsuite abstr.xfail: New file. 2000-09-01 00:13:31 +00:00
acconfig.h
acinclude.m4 configure.in (LIBDATASTARTSPEC): Use `%s' to search for libgcjdata.a. 2000-09-13 19:01:20 +00:00
aclocal.m4 Looks like Tom forgot to check this in... 2000-09-14 08:01:12 +00:00
addr2name.awk
boehm.cc Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
ChangeLog Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
ChangeLog-1999
chartables.pl
configure Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
configure.host
configure.in Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
COPYING
defineclass.cc defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H. 2000-09-14 07:51:56 +00:00
exception.cc
gij.cc natSystem.cc (init_properties): Change sourceware reference to sources.redhat.com. 2000-08-21 06:05:20 +00:00
interpret.cc defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H. 2000-09-14 07:51:56 +00:00
jni.cc
LIBGCJ_LICENSE
libgcj-test.spec.in
libgcj.spec.in Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
libgcjdata.c
libtool-version
Makefile.am Makefile.am: Re-work shell commands that exceeded command-line length limits. 2000-09-14 19:24:08 +00:00
Makefile.in Makefile.am: Re-work shell commands that exceeded command-line length limits. 2000-09-14 19:24:08 +00:00
mauve-libgcj
name-finder.cc
NEWS
no-threads.cc
nogc.cc Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
posix-threads.cc Makefile.am (Thread.h): Don't be friends with native threads functions. 2000-09-07 13:09:41 +01:00
posix.cc
prims.cc Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
README
resolve.cc Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
THANKS More thanks. 2000-08-14 03:02:50 +00:00
win32-threads.cc

This is libgcj: the runtime library for gcj, the GNU Compiler for Java. 
libgcj provides a partial implementation of the Java Class Libraries.

libgcj is free software.  See the file LIBGCJ_LICENSE for copying permission.


DOCUMENTATION
=============

All documentation, including detailed installation and usage instructions,
can be found on the gcj web pages at this URL:

		http://sourceware.cygnus.com/java/


REQUIREMENTS
============

libgcj must be built with a compatible version of the gcc compiler. libgcj
releases are usually numbered according to their corresponding gcc release.
For example, if this is "libgcj 2.95.3", you need to build it using "gcc
2.95.3".


QUICK INSTALLATION
==================

  > mkdir build
  > cd build
  > ../libgcj/configure --enable-threads=<THREADS_TYPE> --prefix=<DIR>
  > make
  > make install

where:

<THREADS_TYPE> specifies the threads library to be used by libgcj. Currently 
the possible values are "posix" and "none". This value must be the same as
the value used when configuring gcc itself.

<DIR> specifies the installation directory. This should be the same location 
as where gcc is installed.

Consult the gcj web pages for additional "configure" arguments.

NOTE: libgcj can not be built in the same directory as `configure'. You must 
create a separate build directory. 


BUGS
====

Please submit bug reports via this URL:

	http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?database=java