+2001-05-29 Tom Tromey <tromey@redhat.com>
+
+ * include/jvm.h (_Jv_ThrowNoMemory): Mark as noreturn.
+
+ * configure: Rebuilt.
+ * configure.in: Only add multilib support code if we just rebuilt
+ top-level Makefile.
+
+2001-05-29 Andrew Haley <aph@redhat.com>
+
+ * include/i386-signal.h (MAKE_THROW_FRAME): Don't fix up frame
+ pointer: the dwarf unwinder in libgcc will do everything that's
+ needed.
+ (HANDLE_DIVIDE_OVERFLOW): Tidy. Don't mess with stack frames any
+ more than we absolutely need to.
+ * configure.host (EXCEPTIONSPEC): Remove libgcj_sjlj on Alpha.
+ * configure.in (SIGNAL_HANDLER): Use include/dwarf2-signal.h on
+ Alpha.
+ (SIGNAL_HANDLER): Test "$enable_sjlj_exceptions", not
+ "$libgcj_sjlj".
+ * configure: Rebuilt.
+ * include/dwarf2-signal.h (MAKE_THROW_FRAME): Adjust PC
+ for Alpha.
+ (SIGNAL_HANDLER): Use siginfo style handler.
+ (INIT_SEGV): Likewise.
+ (INIT_FPE): Likewise.
+ * include/ppc-signal.h: Delete whole file.
+
+2001-05-24 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/natString.cc (init): Throw
+ ArrayIndexOutOfBoundsException.
+ (getChars): Likewise.
+ (getBytes): Likewise.
+ (valueOf): Likewise.
+
+ * configure.in: Only allow hash synchronization when POSIX threads
+ are enabled.
+ * java/lang/natObject.cc (alloc_heavy): Properly find `init' field
+ of sync info object.
+
+2001-05-23 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (AM_CXXFLAGS): Remove -fvtable-thunks.
+
+ Revert patch of 2001-05-21:
+ * Makefile.am (libgcj_la_DEPENDENCIES): Removed nat_files.
+ (libgcj_la_LIBADD): Likewise.
+ (libgcjx_la_DEPENDENCIES): Removed x_nat_files.
+ (libgcjx_la_LIBADD): Likewise.
+
+ * posix-threads.cc (_Jv_self_cache): Renamed from self_cache.
+ * gcj/Makefile.in: Rebuilt.
+ * gcj/Makefile.am (gcj_HEADERS): Added libgcj-config.h.
+ * gcj/javaprims.h: Include gcj/libgcj-config.h.
+ * gcj/libgcj-config.h.in: New file.
+ * libgcj.spec.in (*jc1): Added @HASH_SYNC_SPEC@.
+ * configure: Rebuilt.
+ * configure.in: Enable hash synchronization by default on some
+ platforms.
+ (HASH_SYNC_SPEC): New subst.
+ (AC_CONFIG_HEADER): Added gcj/libgcj-config.h.
+ Correctly use `test -z' instead of `test -n' in a couple places.
+ (JV_HASH_SYNCHRONIZATION): Use AC_DEFINE; don't add to
+ LIBGCJ_CXXFLAGS.
+ * configure.host (enable_java_net_default): Initialize.
+ (enable_hash_synchronization_default): New variable.
+
+2001-05-23 Hans Boehm <Hans_Boehm@hp.com>
+
+ * boehm.cc (_Jv_MarkObj): Don't mark sync_info when hash
+ synchronization in use.
+ (_Jv_MarkArray): Likewise.
+ (_Jv_AllocBytes): Don't check return result.
+ (handle_out_of_memory): New function.
+ (_Jv_InitGC): Set GC_oom_fn.
+ (trace_one_vtable): New global.
+ (_Jv_AllocTraceOne): New function.
+ * configure.in: Added --enable-hash-synchronization.
+ * defineclass.cc, prims.cc, resolve.cc, java/lang/natString.cc,
+ java/net/natInetAddress.cc: Remove _Jv_AllocBytesChecked.
+ * nogc.cc (_Jv_AllocObj): Throw out-of-memory.
+ (_Jv_AllocArray): Likewise.
+ (_Jv_AllocBytes): Likewise.
+ (_Jv_AllocPtrFreeObject): New function.
+ (_Jv_AllocTraceOne): Likewise.
+ * posix-threads.cc (_Jv_ThreadRegister): Handle slow
+ pthread_self().
+ (self_cache): New global.
+ (_Jv_ThreadSelf_out_of_line): New function.
+ * prims.cc (_Jv_AllocBytesChecked): Removed.
+ (_Jv_ThrowNoMemory): New function.
+ (_Jv_AllocObject): Don't check for null return from allocator.
+ (_Jv_NewObjectArray): Likewise.
+ (_Jv_AllocPtrFreeObject): New function.
+ (_Jv_NewPrimArray): Allocate pointer-free object if possible.
+ * include/javaprims.h (_Jv_AllocPtrFreeObject): Declare.
+ (_Jv_MonitorEnter, _Jv_MonitorExit): Don't return value.
+ * include/boehm-gc.h (_Jv_AllocObj): Define.
+ (_Jv_AllocPtrFreeObj): Define.
+ * include/jvm.h (_Jv_AllocPtrFreeObj): Declare.
+ (_Jv_ThrowNoMemory): Declare.
+ (_Jv_AllocTraceOne): Declare.
+ (_Jv_AllocBytesChecked): Removed.
+ * include/posix-threads.h (_Jv_MutexInit, _Jv_MutexLock,
+ _Jv_MutexUnlock): Handle LOCK_DEBUG.
+ (_Jv_ThreadSelf): Handle case where system pthread_self() is
+ slow.
+ * java/lang/Class.h (Class): Declare _Jv_AllocPtrFreeObj as
+ friend.
+ * java/lang/Object.h (sync_info): Conditional upon presence of
+ hash synchronization.
+ * java/lang/natObject.cc: Much new code to handle thin locks and
+ hash synchronization.
+ * java/lang/natString.cc (_Jv_AllocString): Allocate pointer-free
+ object if possible.
+
+2001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gij.cc (version): Update copyright year.
+
+2001-05-22 Anthony Green <green@redhat.com>
+
+ * configure.in: Tweak canadian cross test, and don't redefine GCJ
+ for cross builds.
+
+2001-05-21 Per Bothner <per@bothner.com>
+
+ Implement invocation interface; don't create new thread for main.
+ * java/lang/Thread.java (gen_name): Make native.
+ (<init>(Thread,THreadGroup,Runnable,String)): New private
+ constructor, used by other constructors, and _Jv_AttachCurrentThread.
+ * java/lang/natThread.cc (gen_name): New implementation.
+ (_Jv_AttachCurrentThread, _Jv_DetachCurrentThread): New.
+ * prims.cc (main_init): Removed, replaced by _Jv_CreateJavaVM.
+ (_Jv_CreateJavaVM): New runtime initialization procedure.
+ (runFirst): New proecdure - mostly code from old FirstThread::run.
+ (JvRunMain, _Jv_RunMain): Re-write to use new invocation code.
+ * gcj/cni.h (JvCreateJavaVM, JvAttachCurrentThread,
+ JvDetachCurrentThread): New inline wrappers.
+ * gcj/javaprims.h (_Jv_CreateJavaVM, _Jv_AttachCurrentThread,
+ _Jv_DetachCurrentThread): New declarations.
+ * gnu/gcj/runtime/FirstThread.java: Gutted. Now contains only ...
+ (getMain): new static method.
+ * gnu/gcj/runtime/natFirstThread.cc: Removed; run method replaced
+ by runFirst in prims.cc.
+ (java/lang/Thread.h): Update for new invocation interface.
+ * include/posix-threads.h (_Jv_ThreadRegister,
+ _Jv_ThreadUnRegister): New declarations.
+ * posix-threads.cc (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New.
+ (really_start): Use new _Jv_ThreadRegister.
+ * include/no-threads.h (_Jv_ThreadInitData): No longer inline.
+ (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New empty inlines.
+ * no-threads.cc (_Jv_ThreadInitData): Set _Jv_OnlyThread here.
+ Complain of called when _Jv_OnlyThread already set.
+ (_Jv_ThreadStart): Always JvFail.
+ * include/win32-threads.h (_Jv_Thread_t): New thread_obj field.
+ (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New declarations.
+ * win32-threads.cc (struct starter): Remove objet field -
+ we use _Jv_Thread_t's new thread_obj field instead.
+ (_Jv_ThreadInitData): Set _Jv_Thread_t's thread_obj field.
+ (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New.
+ (really_start): Use new _Jv_ThreadRegister.
+ * jni.cc (_Jv_JNI_AttachCurrentThread): Use _Jv_AttachCurrentThread.
+ (_Jv_JNI_DetachCurrentThread): Use _Jv_DetachCurrentThread.
+ * gnu/gcj/jni/NativeThread.java, gnu/gcj/jni/natNativeThread.cc:
+ Removed - no longer needed with new invocation interface.
+ * Makefile.am: Update for removed/added files.
+
2001-05-21 Per Bothner <per@bothner.com>
* Makefile.am (libgcj_la_DEPENDENCIES): Add $(nat_files).