2006-12-22  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* java/io/natObjectInputStream.cc (allocateObject): Now method on
	VMObjectStream.
	(currentLoader): Removed.
	* java/io/ObjectInputStream.java: Removed.
	* java/io/VMObjectInputStream.java: New file.
	* scripts/classes.pl (scan): Ignore .svn directories.
	* gcj/javaprims.h: Updated.

2006-12-22  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jni/register2.c: Include jni.h, not
	register2.h.
	* testsuite/libjava.cni/cni.exp (gcj_cni_build_headers):
	Special-case shortfield.

2006-12-20  Andrew Haley  <aph@redhat.com>

	* java/lang/natClass.cc (getDeclaredAnnotations): Call
	ClassLoader.getDeclaredAnnotations and
	ClassLoader.putDeclaredAnnotations.
	* java/lang/ClassLoader.java (AnnotationsKey): New class.
	(getDeclaredAnnotations, putDeclaredAnnotations): New.

2006-12-19  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Move here
	from include/jvm.h.
	Add BC ABI Version 1.
	Throw a ClassFormatError if we're not ABI-compatible.
	(_Jv_RegisterClasses): Throw a ClassFormatError if we're not
	ABI-compatible.
	(_Jv_RegisterClasses_Counted): Likewise.
	(_Jv_NewClassFromInitializer): Likewise.
	Call Class::initializerSize to get size of initializer struct.
	* include/jvm.h (_Jv_CheckABIVersion): Move to natClassLoader.cc.
	* java/lang/Class.h (Class::initializerSize): New function.

2006-12-18  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_build_headers):
	Don't use jv-scan.

2006-12-18  Tom Tromey  <tromey@redhat.com>

	* HACKING: Updated.
	* gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.93.

2006-12-15  Tom Tromey  <tromey@redhat.com>

	* configure, Makefile.in: Rebuilt.
	* Makefile.am (gcjh.stamp): Use JAVA_MAINTAINER_MODE.
	* configure.ac: Added --enable-java-maintainer-mode.

2006-12-15  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.compile: Removed.

2006-12-15  Andrew Haley  <aph@redhat.com>

	* Makefile.am (AM_MAKEFLAGS): Pass JAR to sub-make.
	(libgcj_tools_la_GCJFLAGS): Pass -fsource-filename to gcj.

2006-12-14  Gary Benson  <gbenson@redhat.com>

	* include/java-stack.h (stackwalker_nnl_trace_fn,
	GetStackWalkerFirstNonNullLoader): Declare.
	* stacktrace.cc (stackwalker_nnl_trace_fn,
	GetStackWalkerFirstNonNullLoader): New methods.
	* gnu/classpath/natVMStackWalker.cc
	(firstNonNullClassLoader): New method.
	* gnu/classpath/VMStackWalker.java
	(firstNonNullClassLoader): Replace with native method.

2006-12-13  Gary Benson  <gbenson@redhat.com>

	* stacktrace.cc (stackwalker_trace_fn,
	GetStackWalkerCallingClass): Be less strict about caller.
	* gnu/classpath/natVMStackWalker.cc
	(getCallingClassLoader): New method.
	* gnu/classpath/VMStackWalker.java
	(getCallingClassLoader): Replace with native method.

2006-12-12  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* gnu/java/rmi/rmic/CompilerProcess.java: Removed.
	* gnu/java/rmi/rmic/RMICException.java: Removed.
	* gnu/java/rmi/rmic/Compiler.java: Removed.
	* gnu/java/rmi/rmic/Compile_gcj.java: Removed.
	* gnu/java/rmi/rmic/Compile_jikes.java: Removed.
	* gnu/java/rmi/rmic/TabbedWriter.java: Removed.
	* gnu/java/rmi/rmic/Compile_kjc.java: Removed.
	* gnu/java/rmi/rmic/RMIC.java: Removed.
	* Makefile.am (toolexeclib_LTLIBRARIES): Uncomment
	libgcj-tools.la.
	(jar_DATA): Uncomment libgcj-tools jar.
	(libgcj_tools_la_SOURCES): Uncomment.
	(libgcj_tools_la_GCJFLAGS): Likewise.
	(libgcj_tools_la_LDFLAGS): Likewise.
	(libgcj_tools_la_DEPENDENCIES): Likewise.
	(libgcj_tools_la_LINK): Likewise.
	(libgcj-tools-$(gcc_version).jar): Uncomment.
	(bin_PROGRAMS): Add gappletviewer, gjarsigner, gkeytool, gjar,
	gjavah, gnative2ascii, gorbd, grmid, gserialver, gtnameserv.
	(gjar_SOURCES): New variable.
	(gjar_LDFLAGS): Likewise.
	(gjar_LINK): Likewise.
	(gjar_LDADD): Likewise.
	(gjar_DEPENDENCIES): Likewise.
	(gjavah_SOURCES): Likewise.
	(gjavah_LDFLAGS): Likewise.
	(gjavah_LINK): Likewise.
	(gjavah_LDADD): Likewise.
	(gjavah_DEPENDENCIES): Likewise.
	(gnative2ascii_SOURCES): Likewise.
	(gnative2ascii_LDFLAGS): Likewise.
	(gnative2ascii_LINK): Likewise.
	(gnative2ascii_LDADD): Likewise.
	(gnative2ascii_DEPENDENCIES): Likewise.
	(gorbd_SOURCES): Likewise.
	(gorbd_LDFLAGS): Likewise.
	(gorbd_LINK): Likewise.
	(gorbd_LDADD): Likewise.
	(gorbd_DEPENDENCIES): Likewise.
	(grmid_SOURCES): Likewise.
	(grmid_LDFLAGS): Likewise.
	(grmid_LINK): Likewise.
	(grmid_LDADD): Likewise.
	(grmid_DEPENDENCIES): Likewise.
	(gserialver_SOURCES): Likewise.
	(gserialver_LDFLAGS): Likewise.
	(gserialver_LINK): Likewise.
	(gserialver_LDADD): Likewise.
	(gserialver_DEPENDENCIES): Likewise.
	(gtnameserv_SOURCES): Likewise.
	(gtnameserv_LDFLAGS): Likewise.
	(gtnameserv_LINK): Likewise.
	(gtnameserv_LDADD): Likewise.
	(gtnameserv_DEPENDENCIES): Likewise.
	(grmic_LDADD): Link against tools library.
	(grmic_LDFLAGS): Changed --main.
	(grmiregistry_LDADD): Link against tools library.
	(grmiregistry_LDFLAGS): Changed --main.
	(grmic_DEPENDENCIES): Updated.
	(grmiregistry_DEPENDENCIES): Likewise.

2006-12-12  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* gnu/java/nio/FileLockImpl.java: New override.
	* gnu/java/nio/SelectorProviderImpl.java: New override.
	* gnu/java/nio/PipeImpl.java: New override.
	* gnu/java/nio/SocketChannelSelectionKeyImpl.java: New override.
	* gnu/java/nio/NIOSocket.java: New override.
	* gnu/java/nio/SocketChannelSelectionKey.java: New override.
	* java/io/FileDescriptor.java: New override.
	* java/io/RandomAccessFile.java: New override.
	* java/io/FileInputStream.java: New override.
	* java/io/FileOutputStream.java: New override.
	* configure.ac: Pass --disable-Werror, --disable-tool-wrappers to
	Classpath configure.
	* java/io/ObjectInputStream.java (readClassDescriptor): Don't pass
	class loader to ObjectStreamField.
	* java/net/DatagramSocket.java: New override.
	* java/net/Socket.java: New override.
	* java/net/MulticastSocket.java: New override.
	* gnu/classpath/VMStackWalker.java (firstNonNullClassLoader): New
	method from Classpath.
	* java/lang/Class.java (newInstance): Fixed return type.
	(forName): Likewise.
	(getClasses): Likewise.
	(getComponentType): Likewise.
	(getConstructors): Likewise.
	(getDeclaredClasses): Likewise.
	(getDeclaredConstructors): Likewise.
	(getDeclaringClass): Likewise.
	(getInterfaces): Likewise.
	(getSuperclass): Likewise.
	(internalGetClasses): Genericized.
	(getMethod): Likewise.
	(isAssignableFrom): Likewise.
	* java/util/zip/natDeflater.cc (getBytesWritten): Renamed.
	(getBytesRead): Likewise.
	* java/util/zip/Deflater.java (getBytesRead, getBytesWritten): New
	methods.
	(getTotalIn, getTotalOut): Rewrote.
	* java/net/NetworkInterface.java: New override.
	* java/lang/ClassLoader.java (defineClass): New overload from
	Classpath.

2006-12-11  Gary Benson  <gbenson@redhat.com>

	* gcj/Makefile.in: Rebuilt.

2006-12-11  Gary Benson  <gbenson@redhat.com>

	* Makefile.in: Rebuilt.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

2006-12-08  Mohan Embar  <gnustuff@thisiscool.com>

	* configure, Makefile.in: Rebuilt.
	* configure.ac: (GCJ_FOR_ECJX) New substitution.
	(host_exeext): Likewise.
	(ENABLE_SHARED): New conditional,
	* Makefile.am: Added GCJ_FOR_ECJX and GCJ_FOR_ECJX_LINK.
	(install-exec-hook): Correctly rename ecjx to ecj1.
	(ecjx_LINK, ecjx_LDFLAGS, ecjx_LDADD, ecjx_DEPENDENCIES): Define
	as a function of whether we're doing a native and/or shared build.

2006-12-08  Mohan Embar  <gnustuff@thisiscool.com>

	* posix-threads.cc (_Jv_ThreadUnpark): Removed.
	(ParkHelper::unpark): Ported from _Jv_ThreadUnpark.
	(ParkHelper::deactivate): Implemented.
	(_Jv_ThreadPark): Removed.
	(ParkHelper::park): Ported from _Jv_ThreadPark; moved
	mutex locking and unlocking to inside if statement.
	* win32-threads.cc (compare_and_exchange): New helper function.
	(_Jv_ThreadUnpark, _Jv_ThreadPark): Removed.
	(ParkHelper::init): Implemented.
	(ParkHelper::init_event): Implemented.
	(ParkHelper::deactivate): Implemented.
	(ParkHelper::destroy): Implemented.
	(ParkHelper::unpark): Implemented.
	(ParkHelper::park): Implemented.
	* java/lang/natThread.cc (initialize_native): Use ParkHelper
	instead of POSIX synchronization constructs.
	(finalize_native):  Likewise.
	(interrupt): Use ParkHelper method instead of _Jv_ThreadUnpark().
	(finish_): Use ParkHelper::deactivate().
	* include/jvm.h (struct natThread): Use ParkHelper instead of POSIX
	synchronization constructs.
	* include/posix-threads.h: Include sysdep/locks.h
	(_Jv_ThreadUnpark, _Jv_ThreadPark): Removed.
	(ParkHelper): New struct.
	(ParkHelper::init): Implemented.
	(ParkHelper::destroy): Implemented.
	* include/win32-threads.h (ParkHelper): New struct.
	(TEXT): undefined this macro.
	* sun/misc/natUnsafe.cc (unpark): Use ParkHelper instead of
	_Jv_ThreadUnpark.
	(park):  Use ParkHelper instead of _Jv_ThreadPark.

2006-12-08  Ben Konrath  <bkonrath@redhat.com>

	PR libgcj/30110:
	* Makefile.am: Add contents of classpath/external to src.zip.
	* Makefile.in: Regenerate.

2006-12-07  Tom Tromey  <tromey@redhat.com>

	PR libgcj/30076:
	* defineclass.cc (read_fields): Sort fields here.
	(handleFieldsEnd): Removed.
	(handleField): Added field map argument.
	(struct _Jv_ClassReader): Updated.
	(handleParameterAnnotations): Use writeInt for the length.

2006-12-07  Gary Benson  <gbenson@redhat.com>

	* include/java-stack.h (stackwalker_trace_fn,
	GetStackWalkerCallingClass): Declare.
	* stacktrace.cc (stackwalker_trace_fn,
	GetStackWalkerCallingClass): New methods.
	* gnu/classpath/natVMStackWalker.cc
	(getCallingClass): Use the above.
	* gnu/classpath/VMStackWalker.java
	(getCallingClass): Replace with native method.

2006-12-06  Tom Tromey  <tromey@redhat.com>

	PR java/24938:
	* sources.am, Makefile.in: Rebuilt.
	* gnu/CORBA/DynAn/gnuDynValue.java: Removed.
	* gnu/CORBA/DynAn/RecordAny.java: Removed.
	* gnu/CORBA/DynAn/RecordAny.h: Rebuilt.

2006-12-06  Andrew Haley  <aph@redhat.com>

	* gcj/javaprims.h (_Jv_is_proxy): Declare.
	* java/lang/reflect/natVMProxy.cc (_Jv_is_proxy): Define
	(run_proxy): Register this proxy invocation with a _Jv_InterpFrame.
	* include/java-stack.h (struct _Jv_StackFrame): Add proxyClass and
	proxyMethod.
	* stacktrace.cc (UnwindTraceFn): Add frame_proxy handling.
	(getLineNumberForFrame): Likewise.
	(FillInFrameInfo): Likewise.

2006-12-05  Andrew Haley  <aph@redhat.com>

	* Makefile.am: Add java/lang/reflect/natVMProxy.cc.
	* java/lang/reflect/Method.java (exception_types, parameter_types,
	return_type): Make package private.
	* include/jvm.h (_Jv_makeUtf8Const(const char *s)): New function.
	(_Jv_Linker::layout_vtable_methods): Given
	public linkage.
	(_Jv_Linker::search_method_in_class): Likewise.
	* interpret.cc (_Jv_init_cif): Renamed from init_cif.  Given
	public linkage.
	* include/java-interp.h (_Jv_init_cif): Likewise.
	* java/lang/reflect/natVMProxy.cc: New file.
	* java/lang/VMCompiler.java (precompiles): New method.
	(compileClass): Use it.
	* java/lang/reflect/VMProxy.java
	(HAVE_NATIVE_GENERATE_PROXY_CLASS): true.
	(generateProxyClass): Native.
	
2006-12-05  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libexecsubdir): New variable.
	(install-exec-hook): Install ecj1 in libexecsubdir.
	(libexecsub_PROGRAMS): Renamed.

2006-12-05  Tom Tromey  <tromey@redhat.com>

	PR java/29495:
	* testsuite/libjava.lang/PR29495.out: New file.
	* testsuite/libjava.lang/PR29495.java: New file.

2006-12-05  Gary Benson  <gbenson@redhat.com>

	* gnu/classpath/natVMStackWalker.cc: Comment fixes.

2006-12-05  Gary Benson  <gbenson@redhat.com>

	* gnu/classpath/natVMStackWalker.cc (getCallingClass): Unwind
	the stack when the caller is a compiled frame and the caller
	of the caller is an interpreted frame.

2006-12-04  Adam Megacz <megacz@cs.berkeley.edu>

	* gnu/gcj/runtime/natSharedLibLoader.cc (init): add "::" to fix
	syntax error

2006-12-04  Adam Megacz <megacz@cs.berkeley.edu>

	* include/win32.h (_Jv_platform_process): change to Win32Process
	
2006-12-04  Gary Benson  <gbenson@redhat.com>

	* stacktrace.cc (GetClassContext): Remove.
	* include/java-stack.h (GetClassContext): Likewise.

2006-12-04  Gary Benson  <gbenson@redhat.com>

	* java/lang/SecurityManager.java: Removed.
	* java/lang/VMSecurityManager.java: Likewise.
	* java/lang/natVMSecurityManager.cc: Likewise.
	* javax/naming/spi/NamingManager.java: Likewise.
	* gnu/CORBA/ObjectCreator.java: Likewise.
	* sun/reflect/Reflection.java: Replaced with reference.
	* sun/reflect/natReflection.cc: Removed.
	* gcj/javaprims.h: Removed reference to VMSecurityManager.
	* Makefile.am (nat_source_files): Removed natReflection.cc
	and natVMSecurityManager.cc.
	* sources.am, Makefile.in: Rebuilt.	
	
2006-12-01  Gary Benson  <gbenson@redhat.com>

	* java/net/URLClassLoader.java
	(findClass): Inhibit calling this.toString() further into VM
	initialization.
	(runtimeInitialized): Removed.
	* java/net/natURLClassLoader.cc: Removed.
	* Makefile.am: Reflect the above.
	* Makefile.in: Rebuilt.	

2006-11-30  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (getAnnotations): Don't recurse.

2006-11-30  Gary Benson  <gbenson@redhat.com>

	* include/java-stack.h (GetStackWalkerStack): Declare.
	* stacktrace.cc (GetStackWalkerStack): New method.
	* gnu/classpath/natVMStackWalker.cc (getClassContext): Likewise.
	* gnu/classpath/VMStackWalker.java
	(getClassContext): Replace stub with native method declaration.
	(getCallingClass): Remove "throws NotImplementedException".
	(getCallingClassLoader): Likewise.

2006-11-30  Gary Benson  <gbenson@redhat.com>

	* java/lang/ClassLoader.java: Merged javadoc.
	(getParent, getSystemClassLoader): Use VMStackWalker.

2006-11-30  Gary Benson  <gbenson@redhat.com>

	* java/lang/Thread.java: Merged javadoc.
	(getContextClassLoader): Use VMStackWalker.

2006-11-29  Gary Benson  <gbenson@redhat.com>

	* java/lang/Package.java: Removed.
	* java/security/Security.java: Likewise.
	* java/util/ResourceBundle.java: Likewise.
	* java/util/natResourceBundle.cc: Likewise.
	* Makefile.am (nat_source_files): Removed natResourceBundle.cc.
	* sources.am, Makefile.in: Rebuilt.

2006-11-29  Gary Benson  <gbenson@redhat.com>

	* gnu/classpath/VMStackWalker.java: Added javadoc.

2006-11-27  Andrew Haley  <aph@redhat.com>

	* sun/reflect/misc/ReflectUtil.java (checkPackageAccess):
	Implement.

2006-11-23  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_RegisterClasses): Abort if we
	are ABI-incompatible.

2006-11-23  Andrew Haley  <aph@redhat.com>

	* Makefile.am (nat_source_files): Add gnu/classpath/natVMStackWalker.cc.
	* sources.am: Rebuild.
	* gnu/classpath/natVMStackWalker.cc: New file.
	* gnu/classpath/VMStackWalker.java: New file.
	* headers.txt: prepend 
	_Jv_Thread_t* _Jv_ThreadGetData(java::lang::Thread* thread)
	* include/java-stack.h: Add VMStackWalker namespace.
	Add friend class gnu::classpath::VMStackWalker.

2006-11-23  Gary Benson  <gbenson@redhat.com>

	* java/security/Security.java: Merge with classpath.
	* java/lang/Package.java: Likewise.

2006-11-21  Andrew Haley  <aph@redhat.com>

	* java/lang/Class.h: (isEnum, isSynthetic, isAnnotation): Move
	to native code. 
	* java/lang/Class.java (isEnum, isSynthetic, isAnnotation):
	Likewise.

2006-11-17  Andrew Haley  <aph@redhat.com>

	* java/net/natVMURLConnection.cc: Check for HAVE_MAGIC_OPEN.
	* configure.ac: Add HAVE_MAGIC_OPEN.
	* include/config.h.in: Regenerated.
	* configure: Regenerated.
	
2006-11-07  Andrew Haley  <aph@redhat.com>

	* java/lang/VMCompiler.java (compileClass): Revert mistaken
	change.

	* java/lang/natVMClassLoader.cc (defineClass): Register the new
	class with the initiating loader.

2006-11-06  Andrew Haley  <aph@redhat.com>

	* defineclass.cc (prepare_pool_entry): Be careful about which
	constant pool entries have their '/' characters stripped.
	(handleGenericSignature): Likewise.
	(handleAnnotationElement): Likewise.
	(handleAnnotation): Likewise.
	(read_one_class_attribute): Likewise.
	(handleMethod): Likewise.

	* include/java-cpool.h (JV_CONSTANT_LazyFlag): New.
	* java/lang/natClass.cc (check_constant): Likewise.
	* link.cc (resolve_pool_entry): Mask JV_CONSTANT_LazyFlag.

2006-11-01  Andrew Haley  <aph@redhat.com>

	* java/lang/natClass.cc (parseAnnotationElement): Set result from
	anno_class.

2006-10-21  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.lang/PR260.out: Rewrote for 1.5.
	* testsuite/libjava.lang/pr179.out: Rewrote for 1.5.
	* testsuite/libjava.lang/pr179.java: Updated comments.
	* testsuite/libjava.compile/inner_1.xfail: Removed.

2006-10-20  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.cni/cni.exp (gcj_cni_build_headers): Don't use
	jv-scan.
	* testsuite/lib/libjava.exp (test_libjava_from_javac): Removed.
	(find_jvscan): Removed.

2006-10-20  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jni/jni.exp (gcj_jni_build_header): Use
	-force.
	* testsuite/lib/libjava.exp (find_gcjh): Find 'gjavah' instead.
	* testsuite/libjava.cni/cni.exp (gcj_cni_build_headers): Pass -cni
	and -force to gcjh.
	* Makefile.in: Rebuilt.
	* Makefile.am (MYGCJH): Use gjavah.

2006-10-18  Tom Tromey  <tromey@redhat.com>

	PR classpath/28203:
	* java/lang/Class.java (getAnnotations): Rewrote.
	* java/lang/reflect/Method.java (METHOD_MODIFIERS): Now
	package-private.
	* java/lang/reflect/Field.java (FIELD_MODIFIERS): Now
	package-private.
	* gcj/field.h (_Jv_FIELD_CONSTANT_VALUE): Removed.
	* defineclass.cc (handleConstantValueAttribute): Added found_value
	argument.  Don't use _Jv_FIELD_CONSTANT_VALUE.
	(read_one_field_attribute): Updated.
	(read_fields): Likewise.
	(handleField): Mask with FIELD_MODIFIERS, not ALL_FLAGS.
	(handleMethod): Mask with METHOD_MODIFIERS, not ALL_FLAGS.

2006-10-17  Tom Tromey  <tromey@redhat.com>

	* defineclass.cc (handleMemberAnnotations): Write member index
	after 'kind'.
	(handleAnnotation): Call prepare_pool_entry.
	* java/lang/reflect/natMethod.cc (getDeclaredAnnotationsInternal):
	Removed unused variable.
	(getParameterAnnotationsInternal): Likewise.
	* java/lang/reflect/natField.cc (getDeclaredAnnotationsInternal):
	Removed unused variable.
	* java/lang/reflect/natConstructor.cc
	(getDeclaredAnnotationsInternal): Removed unused variable.
	(getParameterAnnotationsInternal): Likewise.
	* java/lang/natClass.cc (parseAnnotation): Create annotation.
	(parseAnnotationElement): Handle 'c' and 'e' cases more
	correctly.
	(getMethodDefaultValue): Fixed variable names.
	(parseAnnotationElement): Create String for 's' entry.
	* java/lang/reflect/Constructor.java (getAnnotation): New method.
	* java/lang/reflect/Field.java (getAnnotation): New method.
	* java/lang/reflect/Method.java (getAnnotation): New method.

2006-10-17  Tom Tromey  <tromey@redhat.com>

	* java/lang/natClass.cc (parseAnnotationElement): Expect a utf8
	constant in the "string" case.
	* defineclass.cc (handleAnnotationElement): Expect a utf8 constant
	in the "string" case.

2006-10-17  Tom Tromey  <tromey@redhat.com>

	* configure, Makefile.in: Rebuilt.
	* Makefile.am (install-exec-hook): Now unconditional.  Rename ecjx
	if needed.
	(jar_DATA): Add ecj jar when needed.
	(toolexec_PROGRAMS): New variable.
	(ecjx_SOURCES, ecjx_LDFLAGS, ecjx_LDADD, ecjx_DEPENDENCIES):
	Likewise.
	* prims.cc (JvRunMainName): New function.
	* include/jvm.h (JvRunMainName): Declare.
	* configure.ac: Added --with-ecj-jar.
	(ECJ_JAR): New subst.
	(ECJ_BUILD_JAR): Likewise.
	(INSTALL_ECJ_JAR): New conditional.
	(BUILD_ECJ1): Likewise.

2006-10-13  Tom Tromey  <tromey@redhat.com>

	* HACKING: Updated.
	* sources.am, Makefile.in: Rebuilt.
	* scripts/makemake.tcl (emit_bc_rule): Updated for class files in
	srcdir.
	(emit_package_rule): Likewise.
	(emit_process_package_rule): Likewise.
	* Makefile.am (gcjh.stamp): Conditional on MAINTAINER_MODE.  Put
	headers in srcdir.
	(libgcj-$(gcc_version).jar): Updated to find classes in source
	tree.
	(BOOTCLASSPATH): Likewise.
	(install-data-local): Likewise.
	Added all the .class and CNI .h files.

2006-10-12  Andrew Haley  <aph@redhat.com>

	* java/lang/natThreadLocal.cc: New file.
	* java/lang/ThreadLocal.java: Rewrite to use native TLS.
	* Makefile.am: Add java/lang/natThreadLocal.cc.
	* sources.am: Move classpath/java/lang/ThreadLocal.java to
	java/lang/ThreadLocal.java.

2006-10-11  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in, include/config.h.in, configure:
	Rebuilt.
	* Makefile.am (nat_source_files): Added natConfiguration.cc.
	* gnu/classpath/natConfiguration.cc: New file.
	* configure.ac (AWT_TOOLKIT): New define.
	(LIBGCJ_PREFIX): Likewise.
	* gnu/classpath/Configuration.java: New file.
	* sources.am: Rebuilt.
	* scripts/makemake.tcl: Don't special case Configuration.java.

2006-10-10  Tom Tromey  <tromey@redhat.com>

	* gcj/javaprims.h: Updated.
	* sources.am, Makefile.in: Rebuilt.
	* standard.omit.in: Removed process source files.
	* scripts/makemake.tcl: Removed ConcreteProcess special case.
	(emit_package_rule): Also special-case Process.
	(emit_process_package_rule): New proc.
	* Makefile.am (inner_nat_headers): Removed
	PLATFORM_INNER_NAT_HDRS.
	* configure: Rebuilt.
	* configure.ac (PLATFORM_INNER_NAT_HDRS): Removed subst.
	Don't create ConcreteProcess.java link.
	(PLATFORM): New subst.
	* java/lang/natWin32Process.cc: Updated.
	* java/lang/natPosixProcess.cc: Updated.
	* java/lang/natEcosProcess.cc: Updated.
	* java/lang/Win32Process.java (Win32Process): Renamed from
	ConcreteProcess.
	* java/lang/EcosProcess.java (EcosProcess): Renamed from
	ConcreteProcess.
	* java/lang/PosixProcess.java (PosixProcess): Renamed from
	ConcreteProcess.
	* include/win32.h (_Jv_platform_process): New define.
	* java/lang/natRuntime.cc (execInternal): Use
	_Jv_platform_process.
	* include/posix.h (_Jv_platform_process): New define.

2006-10-09  Andrew Haley  <aph@redhat.com>

	* win32-threads.cc (_Jv_ThreadUnpark, _Jv_ThreadPark): New
	functions.

2006-10-06  Tom Tromey  <tromey@redhat.com>

	PR libgcj/29278:
	* Makefile.in: Rebuilt.
	* Makefile.am ($(generic_header_files)): Depend on gcjh.stamp.
	(gcjh.stamp): New target.

2006-10-06  Andrew Haley  <aph@redhat.com>

	* posix-threads.cc (_Jv_ThreadUnpark, _Jv_ThreadPark): Moved here
	from sun/misc/natUnsafe.cc.
	* sun/misc/natUnsafe.cc (class spinlock): New class.
	(compareAndSwap): New methods.
	(compareAndSwapInt, compareAndSwapLong, compareAndSwapObject) 
	(putOrderedLong, putLongVolatile, putObjectVolatile, putLong) 
	(getIntVolatile, getObjectVolatile, getLong, getLongVolatile):
	Rewrite to use gcj's own atomic functions rather than gcc
	builtins.
	(unpark): Moved to posix-threads.cc
	(park): Likewise.
	* include/jvm.h (struct natThread::alive_flag): Moved here from
	Thread.java.
	(struct natThread): Likewise.
	* include/posix-threads.h: (_Jv_ThreadUnpark, _Jv_ThreadPark):
	moved here from sun/misc/natUnsafe.cc.
	* java/lang/natThread.cc (initialize_native): Set alive_flag here.
	(isAlive): Moved here from Thread.java.
	(interrupt): alive_flag is now in the natThread structure.
	(interrupt): Call _Jv_ThreadUnpark().
	(finish_): parkPermit and alive_flag are now in the natThread
	structure.
	(start): LIkewise.
	(_Jv_AttachCurrentThread): Likewise.
	* java/lang/Thread.java (alive_flag): Remove.
	(parkPermit): Likewise.
	(Thread): Don't set alive_flag.
	(isAlive): Make native.
	
2006-09-13  Andrew Haley  <aph@redhat.com>

	* Makefile.am: Add sun/reflect/natReflection.cc.
	* Makefile.in: Rebuild.
	* sun/reflect/natReflection.cc: New file.
	* sun/reflect/Reflection.java (getCallerClass): Now native.
	* stacktrace.cc (GetClassContext): Don't check the class if
	checkClass is NULL.
	
2006-09-12  Andrew Haley  <aph@redhat.com>

	* java/lang/Thread.java (alive_flag): Make it a byte.
	(THREAD_DEAD, THREAD_ALIVE, THREAD_SIGNALED): new constants.
	(parkPermit): New variable.
	(data): Now package private.
	(Thread): Set alive_flag to THREAD_DEAD, not false.
	(isAlive): Test against THREAD_DEAD.
	* java/lang/natThread.cc (initialize_native): Initialize
	park_mutex and park_cond.
	(finish_): Set parkPermit THREAD_PARK_DEAD.
	(interrupt): Rewrite.  Use an atomic update rather than a mutex to
	access alive_flag.
	If the thread is parked, unpark it.
	(start): Set alive_flag to THREAD_ALIVE, not true.
	(finalize_native): Destroy park_mutex and park_cond.
	* sun/misc/natUnsafe.cc (unpark): New method.
	(park): New method.
	* include/jvm.h (struct natThread): Moved here.

2006-06-07  Andrew Haley  <aph@redhat.com>
 
	* include/jvm.h (_Jv_Linker::maybe_adjust_signature): New.
	(_Jv_Linker::uaddr): New.
	* link.cc (resolve_pool_entry): Call search_method_in_superclasses
	instead of an open-coded loop around search_method_in_class.
	(search_method_in_class): Add a new arg, check_perms.
	(search_method_in_superclasses): New.
	(link_symbol_table): Call maybe_adjust_signature() to extract the
	least significnt bit of the signature pointer.	Do this three
	times, for instace method calls, static methods, and interfaces.
	Call search_method_in_superclasses() instead of
	_Jv_LookupDeclaredMethod.
	(typedef uaddr): Delete.
 
2006-09-11  Andrew Haley  <aph@redhat.com>

	* gij.cc (main): Remove bogus code that sets LTDL_SHLIBPATH_VAR
	and forks.

2006-06-16  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Don't
	copy the whole Class instance from the initializer: instead, copy
	everything but the first word (the vtable pointer).
	Change prototype to (const char* class_initializer).
	(_Jv_RegisterNewClasses): Change prototype to (const char**).
	* java/lang/Class.h (_Jv_RegisterNewClasses): Change prototype to
	(const char**).

2006-08-31  Tom Tromey  <tromey@redhat.com>

	PR libgcj/28698:
	* libgcj_bc.c (DECLARE_PRIM_TYPE): New macro.  Declare primitive
	classes.

2006-08-21  Bryce McKinlay  <mckinlay@redhat.com>

	* java/lang/natThread.cc (_Jv_AttachCurrentThread): Attach thread
	to GC.
	(_Jv_DetachCurrentThread): Detach thread from GC.
	* include/boehm-gc.h (_Jv_GCAttachThread, _Jv_GCDetachThread):
	Declare.
	* boehm.cc (_Jv_GCAttachThread): New function.
	(_Jv_GCDetachThread): Likewise.

2006-08-16  Jakub Jelinek  <jakub@redhat.com>
	    Bryce McKinlay  <bryce@mckinlay.net.nz>

	* configure, Makefile.in: Rebuilt.
	* Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj_bc.la.
	(libgcj_bc_la_SOURCES): New variable.
	(libgcj_bc_la_LDFLAGS): Likewise.
	(libgcj_bc_la_LIBADD): Likewise.
	(libgcj_bc_la_DEPENDENCIES): Likewise.
	(libgcj_bc_la_LINK): Likewise.
	(libgcj_bc_dummy_LINK): Likewise.
	(libgcj_bc.la): New target.
	(install-exec-hook): Likewise.
	* libgcj.spec.in (*lib): Use LIBGCJ_SPEC.
	* libgcj_bc.c: New file.
	* configure.ac (LIBGCJ_SPEC): New subst.
	* configure.host (use_libgcj_bc): New variable.

2006-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* link.cc:
	Increment loaded classes when printing verbose output.
	* gnu/java/lang/management/natVMMemoryMXBeanImpl.cc:
	Added comments.
	* gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc:
	(getMemoryManagerNames(jstring)): Implemented.
	(isValid(jstring)): Implemented.
	* gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc:
	(getLoadedClassCount()): Implemented.
	(getUnloadedClassCount()): Likewise.
	(isVerbose()): Likewise.
	(setVerbose(jboolean)): Likewise.
	* java/lang/management/natVMManagementFactory.cc:
	(getMemoryPoolNames()): Implemented.
	(getMemoryManagerNames()): Likewise.
	(getGarbageCollectorNames()): Likewise.
	* include/jvm.h:
	Add loaded and unloaded class counts.
	* defineclasses.c:
	Increment loaded classes count.
	* prims.cc:
	Add loaded and unloaded class counts.
	
2006-08-16  Tom Tromey  <tromey@redhat.com>

	* include/posix-threads.h (_Jv_MutexLock): No longer inline.
	* posix-threads.cc (_Jv_CondWait): Set thread's state.
	* include/jvm.h (class JvSetThreadState): New class.
	(JvThreadState): New enum.
	* java/lang/Thread.java (state): New field.
	* java/lang/natThread.cc (_Jv_ThreadRun): Use
	getUncaughtExceptionHandler.
	(start): Set state.
	(_Jv_AttachCurrentThread): Likewise.
	(finish_): Likewise.
	(getState): Wrote.

2006-08-15  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/runtime/natSharedLibLoader.cc (init): Added missing
	'::'.
	* gnu/gcj/convert/natIconv.cc (init): Added missing '::'.
	(read): Likewise.
	* gnu/gcj/natCore.cc (create): Added missing '::'.
	* gnu/classpath/natSystemProperties.cc (insertSystemProperties):
	Added missing '::'

2006-08-14  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj_la_LIBADD): Add LIBMAGIC.
	* java/net/natVMURLConnection.cc: Wrote, based on Classpath.
	* configure, config.h.in: Rebuilt.
	* configure.ac: Check for magic.h and -lmagic.

2006-08-14  Tom Tromey  <tromey@redhat.com>

	* java/lang/natThread.cc (getId): Removed.
	* java/lang/Thread.java (threadId): New field.
	(totalThreadsCreated): Likewise.
	(Thread): Set threadId.
	(getId): No longer native.

2006-08-14  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added new .cc files.
	(libgcj-$(gcc_version).jar): Include 'sun'.
	(src.zip): Likewise.
	* java/lang/natThread.cc (getId): New stub.
	(getState): Likewise.
	* scripts/makemake.tcl (emit_source_var): Use -decreasing when
	sorting.
	* gnu/java/lang/management/natVMMemoryMXBeanImpl.cc: New file.
	* gnu/java/lang/management/natVMCompilationMXBeanImpl.cc: New file.
	* gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc: New
	file.
	* gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc: New file.
	* gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc: New file.
	* gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc: New file.
	* gnu/java/lang/management/natVMThreadMXBeanImpl.cc: New file.
	* gnu/java/nio/natVMChannel.cc: New file.
	* gcj/javaprims.h: Updated.
	* sources.am: Likewise.
	* java/lang/management/natVMManagementFactory.cc: New file.
	* java/net/natVMURLConnection.cc: New file.
	* java/util/concurrent/atomic/natAtomicLong.cc: New file.
	* sun/misc/natUnsafe.cc: New file.

2006-08-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* libjava/Makefile.in,
	* libjava/sources.am:
	Regenerated.
	* libjava/scripts/makemake.tcl:
	Added gconf and dnd peers as BC.

2006-08-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* libjava/Makefile.in,
	* libjava/sources.am:
	Regenerated.
	* libjava/scripts/makemake.tcl:
	Added external/jsr166.
	
2006-08-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* libjava/configure,
	* libjava/Makefile.in:
	Regenerated.
	* libjava/scripts/makemake.tcl:
	Handle the Escher peers as we handle Qt.
	* libjava/gcj/Makefile.in:
	Regenerated.
	* libjava/configure.ac:
	Handle Escher peers and disable plugin when Gtk+ is not used.
	* libjava/sources.am:
	Regenerated.
	* libjava/classpath/gnu/java/awt/peer/x/fonts.properties:
	Removed (as recently on generics branch of Classpath).
	* libjava/include/Makefile.in,
	* libjava/testsuite/Makefile.in:
	Regenerated.
	
2006-07-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* libjava/Makefile.in:
	Regenerated.
	* libjava/scripts/classes.pl:
	Ignore .svn directories.
	* libjava/scripts/makemake.tcl:
	Include sun directory.
	* libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
	* libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
	* libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java,
	* libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java,
	* libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java,
	* libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
	* libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java,
	* libjava/gnu/java/nio/VMChannel.java:
	Copied over from classpath/vm/reference.
	* libjava/gnu/java/nio/channels/FileChannelImpl.java:
	(getNativeFD()): Implemented.
	* libjava/gcj/javaprims.h:
	Updated for generics merge from 20060709.
	* libjava/javax/naming/spi/NamingManager.java:
	Copied over from classpath/vm/reference.
	* libjava/sources.am:
	Regenerated.
	* libjava/java/lang/Thread.java:
	(getId()): Implemented.
	(getState()): Likewise.
	(getAllStackTraces()): Likewise.
	(getStackTrace()): Likewise.
	* libjava/java/lang/management/VMManagementFactory.java,
	* libjava/java/net/VMURLConnection.java:
	Copied over from classpath/vm/reference.	
	* libjava/classpath/vm/reference/java/lang/management/VMThreadInfo.java:
	Removed.
	* libjava/classpath/native/fdlibm/namespace.h:
	Changed back to GCJ LOCAL version.
	* libjava/sun/reflect/Reflection.java,
	* libjava/sun/reflect/misc/ReflectUtil.java,
	* libjava/sun/misc/Unsafe.java:
	Copied over from classpath/vm/reference.

2006-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* sources.am, Makefile.in: Rebuilt.
	* gnu/java/lang/management/VMRuntimeMXBeanImpl.java,
	* gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc:
	New files.
	* include/jvm.h:
	Add new variables used in prims.cc.
	* Makefile.am:
	Add natVMRuntimeMXBeanImpl.cc.
	* prims.cc:
	(_Jv_CreateJavaVM): Retain start time and input
	arguments.

2006-07-21  Tom Tromey  <tromey@redhat.com>

	PR libgcj/4105:
	* java/lang/natClass.cc (findInnerClassAttribute): New method.
	(findDeclaredClasses): Likewise.
	(getDeclaredClasses): Implemented.
	(getDeclaringClass): Likewise.
	(isAnonymousClass): Likewise.
	(isMemberClass): Likewise.
	(check_constant): Pass message in exception.  Allow resolved
	constants.
	(resolve_class_constant): New function.
	* defineclass.cc (read_one_class_attribute): Handle InnerClasses.
	* java/lang/Class.h (isAnonymousClass, isLocalClass,
	isMemberClass): Declare.
	* java/lang/Class.java (getSimpleName): Implemented.
	(isAnonymousClass, isLocalClass, isMemberClass): New methods.

2006-07-16  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.ac (JV_API_VERSION, JV_VERSION): Claim 1.5.

2006-07-12  Andrew Haley  <aph@redhat.com>

	* Makefile.am (java/lang/Object.lo): Add -fsource-filename.
	(java/lang/Class.lo): Likewise.
	* Makefile.in: Regenerate.

2006-07-07  Tom Tromey  <tromey@redhat.com>

	* defineclass.cc (input_data, input_offset): New fields.
	(reflection_data, data_stream): Likewise.
	(get_reflection_stream): New method.
	(_Jv_ClassReader): Initialize new fields.
	(parse): Call finish_reflection_data.
	(finish_reflection_data): New method.
	(handleEnclosingMethod): Likewise.
	(handleGenericSignature): Likewise.
	(handleAnnotationElement): Likewise.
	(handleAnnotation): Likewise.
	(handleAnnotations): Likewise.
	(handleMemberAnnotations): Likewise.
	(handleAnnotationDefault): Likewise.
	(handleParameterAnnotations): Likewise.
	(read_one_field_attribute): Handle new attributes.
	(read_one_method_attribute): Likewise.
	(read_one_class_attribute): Likewise.
	* include/jvm.h (resolve_method_entry): New method.
	* java/lang/Class.h (jv_attr_type, jv_attr_kind): New enums.
	(Class): Updated for new methods.  Field, Method, Constructor now
	friends.
	(reflection_data): New field.
	* java/lang/Class.java (asSubclass, cast): New methods.
	(getEnclosingClass, getEnclosingConstructor): Now native.
	(getEnclosingMethod): Likewise.
	(getClassSignature): New method.
	(getGenericInterfaces, getGenericSuperclass, getTypeParameters):
	Likewise.
	(Class): Implements AnnotatedElement.
	(getAnnotation, isAnnotationPresent, getAnnotations): New methods.
	(getDeclaredAnnotations): New method.
	(getDeclaredAnnotationsInternal): Likewise.
	* java/lang/reflect/natConstructor.cc (anno_a_t, anno_aa_t): New
	typedefs.
	(getSignature): New method.
	(getDeclaredAnnotationsInternal): Likewise.
	(getParameterAnnotationsInternal): Likewise.
	* java/lang/reflect/natField.cc (anno_a_t): New typedef.
	(getSignature): New method.
	(getDeclaredAnnotationsInternal): Likewise.
	* java/lang/reflect/natMethod.cc (anno_a_t, anno_aa_t): New
	typedefs.
	(getSignature): New method.
	(getDefaultValue): Likewise.
	(getDeclaredAnnotationsInternal): Likewise.
	(getParameterAnnotationsInternal): Likewise.
	* java/lang/reflect/Constructor.java (addTypeParameters):
	Genericized.
	(getSignature): Now native.
	(getDeclaredAnnotations, getDeclaredAnnotationsInternal,
	getParameterAnnotations, getParameterAnnotationsInternal): New
	methods.
	* java/lang/reflect/Field.java (getDeclaringClass, getType):
	Genericized.
	(getSignature): Now native.
	(getDeclaredAnnotations, getDeclaredAnnotationsInternal): New
	methods.
	* java/lang/reflect/Method.java (getReturnType): Genericized.
	(getParameterTypes, getExceptionTypes, getTypeParameters):
	Likewise.
	(getSignature): Now native.
	(getDefaultValue, getDeclaredAnnotations,
	getParameterAnnotations, getDeclaredAnnotationsInternal,
	getParameterAnnotationsInternal): New methods.
	* java/lang/natClass.cc (read_u1): New functions.
	(read_u2): Likewise.
	(read_4): New function.
	(getReflectionSignature): New methods.
	(getClassSignature): New method.
	(getEnclosingMethodData): Likewise.
	(getEnclosingClass): Likewise.
	(getEnclosingMethod): Likewise.
	(getEnclosingConstructor): Likewise.
	(check_constant): New function.
	(parseAnnotationElement): Likewise.
	(parseAnnotation): Likewise.
	(parseAnnotations): Likewise.
	(parseParameterAnnotations): Likewise.
	(getMethodDefaultValue): New method.
	(getDeclaredAnnotations): New methods.
	(getDeclaredAnnotationsInternal): New method.
	* boehm.cc (_Jv_MarkObj): Mark 'reflection_data' field.
	* link.cc (resolve_method_entry): New method.
	(resolve_pool_entry): Use it.

2006-07-07  Andrew Haley  <aph@redhat.com>

	* Makefile.am: Use -fsource-filename when compiling libgcj.
	* Makefile.in: Regenerate.

2006-06-23  Tom Tromey  <tromey@redhat.com>

	Merged in classpath-generics.
	* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (generic_header_files): Don't filter out omitted
	headers.
	(generic_header_files): Rewrote.
	(MYGCJH): New variable.
	Removed all .h rules.
	* headers.txt: New file.
	* java/io/PrintStream.java (PrintStream): Implement Appendable.
	* java/lang/Class.java: Genericized.
	(getEnumConstants): New method.
	(isEnum): Likewise.
	(isSynthetic): Likewise.
	(isAnnotation): Likewise.
	* java/lang/reflect/Constructor.java (getDeclaringClass,
	getTypeParameters, declaringClass): Genericized.
	* java/lang/reflect/Method.java (invoke): Now varargs.
	* java/lang/ref/Reference.java (Reference): Imported genericized
	version from Classpath.
	(get): Now native.
	* java/lang/ref/natReference.cc (get): New method.
	* java/lang/ProcessBuilder.java: New file.
	* java/lang/System.java (environmentMap): New field.
	(clearProperty): New method.
	(getenv): Likewise.
	(EnvironmentCollection): New class.
	(EnvironmentMap): Likewise.
	(EnvironmentSet): Likewise.
	* java/lang/StringBuilder.java (StringBuilder): Implements
	Appendable.
	* gnu/classpath/SystemProperties.java (remove): New method.

2006-06-23  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.loader/TestLeak.java: Don't use wildcard
	import for java.lang.reflect.

2006-06-21  Tom Tromey  <tromey@redhat.com>

	* gnu/classpath/natSystemProperties.cc (insertSystemProperties):
	Set java.class.version to 49.

2006-06-21  Tom Tromey  <tromey@redhat.com>

	* link.cc (resolve_pool_entry): Initialize field's declaring
	class, not its qualifying class.

2006-06-21  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jacks/jacks.xfail: Updated for ecj.

2006-06-20  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.compile/Where.xfail: Now 'no-link'.

2006-06-19  Tom Tromey  <tromey@redhat.com>

	* gnu/java/lang/natMainThread.cc (call_main): Link main class.

2006-06-19  Tom Tromey  <tromey@redhat.com>

	* testsuite/lib/libjava.exp (test_libjava): Don't compile via
	bytecode.  Run BC compilations from source.

2006-06-19  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.lang/TestProxy.java: Don't use wildcard
	imports for java.lang.reflect.

2006-06-13  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.lang/stringconst.xfail: Removed.
	* testsuite/libjava.lang/ArrayStore2.xfail: Removed.

2006-06-08  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (libgcj_la_LIBADD): Add Object.lo and Class.lo.
	(java/lang/Object.lo): New target.
	(java/lang/Class.lo): Likewise.
	* scripts/makemake.tcl (emit_package_rule): Add special case for
	Object and Class.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (gcj_dbtool_DEPENDENCIES): Add gcj_dbtool.lo.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (nat_headers): Don't list Main.h.
	(generic_header_files): Likewise.

2006-06-05  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.loader/TestLeak.java (MyLoader): Now static.
	* testsuite/libjava.jacks/jacks.exp (gcj_jacks_write): Use -w.
	* testsuite/lib/libjava.exp (libjava_arguments): Add -w.
	* testsuite/libjava.compile/G19990210_2.java: Removed.
	* testsuite/libjava.compile/PR208.java: Removed.
	* testsuite/libjava.compile/PR208.xfail: Removed.
	* testsuite/libjava.compile/support/Case.java: Removed.
	* testsuite/libjava.compile/Case.java: Removed.

2006-06-04  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (gcj_dbtool_LDADD): Add
	gnu-gcj-tools-gcj_dbtool.lo.
	(gcj_dbtool_SOURCES): Updated.
	(EXTRA_libgcj_la_SOURCES): New macro.
	* scripts/makemake.tcl (emit_package_rule): Compile class files
	from the package.
	(gcj_dbtool/Main.java, Class.java, Object.java): Removed
	package_map settings.
	(emit_package_rule): Special case gnu.gcj.tools.gcj_dbtool.

2006-06-04  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (getClassLoaderInternal): Now native.

2006-12-20  Adam Megacz <megacz@cs.berkeley.edu>

       * configure.ac: add $built_gcc_dir to $GCJH and $GCJ when
       crossbuilding.
        * configure: Regenerate.

2006-12-18  Adam Megacz <megacz@cs.berkeley.edu>

        * Makefile.am: remove @X_CFLAGS@ from AM_CXXFLAGS; it causes
        -I/usr/include to wind up in cross-builds
        * configure: Regenerate.

2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure: Regenerate.

2006-11-27  Mike Stump  <mrs@apple.com>

	* sysdep/x86-64/locks.h: Enable use of either file on either
	target to support multilibs from one to the other.
	* sysdep/i386/locks.h: Likewise.

2006-11-21  Gary Benson  <gbenson@redhat.com>

	* java/security/Security.java: Merge with classpath.
	* java/lang/Package.java: Likewise.
	* java/lang/Class.java (getDeclaredAnnotations): New method.

2006-11-20  David Daney  <ddaney@avtrex.com>

	* include/mips-signal.h (sys/syscall.h): Do not include.
	(sig_ucontext_t): Removed.
	(MAKE_THROW_FRAME): Changed to be a nop.
	(_INIT_SIG_HANDLER): New macro.
	(INIT_SEGV): Rewrote to use _INIT_SIG_HANDLER.
	(INIT_FPE): Same.

2006-11-20  David Daney  <ddaney@avtrex.com>

	* testsuite/libjava.lang/Throw_3.java: New Test.
	* testsuite/libjava.lang/Throw_3.out: Its expected output.

2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-11-03  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java: Removed.
	* java/net/natInetAddressNoNet.cc: Likewise.
	* java/net/natInetAddressPosix.cc: Likewise.
	* java/net/natInetAddressWin32.cc: Likewise.
	* java/net/VMInetAddress.java (getLocalHostname,
	lookupInaddrAny, getHostByAddr, getHostByName,
	aton): Replace glue methods with native ones.
	* java/net/natVMInetAddressNoNet.cc: New file.
	* java/net/natVMInetAddressPosix.cc: Likewise.
	* java/net/natVMInetAddressWin32.cc: Likewise.
	* Makefile.am, configure.ac: Reflect the above.
	* sources.am, Makefile.in, configure: Rebuilt.

	* java/net/natVMNetworkInterfaceWin32.cc
	(winsock2GetRealNetworkInterfaces): Create InetAddress
	objects using InetAddress.getByAddress.
	* gnu/java/net/natPlainSocketImplWin32.cc
	(accept, getOption): Likewise.
	* gnu/java/net/natPlainDatagramSocketImplWin32.cc
	(peekData, receive, getOption): Likewise.

2006-11-02  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/natVMMethod.cc (getLineTable): Implement.

2006-11-02  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (_Jv_JVMTI_GetLineNumberTable): New function.
	(_Jv_JVMTI_Interface): Define GetLineNumberTable.

2006-11-01  Keith Seitz  <keiths@redhat.com>

	* gnu/gcj/jvmti/Location.java: New file.
	* gnu/gcj/jvmti/BreakpointManager.java: New file.
	* jvmti.cc (_Jv_JVMTI_SetBreakpoint): New function.
	(_Jv_JVMTI_ClearBreakpoint): New function.
	(_Jv_JVMTI_Interface): Define SetBreakpoint and ClearBreakpoint.
	* sources.am: Regenerated.
	* Makefile.in: Regenerated.

2006-10-28  Keith Seitz  <keiths@redhat.com>

	* Makefile.am (nat_source_files): Add natBreakpoint.cc.
	* sources.am: Regenerated.
	* Makefile.in: Regenerated.
	* gnu/gcj/jvmti/Breakpoint.java: New file.
	* gnu/gcj/jvmti/natBreakpoint.java: New file.

2006-10-27  Keith Seitz  <keiths@redhat.com>

	* include/java-stack.h (ncodeMap): Declare.
	(_Jv_StackTrace): Make _Jv_GetMethodDeclaringClass friend.
	* java/lang/Class.h (_Jv_GetMethodDeclaringClass): Declare.
	* java/lang/natClass.cc (_Jv_GetMethodDeclaringClass): New
	function.
	* stacktrace.cc (ncodeMap): Redefine from file global to global
	for class _Jv_StackTrace.
	(_Jv_StackTrace::UpdateNCodeMap): Add interpreted classes, too,
	so that _Jv_GetMethodDeclaringClass can find them all.
	(_Jv_StackTrace::ClassForFrame): Exclude interpreted classes.
	* jvmti.cc (_Jv_JVMTI_GetMethodDeclaringClass): New function.
	(_Jv_JVMTI_Interface): Define GetMethodDeclaringClass function.

2006-10-25  Andreas Tobler  <a.tobler@schweiz.org>

	* testsuite/libjava.jvmti/natevents.cc (do_callback_arg_tests): Replace
	formatting modifiers %p with %#llx and cast the arguments.

2006-10-20  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jvmti/natevents.cc (do_callback_arg_tests):
	Correctly pass jvalues.

2006-10-18  Tom Tromey  <tromey@redhat.com>
	    Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.jni/register2.java: New file.
	* testsuite/libjava.jni/register2.out: New file.
	* testsuite/libjava.jni/register2.c: New file.
	* java/lang/natClass.cc (_Jv_GetClassNameUtf8): New function.
	* java/lang/Class.h (_Jv_GetClassNameUtf8): Declare.
	* jni.cc (struct NativeMethodCacheEntry): New struct.
	(nathash): Changed type.
	(hash): Updated.
	(nathash_find_slot): Likewise.
	(nathash_find): Likewise.
	(natrehash): Likewise.
	(nathash_add): Likewise.
	(_Jv_JNI_RegisterNatives): Likewise.
	(_Jv_LookupJNIMethod): Likewise.
	Idea from Juerg Lehni <juerg@scratchdisk.com>

2006-10-16  Geoffrey Keating  <geoffk@apple.com>

	* testsuite/libjava.jvmti/natevents.cc (env): Delete.
	(ExceptionCB): Fix types for printf arguments.
	(ExceptionCatchCB): Likewise.
	(SingleStepCB): Likewise.
	(BreakpointCB): Likewise.
	(FieldAccessCB): Likewise.
	(FieldModificationCB): Likewise.
	(CompiledMethodLoadCB): Likewise.

2006-10-14  Keith Seitz  <keiths@redhat.com>

	* include/java-insns.h (enum java_code): Add op_breakpoint.
	* include/java-interp.h (_Jv_InterpMethod): Declare breakpoint_insn.
	[INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_slot.
	[!INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_opcode.
	(install_break): Declare.
	* interpret.cc (breakpoint_insn): Define breakpoint insn.
	(compile): Add op_breakpoint to "can't happen" cases.
	[INTERPRETER] Initialize breakpoint insn if necessary.
	(install_break): New method.
	* interpret-run.cc: Add op_breakpoint to insn_targets.
	Add insn_breakpoint label.
	* verify.cc (branch_prepass): Add op_breakpoint to unrecognized
	opcodes section of switch statement.
	(verify_instructions_0): Likewise.

2006-10-12  Keith Seitz  <keiths@redhat.com>

	* include/jvmti-int.h (JVMTI): Declare all members "extern".
	* jvmti.cc (JVMTI): Define.

2006-10-11  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (install-data-local): Use mkinstalldirs.

2006-10-10  Tom Tromey  <tromey@redhat.com>

	* gnu/classpath/natSystemProperties.cc (insertSystemProperties):
	Removed obsolete comment.

2006-10-10  Keith Seitz  <keiths@redhat.com>

	* include/java-interp.h (_Jv_InterpMethod::get_insn): Declare.
	(_Jv_InterpMethod::set_insn): Declare.
	* interpret.cc (_Jv_InterpMethod::get_insn): New method.
	(_Jv_InterpMethod::get_insn): New method.

2006-10-10  Tom Tromey  <tromey@redhat.com>

	* prims.cc (_Jv_PrependVersionedLibdir): Use
	_Jv_platform_path_separator.

2006-10-10  Tom Tromey  <tromey@redhat.com>

	PR libgcj/29205:
	* Makefile.in: Rebuilt.
	* Makefile.am (install-data-local): Install the .pc file.
	(pkgconfig_DATA): Removed.

2006-10-03  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java
	(<clinit>): Reorder the static initializers.

2006-10-02  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java
	(checkConnect): Reinstated.
	(loopbackAddress): Ensure initialized from non-null object.

2006-09-30  Keith Seitz  <keiths@redhat.com>

	* include/java-interp.h (prepared): Change type to pc_t.
	(insn_index): Define for both DIRECT_THREADED and bytecode interpreters.
	* interpret.cc [!DIRECT_THREADED] (POKEI): Fix typo.
	(insn_index): Implement for bytecode interpreter.
	* interpret-run.cc [!DIRECT_THREADED] (AVAL1U): Add _Jv_Linker class
	qualifier to resolve_pool_entry.
	[!DIRECT_THREADED] (AVAL2U): Likewise.
	[!DIRECT_THREADED] bytecode() cannot be called without an object.
	Changed all typos.
	[!DIRECT_THREADED] Likewise for defining_class.

2006-09-26  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/26792:
	* exception.cc (PERSONALITY_FUNCTION): use _Unwind_GetIP
	if HAVE_GETIPINFO not defined.
	* stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Likewise.
	(_Jv_StackTrace::getLineNumberForFrame): Likewise.
	* configure.ac: use GCC_CHECK_UNWIND_GETIPINFO.
	* aclocal.m4, configure, include/config.h.in, Makefile.in:
	Rebuilt.

2006-09-27  Tom Tromey  <tromey@redhat.com>

	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=201712
	* java/util/Locale.java (hashcode): No longer transient.
	(writeObject): Use ObjectOutputStream.PutField and
	defaultWriteObject.
	(readObject): Use defaultReadObject.

2006-09-25  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/VMVirtualMachine.java
	(_jdwp_suspend_counts): New private variable.
	* gnu/classpath/jdwp/natVMVirtualMachine.cc
	(initialize): Initialize _jdwp_suspend_counts.
	(suspendThread): Implement.
	(resumeThread): Implement.
	(getSuspendCount): Implement.

2006-09-22  Marco Trudel  <mtrudel@gmx.ch>

	* jvmti.cc (_Jv_JVMTI_GetErrorName): Now static.  Marked JNICALL.

2006-09-21  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (_Jv_JVMTI_DisposeEnvironment): Check for enabled
	events.
	(check_enabled_event): New function.
	(check_enabled_events): New function.
	(post_event): New function.
	(_Jv_JVMTI_SetEventNotificationMode): New function.
	(_Jv_JVMTI_SetEventCallbacks): New function.
	(_Jv_JVMTI_Interface): Define SetEventNotificationMode and
	SetEventCallbacks members.
	* include/jvmti-int.h: New file.
	* include/jvmti_md.h (EVENT_SLOTS) [__GCJ_JNI_IMP__]: Define.
	(_CLASSPATH_JVMTIENV_CONTENTS) [__GCJ_JNI_IMPL__]: Define.
	* testsuite/libjava.jvmti/events.java: New file.
	* testsuite/libjava.jvmti/events.out: New file.
	* testsuite/libjava.jvmti/natevents.cc: New file. 

2006-09-21  Sandro Tolaini  <tolaini@libero.it>

	* configure.ac: Don't use darwin-signal.h as signal handler for
	Darwin/i386.
	* configure.host: Enable Darwin/i386 as a supported host, with no
	signal unwinding.

2006-09-20  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (_Jv_JVMTI_CreateRawMonitor): Use _Jv_MallocUnchked
	and return JVMTI_ERROR_OUT_OF_MEMORY if necessary.
	(_Jv_JVMTI_GetClassMethods): Likewise.
	(_Jv_JVMTI_GetClassLoaderClasses): Likewise.
	(_Jv_JVMTI_GetJNIFunctionTable): Likewise.
	(_Jv_JVMTI_GetSystemProperty): Likewise.

2006-09-20  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (_Jv_JVMTI_GetErrorName): New function.
	(_Jv_JVMTI_Interface): Define GetErrorName member.
	* testsuite/libjava.jvmti/geterrorname.java: New file.
	* testsuite/libjava.jvmti/geterrorname.out: New file.
	* testsuite/libjava.jvmti/natgeterrorname.cc: New file.

2006-09-20  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java: Mostly merged with Classpath.
	* java/net/VMInetAddress.java: New file.
	* sources.am, Makefile.in: Rebuilt.

	* java/net/natVMNetworkInterfacePosix.cc
	(getInterfaces): Create InetAddress objects using
	InetAddress.getByAddress.
	* gnu/java/net/natPlainSocketImplPosix.cc
	(accept, getOption): Likewise.
	* gnu/java/net/natPlainDatagramSocketImplPosix.cc
	(peekData, receive, getLocalAddress): Likewise.

2006-09-19  Keith Seitz  <keiths@redhat.com>

	* testsuite/libjava.jvmti/jvmti.exp: New file.

2006-09-19  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (THREAD_DEFAULT_TO_CURRENT): Clarify parameter list.
	(THREAD_CHECK_VALID): Likewise.
	(THREAD_CHECK_ALIVE): Likewise.
	(_Jv_JVMTI_SuspendThread): Call THREAD_CHECK_VALID on a Thread not
	jthread.
	(_Jv_JVMTI_ResumeThread): Likewise.
	(_Jv_JVMTI_InterruptThread): Likewise.

	(_Jv_JVMTI_DisposeEnvironment): Probably unwise to dereference an object
	that was just freed.

2006-09-19  Mark Wielaard  <mark@klomp.org>

	Fixes bug #29137
	* java/util/logging/LogManager.java (addLogger): Always check for
	existing children of a new Logger.

2006-09-19  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/LogManager.java: Re-merged with Classpath.

2006-09-18  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.

2006-09-18  Petr Salinger  <Petr.Salinger@seznam.cz>

	* configure.host: Handle kfreebsd.

2006-09-18  Petr Salinger  <Petr.Salinger@seznam.cz>

	* configure: Rebuilt.
	* shlibpath.m4: Handle GNU/kFreeBSD.

2006-09-14  Tom Tromey  <tromey@redhat.com>

	PR boehm-gc/29068:
	* boehm.cc (_Jv_GCAttachThread): Disable on Solaris.
	(_Jv_GCDetachThread): Likewise.

2006-09-14  Andreas Schwab  <schwab@suse.de>

	* posix-threads.cc: Include "posix.h".

2006-09-13  Geoffrey Keating  <geoffk@apple.com>

	* posix.cc (_Jv_platform_nanotime): Return nanoseconds, not
	microseconds; use gettimeofday when available.
	* posix-threads.cc (_Jv_CondWait): Improve accuracy and range of
	timeout calculation.
	* testsuite/libjava.lang/Thread_Sleep_2.java: New.
	* testsuite/libjava.lang/Thread_Sleep_2.out: New.
	* testsuite/libjava.lang/Thread_Sleep_2.xfail: New.

2006-09-12  Tom Tromey  <tromey@redhat.com>

	PR java/29013:
	* testsuite/libjava.lang/PR29013.out: Likewise.
	* testsuite/libjava.lang/PR29013.java: New file.

2006-09-12  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jacks/jacks.exp (load_gcc_lib): Removed.

2006-09-07  Matthias Klose  <doko@debian.org>

	* Makefile.am (AM_CXXFLAGS): Remove duplicate define.
	* Makefile.in: Regenerate.

2006-09-06  Keith Seitz  <keiths@redhat.com>

	* java/lang/Class.h (_Jv_FindInterpreterMethod): Change return type
	to _Jv_MethodBase instead of _Jv_InterpMethod.
	* java/lang/natClass.cc (_Jv_FindInterpreterMethod): Likewise.
	Do not check access flags.
	Fix some minor style anomalies.
	
2006-09-01  Geoffrey Keating  <geoffk@apple.com>

	* testsuite/libjava.jni/jni.exp (gcj_jni_invocation_test_one):
	Pass -lgcj to linker for C++ files on Darwin.

2006-09-01  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (THREAD_DEFAULT_TO_CURRENT): Encapsulate in do..while loop.
	(THREAD_CHECK_VALID): Likewise.
	(THREAD_CHECK_IS_ALIVE): Likewise.
	(NULL_CHECK): Likewise.
	(ILLEGAL_ARGUMENT): Likewise.

2006-09-01  Keith Seitz  <keiths@redhat.com>

	* include/jvm.h (_Jv_JVMTI_Init): Declare.
	* jvmti.cc (_Jv_JVMTI_Init): New function.
	* prims.cc (_Jv_CreateJavaVM): Initialize JVMTI.

	* jvmti.cc (ILLEGAL_ARGUMENT): New macro.
	(_Jv_JVMTI_Allocate): Use ILLEGAL_ARUMENT.

	* jvmti.cc (_jvmtiEnvironments): New linked list of
	JVMTI environments.
	(FOREACH_ENVIRONMENT): New macro.
	(_envListLock): New object to act as synchronization lock
	for _jvmtiEnvironments.
	(_Jv_JVMTI_DisposeEnvironment): Check for NULL environment.
	Remove the environment from the list of known environments.
	(_Jv_GetJVMTIEnv): Add the new environment to the list
	of known environments.

2006-09-01  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java (getLocalHost): Refactor to avoid
	security check if getLocalHostname() fails and to provide more
	meaningful exceptions it the security check fails.

2006-09-01  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java (getByAddress): Create Inet4Address
	objects when passed IPv4-mapped IPv6 addresses.
	(getByName, getAllByName): Defer to the above to ensure that the
	correct Inet*Address objects are returned.

2006-09-01  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java (getByName, getAllByName):
	Only perform security check when DNS lookups are required.

2006-08-31  Keith Seitz  <keiths@redhat.com>

	* include/jvmti_md.h: New file.

	* jvmti.cc (_Jv_JVMTI_RawMonitorWait): Add millis parameter.
	Pass millis to _Jv_CondWait.

2006-08-31  Tom Tromey  <tromey@redhat.com>

	PR libgcj/28698:
	* libgcj_bc.c (DECLARE_PRIM_TYPE): New macro.  Declare primitive
	classes.

2006-08-24  Keith Seitz  <keiths@redhat.com>

	* prims.cc (remoteDebug): New global.
	(jdwpOptions): New global.
	(parse_x_arg): Add processing for "X" options "debug" and
	"runjdwp:"
	(_Jv_RunMain): If debugging, start up JDWP backend.
	Send VM_INIT and VM_DEATH when appropriate.

2006-08-23  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/VMVirtualMachine.java
	(initialize): Declare.
	* gnu/classpath/jdwp/natVMVirtualMachine.cc
	(initialize): Get and save JVMTI environment.

2006-08-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/27890
	* gnu/classpath/natSystemProperties.cc (insertSystemProperties):
	Set gnu.classpath.home.url to TOOLEXECLIBDIR.
	* configure.ac: Do not add --with-native-libdir to
	ac_configure_args.
	* java/security/libgcj.security: Remove file.
	* java/util/logging/logging.properties: Likewise.
	* classpath/m4/acinclude.m4 (CLASSPATH_TOOLEXECLIBDIR): New macro.
	* classpath/resource/Makefile.am (loggingdir): Define to
	toolexeclibdir.
	(securitydir): Likewise.
	* classpath/configure.ac: Call CLASSPATH_TOOLEXECLIBDIR.
	Set default nativeexeclibdir using toolexeclibdir.
	* HACKING: Fix classpath aclocal arguments.
	* Makefile.am (secdir): Remove variable.
	(propdir): Likewise.
	(AM_CXXFLAGS): Replace LIBDIR definition with TOOLEXECLIBDIR
	definition.
	(all_property_files): Remove variable.
	(install-data-local): Do not install libgcj.security or
	logging.properties.
	* configure, Makefile.in, classpath/configure,
	classpath/Makefile.in, classpath/native/jni/java-lang/Makefile.in,
	classpath/native/jni/midi-alsa/Makefile.in,
	classpath/native/jni/classpath/Makefile.in,
	classpath/native/jni/midi-dssi/Makefile.in,
	classpath/native/jni/Makefile.in,
	classpath/native/jni/java-nio/Makefile.in,
	classpath/native/jni/java-net/Makefile.in,
	classpath/native/jni/gconf-peer/Makefile.in,
	classpath/native/jni/java-io/Makefile.in,
	classpath/native/jni/xmlj/Makefile.in,
	classpath/native/jni/java-util/Makefile.in,
	classpath/native/jni/qt-peer/Makefile.in,
	classpath/native/jni/gtk-peer/Makefile.in,
	classpath/native/Makefile.in, classpath/native/jawt/Makefile.in,
	classpath/native/target/Linux/Makefile.in,
	classpath/native/target/Makefile.in,
	classpath/native/target/generic/Makefile.in,
	classpath/native/fdlibm/Makefile.in,
	classpath/native/plugin/Makefile.in,
	classpath/resource/Makefile.in, classpath/scripts/Makefile.in,
	classpath/tools/Makefile.in, classpath/doc/Makefile.in,
	classpath/doc/api/Makefile.in, classpath/lib/Makefile.in,
	classpath/external/Makefile.in,
	classpath/external/sax/Makefile.in,
	classpath/external/w3c_dom/Makefile.in,
	classpath/external/relaxngDatatype/Makefile.in,
	classpath/include/Makefile.in, classpath/aclocal.m4,
	classpath/examples/Makefile.in, aclocal.m4: Regenerate.

2006-08-21  Bryce McKinlay  <mckinlay@redhat.com>

	* java/lang/natThread.cc (_Jv_AttachCurrentThread): Attach thread
	to GC.
	(_Jv_DetachCurrentThread): Detach thread from GC.
	* include/boehm-gc.h (_Jv_GCAttachThread, _Jv_GCDetachThread):
	Declare.
	* boehm.cc (_Jv_GCAttachThread): New function.
	(_Jv_GCDetachThread): Likewise.

2006-08-19  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* sysdep/i386/backtrace.h (fallback_backtrace): Add "0x55 0x8B 0xEC"
	as another sequence that can indicate a "pushl %ebp; movl %esp, %ebp"
	function prologue.

2006-08-17  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (install-exec-hook): Support $(DESTDIR).
	* Makefile.in: Regenerated.

2006-08-16  Tom Tromey  <tromey@redhat.com>

	* libtool-version: Updated.

2006-08-16  Jakub Jelinek  <jakub@redhat.com>
	    Bryce McKinlay  <bryce@mckinlay.net.nz>

	* configure, Makefile.in: Rebuilt.
	* Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj_bc.la.
	(libgcj_bc_la_SOURCES): New variable.
	(libgcj_bc_la_LDFLAGS): Likewise.
	(libgcj_bc_la_LIBADD): Likewise.
	(libgcj_bc_la_DEPENDENCIES): Likewise.
	(libgcj_bc_la_LINK): Likewise.
	(libgcj_bc_dummy_LINK): Likewise.
	(libgcj_bc.la): New target.
	(install-exec-hook): Likewise.
	* libgcj.spec.in (*lib): Use LIBGCJ_SPEC.
	* libgcj_bc.c: New file.
	* configure.ac (LIBGCJ_SPEC): New subst.
	* configure.host (use_libgcj_bc): New variable.

2006-08-15  Kyle Galloway  <kgallowa@redhat.com>

	* include/java-interp.h (_Jv_InterpMethod::run_debug): New method.
	* interpret.cc: Added placeholder for debug variable type info to STORE*
	macros.
	(_Jv_InterpMethod::run_debug): New method.
	(_Jv_InterpMethod::run_sync_object_debug): New method.
	(_Jv_InterpMethod::run_sync_class_debug): New method.
	(_Jv_InterpMethod::run_normal_debug): New method.
	(_Jv_InterpMethod::run_class_debug): New method.
	(_Jv_InterpMethod::ncode ()): Changed to select either debug or normal
	versions of these functions.
	* interpret-run.cc: New file, holds contents of old 	
	_Jv_InterpMethod::run method.
	* stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Changed to select
	appropriate function for debug or normal mode.

2006-08-14  Mark Wielaard  <mark@klomp.org>

	Imported GNU Classpath 0.92
	* HACKING: Add more importing hints. Update automake version
	requirement.

	* configure.ac (gconf-peer): New enable AC argument.
	Add --disable-gconf-peer and --enable-default-preferences-peer
	to classpath configure when gconf is disabled.
	* scripts/makemake.tcl: Set gnu/java/util/prefs/gconf and
	gnu/java/awt/dnd/peer/gtk to bc. Classify
	gnu/java/security/Configuration.java as generated source file.

	* gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
	gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
	gnu/java/lang/management/VMClassLoadingMXBeanImpl.java,
	gnu/java/lang/management/VMRuntimeMXBeanImpl.java,
	gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java,
	gnu/java/lang/management/VMThreadMXBeanImpl.java,
	gnu/java/lang/management/VMMemoryMXBeanImpl.java,
	gnu/java/lang/management/VMCompilationMXBeanImpl.java: New VM stub
	classes.
	* java/lang/management/VMManagementFactory.java: Likewise.
	* java/net/VMURLConnection.java: Likewise.
	* gnu/java/nio/VMChannel.java: Likewise.

	* java/lang/Thread.java (getState): Add stub implementation.
	* java/lang/Class.java (isEnum): Likewise.
	* java/lang/Class.h (isEnum): Likewise.

	* gnu/awt/xlib/XToolkit.java (getClasspathTextLayoutPeer): Removed.

	* javax/naming/spi/NamingManager.java: New override for StackWalker
	functionality.

	* configure, sources.am, Makefile.in, gcj/Makefile.in,
	include/Makefile.in, testsuite/Makefile.in: Regenerated.

2006-08-14  Gary Benson  <gbenson@redhat.com>

	* java/lang/Thread.java (accessControlState): New field.
	* java/security/VMAccessControlState.java: New file.
	* java/security/natVMAccessControlState.cc: Likewise.
	* java/security/VMAccessController.java
	(contexts, inGetContext): Removed.
	(pushContext, popContext, getContext): Use VMAccessControlState.
	* Makefile.am (nat_source_files): Updated.
	* sources.am, Makefile.in: Rebuilt.

2006-08-10  Gary Benson  <gbenson@redhat.com>

	* include/java-stack.h (GetAccessControlStack): Change return
	type.
	* stacktrace.cc (accesscontrol_trace_fn): Record the number of
	Java frames encountered.
	(GetAccessControlStack): Return a flag indicating whether a call to
	doPrivileged was encountered rather than an array of method names.
	* java/security/natVMAccessController.cc (getStack): Change return
	type.
	* java/security/VMAccessController.java (getStack): Likewise.
	(getContext): Change to reflect the above.

2006-08-09  Gary Benson  <gbenson@redhat.com>

	* stacktrace.cc (accesscontrol_trace_fn): Skip non-Java frames.

2006-08-09  Gary Benson  <gbenson@redhat.com>

	* java/lang/System.java (setSecurityManager): Javadoc fix.
	* java/security/VMAccessController.java (getContext): Comment fix.

2006-08-09  Gary Benson  <gbenson@redhat.com>

	* include/java-stack.h (accesscontrol_trace_fn): Declare.
	(GetAccessControlStack): Likewise.
	(GetClassMethodStack): Remove.
	* stacktrace.cc (accesscontrol_trace_fn): New method.
	(GetAccessControlStack): Likewise.
	(GetClassMethodStack): Remove.
	* java/security/natVMAccessController.cc (getStack): Use
	GetAccessControlStack.

2006-08-07  Gary Benson  <gbenson@redhat.com>

	PR libgcj/28340:
	* java/lang/ClassLoader.java (clinit): Install a default
	security manager if java.security.manager is defined.
	(getParent, getSystemClassLoader): Use the correct stack
	frame during security checks.
	* java/net/URLClassLoader.java (findClass): Avoid calling
	this.toString() during VM initialization.
	(runtimeInitialized): New method.
	* java/net/natURLClassLoader.cc: New file.
	* Makefile.am (nat_source_files): Added the above.
	* Makefile.in: Rebuilt.

2006-08-07  Gary Benson  <gbenson@redhat.com>
	    Casey Marshall <csm@gnu.org>

	* java/lang/SecurityManager.java (getSecurityContext,
	checkPermission, checkAccess, checkRead, checkConnect,
	checkPackageAccess, checkPackageDefinition, checkPackageList):
	Merge with Classpath.
	(SecurityContext): Remove.

2006-08-07  Gary Benson  <gbenson@redhat.com>

	* java/security/VMAccessController.java (pushContext, popContext,
	getContext): Use Thread.currentThread() to determine when we're
	bootstrapping.
	(runtimeInitialized): Remove.
	* java/security/natVMAccessController.cc (runtimeInitialized):
	Remove.

2006-08-06  Tom Tromey  <tromey@redhat.com>

	PR libgcj/28491:
	* configure, include/config.h.in: Rebuilt.
	* configure.ac: Look for ifaddrs.h, getifaddrs.
	* java/net/natVMNetworkInterfacePosix.cc (getInterfaces): Use
	getifaddrs if available.

2006-08-06  Tom Tromey  <tromey@redhat.com>

	PR libgcj/28576:
	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (connect):
	Implemented.
	(disconnect): Likewise.
	(send): Handle already-connected case.

2006-08-04  Mark Wielaard  <mark@klomp.org>

	* jvmti.cc: Include gcj/method.h.

2006-08-04  Tom Tromey  <tromey@redhat.com>

	* jvmti.cc: Added MAYBE_UNUSED to 'env' parameters.
	(_Jv_JVMTI_GetObjectSize): Cast _Jv_GetArrayElementFromElementType
	result to _Jv_uintptr_t.

2006-08-01  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/VMFrame.java: Update to Classpath 0.91.
	* gnu/classpath/jdwp/VMIdManager.java: Likewise.
	* gnu/classpath/jdwp/VMMethod.java: Likewise.
	* gnu/classpath/jdwp/VMVirtualMachine: Likewise.
	* gnu/classpath/jdwp/natVMFrame.java: New file.
	* gnu/classpath/jdwp/natVMMethod.java: New file.
	* gnu/classpath/jdwp/natVMVirtualMachine.java: New file.
	* Makefile.am (nat_source_files): Add new filles.
	* Makefile.in: Regenerated.

2006-08-03  Tom Tromey  <tromey@redhat.com>

	* jvmti.cc (REQUIRE_PHASE): New macro.
	(_Jv_JVMTI_InterruptThread): New function.
	(_Jv_JVMTI_CreateRawMonitor): Likewise.
	(_Jv_JVMTI_DestroyRawMonitor): Likewise.
	(_Jv_JVMTI_RawMonitorEnter): Likewise.
	(_Jv_JVMTI_RawMonitorExit): Likewise.
	(_Jv_JVMTI_RawMonitorWait): Likewise.
	(_Jv_JVMTI_RawMonitorNotify): Likewise.
	(_Jv_JVMTI_RawMonitorNotifyAll): Likewise.
	(_Jv_JVMTI_Allocate): Likewise.
	(_Jv_JVMTI_Deallocate): Likewise.
	(_Jv_JVMTI_GetClassModifiers): Likewise.
	(_Jv_JVMTI_GetClassMethods): Likewise.
	(_Jv_JVMTI_IsInterface): Likewise.
	(_Jv_JVMTI_IsArrayClass): Likewise.
	(_Jv_JVMTI_GetClassLoader): Likewise.
	(_Jv_JVMTI_GetObjectHashCode): Likewise.
	(_Jv_JVMTI_GetFieldModifiers): Likewise.
	(_Jv_JVMTI_IsFieldSynthetic): Likewise.
	(_Jv_JVMTI_GetMethodModifiers): Likewise.
	(_Jv_JVMTI_IsMethodNative): Likewise.
	(_Jv_JVMTI_IsMethodSynthetic): Likewise.
	(_Jv_JVMTI_GetClassLoaderClasses): Likewise.
	(_Jv_JVMTI_ForceGarbageCollection): Likewise.
	(_Jv_JVMTI_GetSystemProperty): Likewise.
	(_Jv_JVMTI_SetSystemProperty): Likewise.
	(_Jv_JVMTI_GetTime): Likewise.
	(_Jv_JVMTI_GetAvailableProcessors): Likewise.
	(_Jv_JVMTI_AddToBootstrapClassLoaderSearch): Likewise.
	(_Jv_JVMTI_SetVerboseFlag): Likewise.
	(_Jv_JVMTI_GetObjectSize): Likewise.
	(_Jv_JVMTI_SetJNIFunctionTable): Likewise.
	(_Jv_JVMTI_GetJNIFunctionTable): Likewise.
	(_Jv_JVMTI_Interface): Updated.
	(NULL_CHECK): New macro.

2006-08-02  Andreas Tobler  <a.tobler@schweiz.ch>

	PR libgcj/28546
	* include/no-threads.h: Declare _Jv_Thread_t as empty class.

2006-08-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/classpath/natSystemProperties.cc: Add additional check for
	getpwuid_r on _POSIX_PTHREAD_SEMANTICS.
	(SystemProperties::insertSystemProperties): Likewise.
	* java/io/natFilePosix.cc (File::performList): Add
	additional check for readdir_r on _POSIX_PTHREAD_SEMANTICS.
	* java/util/natVMTimeZone.cc (VMTimeZone::getSystemTimeZoneId): Add
	additional check for localtime_r on _POSIX_PTHREAD_SEMANTICS.

2006-07-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/28312
	* classpath/native/jni/midi-alsa/Makefile.am
	(libgjsmalsa_la_LDFLAGS): Add -avoid-version.
	* classpath/native/jni/midi-alsa/Makefile.in: Regenerate.
	* classpath/native/jni/midi-dssi/Makefile.am
	(libgjsmdssi_la_LDFLAGS): Add -avoid-version.
	* classpath/native/jni/midi-dssi/Makefile.in: Regenerate.
	* classpath/native/jni/qt-peer/Makefile.am: Remove GCJ LOCAL
	sections.
	(libqtpeer_la_LDFLAGS): Add -avoid-version.
	* classpath/native/jni/qt-peer/Makefile.in: Regenerate.
	* classpath/native/jni/gtk-peer/Makefile.am
	(libgtkpeer_la_LDFLAGS): Add -avoid-version.
	* classpath/native/jni/gtk-peer/Makefile.in: Regenerate.
	* classpath/native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add
	-avoid-version.
	* classpath/native/jawt/Makefile.in: Regenerate.
	* Makefile.am (libjvm_la_LDFLAGS): Add -avoid-version.
	* Makefile.in: Regenerate.

2006-07-28  Andrew Haley  <aph@redhat.com>

	* gnu/gcj/runtime/natSharedLibLoader.cc (init): Don't set
	curLoader to VMClassLoader::bootLoader.

2006-07-28  Gary Benson  <gbenson@redhat.com>
	    Casey Marshall <csm@gnu.org>

	PR libgcj/13604:
	* include/java-stack.h (GetClassMethodStack): Declare.
	* stacktrace.cc (GetClassMethodStack): New method.
	* java/security/AccessController.java: Removed.
	* java/security/VMAccessController.java: New file.
	* java/security/natVMAccessController.cc: Likewise.
	* Makefile.am (nat_source_files): Added the above.
	* sources.am, Makefile.in: Rebuilt.

2006-07-28  Gary Benson  <gbenson@redhat.com>

	* java/lang/SecurityManager.java (currentClassLoader,
	currentLoadedClass, classLoaderDepth, checkAccess, checkRead,
	checkWrite, checkTopLevelWindow, checkPrintJobAccess,
	checkSystemClipboardAccess, checkAwtEventQueueAccess,
	checkPackageList): Remerged javadoc.

2006-07-28  Gary Benson  <gbenson@redhat.com>

	* prims.cc (_Jv_CreateJavaVM): Move setting runtimeInitialized
	from the start to the end of the function.  Remove references
	to VMThrowable.trace_enabled.
	* java/lang/natVMThrowable.cc (fillInStackTrace): Use
	runtimeInitialized rather than trace_enabled to decide
	whether to inhibit stack trace generation.
	* java/lang/VMThrowable.java (trace_enabled): Removed.

2006-07-23  Mohan Embar  <gnustuff@thisiscool.com>

	* include/win32-threads.h (_Jv_Thread_t): Explicitly
	name the struct.

2006-07-23  Mohan Embar  <gnustuff@thisiscool.com>

	* jvmti.cc (_Jv_JVMTI_SuspendThread): Add missing JNICALL
	attribute.
	(_Jv_JVMTI_ResumeThread): Likewise.
	(_Jv_JVMTI_DisposeEnvironment): Likewise.

2006-07-21  Mohan Embar  <gnustuff@thisiscool.com>

	* gnu/java/net/natPlainSocketImplPosix.cc (bind): Clear
	SockAddr before using - needed for OS X/PPC.

2006-07-21  Keith Seitz  <keiths@redhat.com>

	* boehm.cc (_Jv_SuspendThread): Don't ifdef the function declaration,
	just the contents.
	(_Jv_ResumeThread): Likewise.
	* posix-threads.cc: Revert 2006-06-19 _Jv_ThreadDebugSuspend,
	_Jv_ThreadDebugResume, _Jv_ThreadDebugSuspendCount patch. Moving
	to JVMTI instead.
	* include/posix-threads.h: Likewise.
	* win32-threads.cc: Likewise.
	* include/win32-threads.h: Likewise.
	* jvmti.cc (_Jv_JVMTI_SuspentThread): New function.
	(_Jv_JVMTI_ResumeThread): New function.
	(_Jv_JVMTI_Interface): Define SuspendThread and ResumeThread.

2006-07-21  David Daney  <ddaney@avtrex.com>

	PR libgcj/28426
	* configure: Regenerated.

2006-07-21  Mark Wielaard  <mark@klomp.org>

	* java/io/OutputStreamWriter.java (flush): Create work if null.

2006-07-21  Keith Seitz  <keiths@redhat.com>

	* java/lang/natThread.cc (_Jv_ThreadGetData): New function.
	* Makefile.am (java/lang/Thread.h): Add friend function 
	_Jv_ThreadGetData.
	* Makefile.in: Regenerate.

2006-07-20  Keith Seitz  <keiths@redhat.com>

	* jvmti.cc (_Jv_JVMTI_DisposeEnvironment): New function.
	(_Jv_JVMTI_Interface): Define DisposeEnvironment method.

2006-07-20  Keith Seitz  <keiths@redhat.com>

	* include/jvm.h (_Jv_GetJVMTIEnv): Declare.
	* jni.cc (_Jv_JNI_GetEnv): Handle JVMTI requests.
	* jvmti.cc: New file.
	* Makefile.am (libgcj_la_SOURCES): Add jvmti.cc.
	* Makefile.in: Regenerate. 

2006-07-20  David Daney  <ddaney@avtrex.com>

	* configure.host: Enable the interpreter for mipsel-* and mips-*.

2006-07-20  David Daney  <ddaney@avtrex.com>

	* include/mips-signal.h: Update copyright.
	(struct kernel_sigaction): Removed.
	(SIGNAL_HANDLER): Changed prototype.
	(MAKE_THROW_FRAME): Added cast.
	(INIT_SEGV): Use sigaction instead of syscall.
	(INIT_FPE): Likewise.

2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2006-07-18  Gary Benson  <gbenson@redhat.com>

	* java/io/File.java (deleteOnExit): Fix security check.

2006-07-14  Anthony Green  <green@redhat.com>

	* java/io/natFilePosix.cc (performSetLastModified): Return true on
	success, false otherwise.

2006-07-14  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* stacktrace.cc (_Jv_StackTrace::GetStackTrace): Unconditionally use
	_Unwind_Backtrace().
	(_Jv_StackTrace::GetCallerInfo): Enable even for targets using SJLJ
	EH.
	(_Jv_StackTrace::GetClassContext): Unconditionally use
	_Unwind_Backtrace().
	(_Jv_StackTrace::GetFirstNonSystemClassLoader): Likewise.
	* sysdep/i386/backtrace.h (HAVE_FALLBACK_BACKTRACE): Do not define.
	(_Unwind_GetIPInfo): Define macro if SJLJ EH is in use.
	(_Unwind_GetRegionStart): Likewise.
	(_Unwind_Backtrace): Likewise.
	(fallback_backtrace): Accept additional unwind trace function
	argument.  Call it during unwinding.  Stop when any of _Jv_RunMain(),
	_Jv_ThreadStart() or main() is seen during unwinding.
	* sysdep/generic/backtrace.h (fallback_backtrace): Accept an
	additional unwind trace function argument.

2006-07-14  Gary Benson  <gbenson@redhat.com>

	* java/io/File.java (internalExists): New method.
	(exists): Use internalExists.
	(internalIsDirectory): New method.
	(isDirectory): Use internalIsDirectory.
	(createTempFile): Use internalExists and internalIsDirectory.

2006-07-13  Bryce McKinlay  <mckinlay@redhat.com>

	* interpret.cc (_Jv_InterpMethod::run): Don't SAVE_PC for fdiv.

2006-07-13  Bryce McKinlay  <mckinlay@redhat.com>

	* interpret.cc (_Jv_InterpMethod::compile): Add FIXME comment.
	(_Jv_InterpMethod::run): SAVE_PC before executing any instruction 
	using resolve_pool_entry, as it can throw. Likewise for div/rem ops
	that can throw ArithmeticException.

2006-07-12  Gary Benson  <gbenson@redhat.com>

	* java/io/File.java (renameTo): Fix security checks.

2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/28352
	* stacktrace.cc (getLineNumberForFrame): Roll back PC by 1 when
	looking up line number for interpreted frame.

2006-07-07  Bryce McKinlay  <mckinlay@redhat.com>
	    Geoffrey Keating <geoffk@apple.com>

	* testsuite/libjava.lang/StackTrace2.java: Renamed from
	StackTrace.java. Changed class name.
	* testsuite/libjava.lang/StackTrace2.out: Renamed from
	StackTrace.out. Updated for new class name.

2006-07-07  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* sysdep/i386/backtrace.h (fallback_backtrace): Scan for a function's
	prologue to determine its beginning.  Stop unwinding when we reach
	JvRunMain().

2006-07-07  Gary Benson  <gbenson@redhat.com>

	* Makefile.am (BOOT_CLASS_PATH_DIR): Only contain libgcj.jar.
	* Makefile.in: Regenerate.

2006-07-06  Bryce McKinlay <mckinlay@redhat.com>

	* stacktrace.cc (ClassForFrame): Remove commented-out code.
	(UnwindTraceFn): Use _Unwind_GetIPInfo and adjust IP
	only when needed.
	(getLineNumberForFrame): Don't adjust IP here.
	* testsuite/libjava.lang/StackTrace.java: New test case.
	* testsuite/libjava.lang/StackTrace.out: Ditto.

2006-07-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (libgcj_tools_la_GCJFLAGS): Add
	-fno-indirect-classes.
	* Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2006-07-06  Bryce McKinlay <mckinlay@redhat.com>

	* boehm.cc (_Jv_MarkObj): Mark the next_or_version field.

2006-07-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (ac_configure_args): Add --with-native-libdir.
	* configure: Regenerate.
	* classpath/native/jni/gtk-peer/Makefile.am: Remove GCJ LOCAL
	sections.
	* classpath/native/jni/gtk-peer/Makefile.in: Regenerate.
	* classpath/native/jawt/Makefile.am: Remove GCJ LOCAL sections.
	* classpath/native/jawt/Makefile.in: Regenerate.
	* classpath/native/plugin/Makefile.am: Remove GCJ LOCAL sections.
	* classpath/native/plugin/Makefile.in: Regenerate.

2006-07-05  Ranjit Mathew  <rmathew@gcc.gnu.org>
            Danny Smith  <dannysmith@users.sourceforge.net>

	* libgcj.spec.in: Use THREADSTARTFILESPEC to affect the spec for
	startfile.
	* configure.ac: Allow targets to affect the spec for startfile
	by specifying a THREADSTARTFILESPEC variable.  Define this for
	the win32 threads package to include crtmt.o.
	* configure: Regenerate.
	* win32.cc (_CRT_MT): Remove definition.
	(__mingwthr_key_dtor): Likewise.

2006-07-04  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libjava.exp (libjava_init): Call the GCJ_UNDER_TEST with
	the -B$specdir.

	PR libgcj/28226:
	* include/posix.h (_Jv_platform_dladdr): Remove const qualifier.
	* include/win32.h (_Jv_platform_dladdr): Likewise.
	* posix.cc (_Jv_platform_dladdr): Likewise.
	* win32.cc (_Jv_platform_dladdr): Likewise.

	* testsuite/lib/libjava.exp (libjava_init): Look for libgcj-$version.jar
	instead of libgcj-*.jar.

2006-07-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/28244:
	* Makefile.am (libgcj_tools_la_DEPENDENCIES): Add libgcj.la and
	libgcj.spec.
	* Makefile.in: Regenerate.

2006-06-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* classpath/tools/Makefile.am: Comment out tools wrapper creation.
	(TOOLS_ZIP): Rename tools.zip tools.jar.
	(noinst_DATA): Do not install tools.jar.
	* classpath/tools/Makefile.in: Regenerate.
	* classpath/Makefile.am (SUBDIRS): Add tools.
	(DIST_SUBDIRS): Likewise.
	* classpath/Makefile.in: Regenerate.
	* Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj-tools.la.
	(jar_DATA): Add libgcj-tools-$(gcc_version).jar.
	(bin_PROGRAMS): Add gappletviewer, gjarsigner and gkeytool.
	Add build logic for libgcj-tools.la,
	libgcj-tools-$(gcc_version).jar and gappletviewer, gjarsigner and
	gkeytool.
	* Makefile.in: Regenerate.

2006-06-29  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* gcj/javaprims.h (_Jv_uintptr_t): New typedef similar to uintptr_t in
	C99.
	* include/java-stack.h: Include stdlib.h.
	(_Jv_AddrInfo): New structure to hold address information.
	* include/posix.h (_Jv_platform_dladdr): Declare.
	* include/win32.h (_Jv_platform_dladdr): Declare.
	(backtrace): Remove declaration.
	* posix.cc: Include dlfcn.h if available.  Include java-stack.h.
	(_Jv_platform_dladdr): Define.
	* win32.cc: Include string.h.  Include java-stack.h.
	(backtrace): Remove.
	(_Jv_platform_dladdr): Define.
	* sysdep/i386/backtrace.h (fallback_backtrace): Check that a potential
	frame pointer value is 32-bit word-aligned.  Use operand of the CALL
	instruction calling the current function to find its starting address.
	* stacktrace.cc: Do not include dlfcn.h.  Include platform.h.
	(_Jv_StackTrace::getLineNumberForFrame): Use _Jv_platform_dladdr()
	instead of dladdr().
	(_Jv_StackTrace::GetStackTraceElements): Use nCodeMap even for Windows.
	(_Jv_StackTrace::GetClassContext): Use fallback_backtrace() for
	targets with SJLJ exceptions instead of using _Unwind_Backtrace().
	(_Jv_StackTrace::GetFirstNonSystemClassLoader): Likewise.

2006-06-27  Tom Tromey  <tromey@redhat.com>

	* java/io/OutputStreamWriter.java (writeChars): Use a 'do' loop.
	Set 'out.count' earlier.
	(close): Call setFinished on converter.
	(flush): Always write work buffer.
	* java/io/PrintStream.java (writeChars): Do 'do' loop.
	(close): Call setFinished on converter.  Write a 'flush' array.
	* java/lang/natString.cc (getBytes): Call setFinished on
	converter.
	* gnu/gcj/convert/CharsetToBytesAdaptor.java (hasBytes): New
	field.
	(write): Set hasBytes.  Changed 'finished' logic.
	(havePendingBytes): Rewrote.
	(setFinished): New method.
	* gnu/gcj/convert/UnicodeToBytes.java (setFinished): New method.
	* testsuite/libjava.lang/RH194522.java: New file.
	* testsuite/libjava.lang/RH194522.out: New file.

2006-06-27  Marco Trudel  <mtrudel@gmx.ch>

	* boehm.cc (_Jv_SuspendThread, _Jv_ResumeThread): Define
	conditionally on GC_PTHREADS, !GC_SOLARIS_THREADS,
	!GC_WIN32_THREADS and !GC_DARWIN_THREADS.

2006-06-27  Tom Tromey  <tromey@redhat.com>

	PR libgcj/28178:
	* jni.cc (_Jv_JNI_DeleteLocalRef): Ignore null argument.
	(_Jv_JNI_DeleteGlobalRef): Likewise.
	* testsuite/libjava.jni/PR28178.java: New file.
	* testsuite/libjava.jni/PR28178.c: New file.
	* testsuite/libjava.jni/PR28178.out: New file.

2006-06-26  Keith Seitz  <keiths@redhat.com>

	* include/posix-threads.h: Fix coding style aberrations from
	2006-06-19 check-in.
	* posix-threads.cc (_Jv_ThreadDebugSuspend): Ditto.
	* include/win32-threads.h (_Jv_ThreadDebugSuspend): Ditto.
	* win32-threads.cc (_Jv_ThreadDebugSuspend): Ditto.

2006-06-26  Keith Seitz  <keiths@redhat.com>

	* include/no-gc.h (_Jv_SuspendThread): Declare.
	(_Jv_ResumeThread): Likewise.
	* include/boehm-gc.h (_Jv_SuspendThread): Declare.
	(_Jv_ResumeThread): Likewise.
	* nogc.cc (_Jv_SuspendThread): New function.
	(_Jv_ResumeThread): Likewise.
	* boehm.cc (_Jv_SuspendThread): New function.
	(_Jv_ResumeThread): Likewise.

2006-06-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* testsuite/libjava.jni/jni.exp (gcj_jni_invocation_test_one):
	Link against -ljvm, not -lgcj.

2006-06-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (libjvm_la_LDFLAGS): Do not set -rpath to
	toolexeclibdir.
	* Makefile.in: Regenerate.

2006-06-22  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/natField.cc (getAddr): Allow setting of final
	field when it is accessible.

2006-06-21  Bryce McKinlay  <mckinlay@redhat.com>

	* include/win32-threads.h (_Jv_ThreadDesc_t): New typedef. 
	(_Jv_GetPlatformThreadID): New function.
	* include/posix-threads.h (_Jv_ThreadDesc_t): New typedef.
	(_Jv_GetPlatformThreadID): New function.

2006-06-20  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/classpath/natSystemProperties.cc (insertSystemProperties):
	Bump "java.class.version" to 48.0.

2006-06-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR to
	"$(dbexecdir)".
	Build libjvm.la.
	* Makefile.in: Regenerate.
	* jni.cc (the_vm): Rename and export as ...
	(_Jv_the_vm): New exported symbol.
	(_Jv_JNI_AttachCurrentThread): Export.
	(_Jv_JNI_DestroyJavaVM): Replace the_vm references with _Jv_the_vm
	references.
	(_Jv_GetJavaVM): Likewise.
	(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
	JNI_GetCreatedJavaVMs): Move to ...
	* jni-libjvm.cc: New file.

2006-06-19  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/PR27908.out: New.
	* testsuite/libjava.lang/PR27908.java: New.

2006-06-19  Keith Seitz  <keiths@redhat.com>

	* include/posix-threads.h (_Jv_ThreadDebugSuspend): Declare.
	(_Jv_ThreadDebugResume): Declare.
	(_Jv_ThreadDebugSuspendCount): Declare.
	* posix-threads.cc (_Jv_ThreadDebugSuspend): New function.
	(_Jv_ThreadDebugSuspendCount): New function.
	(_Jv_ThreadDebugResume): New function.

	* include/win32-threads.h (_Jv_ThreadDebugSuspend): Declare.
	(_Jv_ThreadDebugResume): Declare.
	(_Jv_ThreadDebugSuspendCount): Declare.
	* win32-threads.cc (_Jv_ThreadDebugSuspend): New function.
	(_Jv_ThreadDebugSuspendCount): New function.
	(_Jv_ThreadDebugResume): New function.
	
2006-06-16  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Don't
	copy the whole Class instance from the initializer: instead, copy
	everything but the first word (the vtable pointer).
	Change prototype to (const char* class_initializer).
	(_Jv_RegisterNewClasses): Change prototype to (const char**).
	* java/lang/Class.h (_Jv_RegisterNewClasses): Change prototype to
	(const char**).

2006-06-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* classpath/Makefile.am: Do not recurse into tools directory.
	* classpath/Makefile.in: Regenerate.

2006-06-14  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* classpath/tools/Makefile.am (gappletviewer_CFLAGS): Add
	-I$(top_srcdir)/include.
	(gjarsigner_CFLAGS): Likewise.
	(gkeytool_CFLAGS): Likewise.
	* classpath/tools/Makefile.in: Regenerate.

2006-06-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* configure.ac (--enable-plugin): New option.
	(ac_configure_args): Add --enable-tool-wrappers.
	(ac_configure_args): Add --disable-plugin unless --enable-plugin
	was specified.
	* gcj/Makefile.in: Regenerate.
	* sources.am (gnu_java_net_source_files): Add
	classpath/gnu/java/net/IndexListParser.java.
	(property_files): Remove
	classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties,
	classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties.
	Add
	classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties,
	classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties,
	classpath/resource/gnu/classpath/tools/getopt/Messages.properties,
	classpath/resource/gnu/classpath/tools/jar/messages.properties,
	classpath/resource/gnu/classpath/tools/jarsigner/messages.properties,
	classpath/resource/gnu/classpath/tools/keytool/messages.properties,
	classpath/resource/gnu/classpath/tools/native2ascii/messages.properties,
	classpath/resource/gnu/classpath/tools/serialver/messages.properties.
	* classpath/Makefile.in: Regenerate.
	* classpath/native/jni/gtk-peer/cairographics2d.h,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:
	Merge from GNU Classpath.
	* classpath/native/Makefile.in: Regenerate.
	* classpath/native/jawt/Makefile.in: Regenerate.
	* classpath/native/jawt/Makefile.am: Install libjawt.so in GCJ's
	versioned library directory.
	* classpath/native/Makefile.am: Add plugin directory if
	--enable-plugin was specified.
	* classpath/native/plugin/Makefile.in: Regenerate.  *
	classpath/native/plugin/Makefile.am: Install libgcjwebplugin.so in
	GCJ's versioned library directory.
	* classpath/resource/gnu/classpath/tools/native2ascii/messages.properties:
	New file.
	* classpath/resource/gnu/classpath/tools/getopt/Messages.properties:
	Likewise.
	* classpath/resource/gnu/classpath/tools/jarsigner/messages.properties:
	Likewise.
	* classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	Remove file.
	* classpath/resource/gnu/classpath/tools/keytool/messages.properties:
	New file.
	* classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties:
	Remove file.
	* classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties:
	New file.
	* classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	Likewise.
	* classpath/resource/gnu/classpath/tools/jar/messages.properties:
	Likewise.
	* classpath/resource/gnu/classpath/tools/serialver/messages.properties:
	Likewise.
	* classpath/gnu/java/net/IndexListParser.java:
	Likewise.
	* classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java,
	classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java,
	classpath/gnu/java/awt/peer/gtk/CairoSurface.java,
	classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java,
	classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java,
	classpath/gnu/java/awt/peer/gtk/GdkTextLayout.java,
	classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java,
	classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java,
	classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java,
	classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
	classpath/gnu/java/awt/java2d/PolyEdge.java,
	classpath/gnu/java/awt/java2d/AbstractGraphics2D.java: Merge from
	GNU Classpath.
	* classpath/tools/toolwrapper.c: Replace tools.zip reference with
	libgcj-tools-4.2.0.jar.
	* classpath/tools/Makefile.in: Regenerate.
	* classpath/tools/Makefile.am: Rename tools.zip to
	libgcj-tools-4.2.0.jar.  Install libgcj-tools-4.2.0.jar in
	$(datadir)/java.
	* classpath/javax/swing/JTabbedPane.java,
	classpath/javax/swing/text/DefaultStyledDocument.java,
	classpath/javax/swing/text/html/HTMLDocument.java,
	classpath/javax/swing/text/GapContent.java,
	classpath/javax/swing/JComponent.java,
	classpath/javax/swing/RepaintManager.java,
	classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java,
	classpath/javax/swing/plaf/basic/BasicScrollBarUI.java,
	classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicLookAndFeel.java,
	classpath/javax/swing/plaf/metal/MetalButtonUI.java,
	classpath/java/text/Bidi.java,
	classpath/java/awt/image/BufferedImage.java,
	classpath/java/awt/datatransfer/DataFlavor.java,
	classpath/java/awt/geom/AffineTransform.java,
	classpath/java/awt/dnd/DropTargetDropEvent.java,
	classpath/java/awt/dnd/DropTargetContext.java,
	classpath/java/awt/font/TextLayout.java,
	classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h,
	classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
	classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h,
	classpath/include/gnu_java_awt_peer_gtk_GdkTextLayout.h,
	classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h,
	classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h: Merge from
	GNU Classpath.
	* classpath/include/gnu_java_awt_peer_gtk_GdkGraphics.h,
	classpath/include/gnu_java_awt_peer_gtk_GdkGraphics2D.h,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c,
	classpath/native/jni/gtk-peer/gtkcairopeer.h,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:
	Remove files.
	* classpath/Makefile.am (SUBDIRS, DIST_SUBDIRS): Include tools
	directory.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2006-06-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* configure.host (hppa*-*): Set 'enable_hash_synchronization_default'
	to no.

2006-06-12  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/PR27908.out: Delete.
	* testsuite/libjava.lang/PR27908.java: Delete.

2006-06-12  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/PR27908.out: New.
	* testsuite/libjava.lang/PR27908.java: New.

2006-06-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (ac_configure_args): Add --disable-plugin.
	(--enable-gtk-cairo): Remove option.
	* configure: Regenerate.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27730:
	* java/lang/Thread.java (threadId): New field.
	(nextThreadId): New static field.
	(Thread): Initialize new field.
	(getId): New method.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (getClassLoaderInternal): Now native.

2006-06-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(getDefaultScreenDevice): Remove unnecessary GCJ local hack.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (getSystemEventQueueImpl):
	Likewise.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (registerFormat):
	Likewise.

2006-06-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/lang/String.java, classpath/native/jni/classpath/jcl.h,
	classpath/native/jni/qt-peer/eventmethods.h,
	classpath/native/jni/qt-peer/qtmenupeer.cpp,
	classpath/native/jni/qt-peer/.cvsignore,
	classpath/native/jni/gtk-peer/gdkdisplay.h,
	classpath/native/jni/gtk-peer/cairographics2d.h,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c,
	classpath/native/jni/gtk-peer/.cvsignore,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c,
	classpath/native/jni/gtk-peer/gtkpeer.h,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c,
	classpath/native/jni/gtk-peer/Makefile.am,
	classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
	classpath/native/jawt/Makefile.am,
	classpath/native/jawt/.cvsignore,
	classpath/native/target/Linux/Makefile.in,
	classpath/native/plugin/gcjwebplugin.cc,
	classpath/native/plugin/Makefile.am,
	classpath/native/plugin/.cvsignore,
	classpath/resource/Makefile.in,
	classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java,
	classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java,
	classpath/gnu/java/awt/peer/gtk/CairoSurface.java,
	classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java,
	classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java,
	classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	classpath/gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java,
	classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	classpath/gnu/java/awt/peer/gtk/GdkGraphics.java,
	classpath/gnu/java/awt/peer/gtk/GtkToolkit.java,
	classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
	classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java,
	classpath/gnu/java/awt/peer/gtk/GdkTextLayout.java,
	classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java,
	classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java,
	classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java,
	classpath/gnu/java/awt/peer/gtk/GtkImage.java,
	classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java,
	classpath/gnu/java/awt/peer/gtk/GdkGlyphVector.java,
	classpath/gnu/java/awt/peer/gtk/GtkCanvasPeer.java,
	classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java,
	classpath/gnu/java/awt/peer/swing/SwingComponent.java,
	classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java,
	classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java,
	classpath/gnu/java/awt/peer/swing/SwingFramePeer.java,
	classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java,
	classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java,
	classpath/gnu/java/awt/print/JavaPrinterJob.java,
	classpath/gnu/java/awt/print/PostScriptGraphics2D.java,
	classpath/gnu/java/awt/print/SpooledDocument.java,
	classpath/gnu/java/awt/print/JavaPrinterGraphics.java,
	classpath/gnu/java/awt/BitwiseXORComposite.java,
	classpath/gnu/java/awt/font/GNUGlyphVector.java,
	classpath/gnu/java/awt/font/opentype/NameDecoder.java,
	classpath/gnu/java/awt/java2d/RasterGraphics.java,
	classpath/gnu/java/awt/java2d/TexturePaintContext.java,
	classpath/gnu/java/awt/java2d/PolyEdge.java,
	classpath/gnu/java/awt/java2d/AbstractGraphics2D.java,
	classpath/gnu/java/awt/java2d/AlphaCompositeContext.java,
	classpath/gnu/java/awt/java2d/ImagePaint.java,
	classpath/gnu/java/awt/Buffers.java,
	classpath/gnu/classpath/Configuration.java.in,
	classpath/gnu/javax/swing/text/html/CombinedAttributes.java,
	classpath/gnu/javax/swing/text/html/CharacterAttributeTranslator.java,
	classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java,
	classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java,
	classpath/gnu/javax/swing/text/html/ImageViewIconFactory.java,
	classpath/tools/toolwrapper.c,
	classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java,
	classpath/tools/gnu/classpath/tools/native2ascii/Messages.java,
	classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java,
	classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java,
	classpath/tools/gnu/classpath/tools/getopt/OptionException.java,
	classpath/tools/gnu/classpath/tools/getopt/Messages.java,
	classpath/tools/gnu/classpath/tools/getopt/Option.java,
	classpath/tools/gnu/classpath/tools/getopt/Parser.java,
	classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java,
	classpath/tools/gnu/classpath/tools/jarsigner/JarSigner.java,
	classpath/tools/gnu/classpath/tools/jarsigner/Main.java,
	classpath/tools/gnu/classpath/tools/jarsigner/Messages.java,
	classpath/tools/gnu/classpath/tools/jarsigner/package.html,
	classpath/tools/gnu/classpath/tools/keytool/ListCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/Messages.java,
	classpath/tools/gnu/classpath/tools/keytool/package.html,
	classpath/tools/gnu/classpath/tools/keytool/Command.java,
	classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/Main.java,
	classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java,
	classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java,
	classpath/tools/gnu/classpath/tools/rmi/registry/package.html,
	classpath/tools/gnu/classpath/tools/rmi/RMIC.txt,
	classpath/tools/gnu/classpath/tools/rmi/RMIC.java,
	classpath/tools/gnu/classpath/tools/appletviewer/ErrorApplet.java,
	classpath/tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java,
	classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java,
	classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java,
	classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java,
	classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java,
	classpath/tools/gnu/classpath/tools/appletviewer/AppletWarning.java,
	classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java,
	classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java,
	classpath/tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java,
	classpath/tools/gnu/classpath/tools/appletviewer/Main.java,
	classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java,
	classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java,
	classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java,
	classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java,
	classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java,
	classpath/tools/gnu/classpath/tools/serialver/Messages.java,
	classpath/tools/gnu/classpath/tools/serialver/SerialVer.java,
	classpath/tools/gnu/classpath/tools/jar/Creator.java,
	classpath/tools/gnu/classpath/tools/jar/Entry.java,
	classpath/tools/gnu/classpath/tools/jar/Lister.java,
	classpath/tools/gnu/classpath/tools/jar/Main.java,
	classpath/tools/gnu/classpath/tools/jar/Updater.java,
	classpath/tools/gnu/classpath/tools/jar/Messages.java,
	classpath/tools/gnu/classpath/tools/jar/Extractor.java,
	classpath/tools/gnu/classpath/tools/jar/Action.java,
	classpath/tools/gnu/classpath/tools/jar/Indexer.java,
	classpath/tools/gnu/classpath/tools/jar/WorkSet.java,
	classpath/tools/gnu/classpath/tools/giop/GRMIC.txt,
	classpath/tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java,
	classpath/tools/gnu/classpath/tools/giop/GRMIC.java,
	classpath/tools/Makefile.am, classpath/tools/jarsigner.in,
	classpath/tools/keytool.in, classpath/tools/appletviewer.in,
	classpath/tools/.cvsignore, classpath/configure.ac,
	classpath/javax/swing/JTabbedPane.java,
	classpath/javax/swing/AbstractButton.java,
	classpath/javax/swing/JViewport.java,
	classpath/javax/swing/KeyboardManager.java,
	classpath/javax/swing/JMenuItem.java,
	classpath/javax/swing/JMenuBar.java,
	classpath/javax/swing/MenuSelectionManager.java,
	classpath/javax/swing/JOptionPane.java,
	classpath/javax/swing/JSpinner.java,
	classpath/javax/swing/JCheckBoxMenuItem.java,
	classpath/javax/swing/JEditorPane.java,
	classpath/javax/swing/JFormattedTextField.java,
	classpath/javax/swing/JTree.java,
	classpath/javax/swing/CellRendererPane.java,
	classpath/javax/swing/JScrollPane.java,
	classpath/javax/swing/tree/VariableHeightLayoutCache.java,
	classpath/javax/swing/tree/TreeNode.java,
	classpath/javax/swing/tree/FixedHeightLayoutCache.java,
	classpath/javax/swing/tree/DefaultTreeCellEditor.java,
	classpath/javax/swing/tree/TreePath.java,
	classpath/javax/swing/tree/RowMapper.java,
	classpath/javax/swing/tree/DefaultMutableTreeNode.java,
	classpath/javax/swing/tree/DefaultTreeModel.java,
	classpath/javax/swing/tree/AbstractLayoutCache.java,
	classpath/javax/swing/tree/TreeSelectionModel.java,
	classpath/javax/swing/tree/DefaultTreeSelectionModel.java,
	classpath/javax/swing/tree/DefaultTreeCellRenderer.java,
	classpath/javax/swing/tree/ExpandVetoException.java,
	classpath/javax/swing/JList.java,
	classpath/javax/swing/table/JTableHeader.java,
	classpath/javax/swing/table/AbstractTableModel.java,
	classpath/javax/swing/table/DefaultTableModel.java,
	classpath/javax/swing/table/TableCellEditor.java,
	classpath/javax/swing/table/TableCellRenderer.java,
	classpath/javax/swing/ProgressMonitor.java,
	classpath/javax/swing/JToolBar.java,
	classpath/javax/swing/TransferHandler.java,
	classpath/javax/swing/DefaultCellEditor.java,
	classpath/javax/swing/DefaultButtonModel.java,
	classpath/javax/swing/JLayeredPane.java,
	classpath/javax/swing/text/DefaultEditorKit.java,
	classpath/javax/swing/text/DefaultCaret.java,
	classpath/javax/swing/text/FieldView.java,
	classpath/javax/swing/text/JTextComponent.java,
	classpath/javax/swing/text/TextAction.java,
	classpath/javax/swing/text/StyleContext.java,
	classpath/javax/swing/text/html/HTMLDocument.java,
	classpath/javax/swing/text/html/MinimalHTMLWriter.java,
	classpath/javax/swing/text/html/ImageView.java,
	classpath/javax/swing/text/html/HTMLEditorKit.java,
	classpath/javax/swing/text/AbstractWriter.java,
	classpath/javax/swing/text/GapContent.java,
	classpath/javax/swing/text/Utilities.java,
	classpath/javax/swing/text/PlainView.java,
	classpath/javax/swing/UIManager.java,
	classpath/javax/swing/JSplitPane.java,
	classpath/javax/swing/JComponent.java,
	classpath/javax/swing/SwingUtilities.java,
	classpath/javax/swing/border/AbstractBorder.java,
	classpath/javax/swing/border/CompoundBorder.java,
	classpath/javax/swing/border/TitledBorder.java,
	classpath/javax/swing/border/MatteBorder.java,
	classpath/javax/swing/border/BevelBorder.java,
	classpath/javax/swing/RepaintManager.java,
	classpath/javax/swing/JTable.java,
	classpath/javax/swing/UIDefaults.java,
	classpath/javax/swing/DefaultDesktopManager.java,
	classpath/javax/swing/JMenu.java,
	classpath/javax/swing/JLabel.java,
	classpath/javax/swing/JSlider.java,
	classpath/javax/swing/plaf/basic/BasicToolBarUI.java,
	classpath/javax/swing/plaf/basic/BasicButtonUI.java,
	classpath/javax/swing/plaf/basic/BasicOptionPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicTextAreaUI.java,
	classpath/javax/swing/plaf/basic/BasicToggleButtonUI.java,
	classpath/javax/swing/plaf/basic/BasicSpinnerUI.java,
	classpath/javax/swing/plaf/basic/BasicSliderUI.java,
	classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicComboPopup.java,
	classpath/javax/swing/plaf/basic/BasicCheckBoxUI.java,
	classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java,
	classpath/javax/swing/plaf/basic/BasicProgressBarUI.java,
	classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java,
	classpath/javax/swing/plaf/basic/BasicPanelUI.java,
	classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicTreeUI.java,
	classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java,
	classpath/javax/swing/plaf/basic/BasicFileChooserUI.java,
	classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicComboBoxUI.java,
	classpath/javax/swing/plaf/basic/BasicListUI.java,
	classpath/javax/swing/plaf/basic/BasicIconFactory.java,
	classpath/javax/swing/plaf/basic/BasicTextUI.java,
	classpath/javax/swing/plaf/basic/BasicLookAndFeel.java,
	classpath/javax/swing/plaf/basic/BasicDirectoryModel.java,
	classpath/javax/swing/plaf/basic/BasicRootPaneUI.java,
	classpath/javax/swing/plaf/basic/BasicTableUI.java,
	classpath/javax/swing/plaf/basic/SharedUIDefaults.java,
	classpath/javax/swing/plaf/multi/MultiComboBoxUI.java,
	classpath/javax/swing/plaf/multi/MultiListUI.java,
	classpath/javax/swing/plaf/multi/MultiSplitPaneUI.java,
	classpath/javax/swing/plaf/multi/MultiFileChooserUI.java,
	classpath/javax/swing/plaf/multi/MultiOptionPaneUI.java,
	classpath/javax/swing/plaf/multi/MultiTabbedPaneUI.java,
	classpath/javax/swing/plaf/multi/MultiLookAndFeel.java,
	classpath/javax/swing/plaf/metal/MetalSliderUI.java,
	classpath/javax/swing/plaf/metal/MetalIconFactory.java,
	classpath/javax/swing/plaf/metal/MetalComboBoxIcon.java,
	classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java,
	classpath/javax/swing/plaf/metal/MetalLookAndFeel.java,
	classpath/javax/swing/plaf/metal/MetalCheckBoxUI.java,
	classpath/javax/swing/plaf/metal/MetalSeparatorUI.java,
	classpath/javax/swing/plaf/metal/MetalBorders.java,
	classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java,
	classpath/javax/swing/plaf/metal/MetalScrollBarUI.java,
	classpath/javax/swing/plaf/metal/MetalRootPaneUI.java,
	classpath/javax/swing/plaf/metal/MetalInternalFrameUI.java,
	classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java,
	classpath/javax/swing/plaf/metal/MetalToolTipUI.java,
	classpath/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java,
	classpath/javax/swing/plaf/metal/MetalFileChooserUI.java,
	classpath/javax/swing/plaf/metal/MetalUtils.java,
	classpath/javax/swing/plaf/metal/MetalComboBoxButton.java,
	classpath/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java,
	classpath/javax/swing/plaf/metal/MetalButtonUI.java,
	classpath/javax/swing/JPopupMenu.java,
	classpath/javax/swing/JProgressBar.java,
	classpath/javax/swing/WindowConstants.java,
	classpath/javax/swing/JFrame.java,
	classpath/javax/swing/JFileChooser.java,
	classpath/javax/swing/JComboBox.java,
	classpath/javax/swing/event/EventListenerList.java,
	classpath/javax/swing/ListSelectionModel.java,
	classpath/javax/swing/JScrollBar.java,
	classpath/java/text/SimpleDateFormat.java,
	classpath/java/text/NumberFormat.java,
	classpath/java/text/class-dependencies.conf,
	classpath/java/awt/image/ColorModel.java,
	classpath/java/awt/image/BufferedImage.java,
	classpath/java/awt/Window.java,
	classpath/java/awt/ContainerOrderFocusTraversalPolicy.java,
	classpath/java/awt/LightweightDispatcher.java,
	classpath/java/awt/EventDispatchThread.java,
	classpath/java/awt/BasicStroke.java,
	classpath/java/awt/ColorPaintContext.java,
	classpath/java/awt/Container.java,
	classpath/java/awt/TexturePaint.java,
	classpath/java/awt/Component.java, classpath/java/awt/Font.java,
	classpath/java/awt/GraphicsConfiguration.java,
	classpath/java/awt/DefaultKeyboardFocusManager.java,
	classpath/java/awt/print/PrinterJob.java,
	classpath/java/awt/im/InputContext.java,
	classpath/java/awt/dnd/DragGestureRecognizer.java,
	classpath/java/awt/Toolkit.java,
	classpath/java/awt/font/GraphicAttribute.java,
	classpath/java/awt/font/ImageGraphicAttribute.java,
	classpath/java/awt/font/GlyphVector.java,
	classpath/java/awt/font/GlyphMetrics.java,
	classpath/java/awt/font/ShapeGraphicAttribute.java,
	classpath/java/awt/Graphics2D.java,
	classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h,
	classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
	classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h,
	classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h,
	classpath/include/config.h.in,
	classpath/include/gnu_java_awt_peer_gtk_GdkTextLayout.h,
	classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h,
	classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h,
	classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h,
	classpath/include/gnu_java_awt_peer_gtk_GtkImage.h,
	classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h,
	classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h:
	Merge from GNU Classpath HEAD.

2006-06-08  Tom Tromey  <tromey@redhat.com>

	* gnu/classpath/natSystemProperties.cc (insertSystemProperties):
	Set gnu.gcj.user.realname.

2006-06-09  Andreas Tobler  <a.tobler@schweiz.ch>

	* scripts/jar.in: Replace hardcoded /bin/sh with @SHELL@.

2006-06-07  Andrew Haley  <aph@redhat.com>

	* include/jvm.h (_Jv_Linker::maybe_adjust_signature): New.
	(_Jv_Linker::uaddr): New.
	* link.cc (resolve_pool_entry): Call search_method_in_superclasses
	instead of an open-coded loop around search_method_in_class.
	(search_method_in_class): Add a new arg, check_perms.
	(search_method_in_superclasses): New.
	(link_symbol_table): Call maybe_adjust_signature() to extract the
	least significnt bit of the signature pointer.  Do this three
	times, for instace method calls, static methods, and interfaces.
	Call search_method_in_superclasses() instead of
	_Jv_LookupDeclaredMethod.
	(typedef uaddr): Delete.
	
2006-06-07  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* scripts/makemake.tcl (emit_bc_rule): Do not skip
	gnu-java-awt-peer-qt.lo.
	* configure.ac (QT_AWT): Remove conditional.
	Do not add gnu/java/awt/peer/qt to standard.omit.
	* classpath/native/jni/qt-peer/Makefile.am: Install libqtpeer.so
	in GCJ's versioned library directory.
	* classpath/gnu/java/awt/peer/qt/QtToolkit.java (initToolkit):
	Load libqtpeer.so unconditionally.
	* gij.cc (main): Do not re-exec gij.
	* Makefile.am: Remove lib-gnu-java-awt-peer-qt.lo build logic.
	(gij_LDFLAGS): Point -rpath at GCJ's versioned library directory
	when linking gij.

2006-06-06  David Daney  <ddaney@avtrex.com>

	* gnu/gcj/runtime/NameFinder.java (show_raw): New field.
	(showRaw): New method.
	* stacktrace.cc : Include gnu/gcj/runtime/StringBuffer.h.
	(getLineNumberForFrame): Show IP offset in trace if line number
	not available and show_raw true.

2006-06-06  Gary Benson  <gbenson@redhat.com>

	* java/io/natFilePosix.cc (getCanonicalPath): Rewritten.
	* configure.ac: Remove realpath check and add checks for
	lstat and readlink.
	* configure: Rebuilt.
	* include/config.h.in: Likewise.
	* java/io/File.java: Javadoc fix.

2006-06-05  Andreas Schwab  <schwab@suse.de>

	PR libgcj/27860
	* link.cc: Check for closure support in libffi with FFI_CLOSURES.

2006-06-05  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27892:
	* gij.cc (main): Use putenv.

2006-06-03  Paolo Bonzini  <bonzini@gnu.org>

	* scripts/jar.in: Ensure return with argument has non-empty argument.

2006-06-01  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac (ZIP, UNZIP): New programs.
	(JAR): Fall back to bash script.  Generate it.
	(BASH_JAR): New conditional.
	* Makefile.am (bin_SCRIPTS): New.
	* scripts/jar.in: New file.

2006-06-01  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/lang/MainThread (run): Revert exception chaining change.

2006-05-31  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (_Jv_RunMain): Use JvNewStringUTF for command-line class
	name, not Latin1.
	* gnu/java/lang/MainThread.java (run): Allow file separator char to
	be used in place of '.' as class-name separator. Don't chain
	ClassNotFoundException.

2006-05-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/lang/VMClassLoader.java (initialize): Set default library
	control to LIB_NEVER.

2006-05-31  Alan Modra  <amodra@bigpond.net.au>

	* stacktrace.cc (_Jv_StackTrace::UpdateNCodeMap): Don't add
	interpreted classes.

2006-05-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* scripts/makemake.tcl (emit_bc_rule): Do not skip
	gnu-java-awt-peer-gtk.lo.
	Include gnu/java/awt/peer/gtk Java objects in libgcj.so.  Use C++
	ABI for gnu/java/awt/peer/gtk package.
	* gnu/classpath/natSystemProperties.cc (PrependVersionedLibdir):
	New function.
	(insertSystemProperties): Only set java.ext.dirs if it is not
	already defined.  Prepend GCJ_VERSIONED_LIBDIR to module search
	path where necessary.
	* configure.ac (GTK_AWT): Remove automake conditional.
	Do not add gnu/java/awt/peer/gtk to standard.omit.
	* include/jvm.h (_Jv_PrependVersionedLibdir): New function
	declaration.
	* gij.cc (main): Prepend LD_LIBRARY_PATH with GCJ_VERSIONED_LIBDIR
	and re-exec self.
	* Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR and
	PATH_SEPARATOR macros.
	Remove lib-gnu-java-awt-peer-gtk.la and libgcjawt.la build logic.
	* prims.cc (_Jv_PrependVersionedLibdir): New function.

2006-05-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/lang/natThread.cc (countStackFrames): Do not throw
	UnsupportedOperationException.
	(resume): Likewise.
	(stop): Likewise.
	(suspend): Likewise.

2006-05-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* configure.ac: Add sys/rw_lock.h to AC_CHECK_HEADERS.
	* configure: Rebuilt.
	* include/config.h.in: Likewise.
	* include/posix.h: If HAVE_SYS_RW_LOCK_H is defined, include
	<sys/rw_lock.h>.

2006-05-24  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27024:
	* sources.am, Makefile.in: Rebuilt.
	* gnu/java/net/DefaultContentHandlerFactory.java: Removed.
	* java/net/URLConnection.java: Removed.

2006-05-24  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.am: Add install-html target. Add install-html to .PHONY
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2006-05-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.lang/stacktrace.java: New file.
	* testsuite/libjava.lang/stacktrace.out: Likewise.

2006-05-24  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* scripts/makemake.tcl: Accept -verbose command-line option.
	(is_verbose): New global.
	(verbose): Use it.
	(classify_source_file): Don't special case '.' for 'package'
	type.

2006-05-24  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27729:
	* java/lang/reflect/natField.cc (getAddr): Added parens.
	* java/lang/reflect/natConstructor.cc (getModifiersInternal):
	Renamed.  Don't mask flags.
	* java/lang/reflect/Constructor.java (CONSTRUCTOR_MODIFIERS): New
	constant.
	(getModifiersInternal): Renamed.
	(getModifiers): Rewrote.
	(isSynthetic, isVarArgs): New methods.
	(hashCode): Rewrote.
	(addTypeParameters, toGenericString): New methods.
	(getTypeParameters): Rewrote.
	(getSignature): New method.
	(getGenericParameterTypes, getGenericExceptionTypes): Likewise.
	* java/lang/reflect/natMethod.cc (getModifiersInternal):
	Renamed.  Don't mask flags.
	* java/lang/reflect/natField.cc (getModifiersInternal): Renamed.
	Don't mask flags.
	* java/lang/reflect/Modifier.java (BRIDGE, VARARGS, SYNTHETIC,
	ENUM): New constants.
	(INVISIBLE): Changed value.
	* java/lang/reflect/Method.java: Mostly merged with Classpath.
	(getModifiersInternal): Renamed.
	(getModifiers): Rewrote.
	(isBridge, isSynthetic, isVarArgs): New methods.
	(toGenericString): Likewise.
	(getTypeParameters): Likewise.
	(getSignature): Likewise.
	(getGenericExceptionTypes, getGenericParameterTypes,
	getGenericReturnType): Likewise.
	(METHOD_MODIFIERS): New constant.
	* java/lang/reflect/Field.java: Mostly merged with Classpath.
	Added javadoc everywhere.
	(getModifiersInternal): Renamed.
	(getModifiers, isSynthetic, isEnumConstant): Rewrote.
	(toGenericString): New method.
	(getGenericType, getSignature): Likewise.
	(FIELD_MODIFIERS): New constant.

2006-05-24  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27731:
	* java/lang/natMath.cc (cbrt, cosh, expm1, hypot, log1p, sinh,
	tanh): New methods.
	* java/lang/Math.java (cbrt, cosh, expm1, hypot, log1p, sinh,
	tanh): Declare.

2006-05-22  Mark Wielaard  <mark@klomp.org>

	* HACKING: Update GNU Classpath import instructions.

2006-05-21  Andreas Tobler  <a.tobler@schweiz.ch>

	* java/lang/natClass.cc (_Jv_FindMethodInCache): Mark klass, name and
	signature as MAYBE_UNUSED for HAVE_TLS == 0.
	(_Jv_AddMethodToCache): Mark klass and method as MAYBE_UNUSED for
	HAVE_TLS == 0.

2006-05-20  Andreas Tobler  <a.tobler@schweiz.ch>
	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* configure.ac: Add the POSIX thread libs to the HP-UX PA
	configuration. Add signal specification for HP-UX PA.
	* configure: Rebuilt.
	* configure.host: Add defaults for the HP-UX PA architecture.
	Add descriptor files for HP-UX PA 32-bit and 64-bit.
	* include/hppa-signal.h: New file.
	* include/posix.h: Add shared library suffix for HP-UX.
	* sysdep/pa/descriptor-pa32-hpux.h: New file.
	* sysdep/pa/descriptor-pa64-hpux.h: Likewise.

2006-05-19  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* ChangeLog: Correct incorrect GNU Classpath version in the
	entry for the latest import.

2006-05-18  Tom Tromey  <tromey@redhat.com>

	* source.am, Makefile.in: Rebuilt.
	* Makefile.am (property_files): Removed.
	* scripts/makemake.tcl (properties_map): New global.
	(properties_files): Likewise.
	(emit_property_files): New proc.
	(scan_packages): Scan META-INF.
	Print property_files variable.  Scan classpath/resource.

2006-05-18  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.special/special.exp (gcj_special_pr21115):
	Renamed.
	(gcj_write_and_byte_compile): New proc.
	(gcj_special_lazy_illegal_access): Likewise.

2006-05-18  Mark Wielaard  <mark@klomp.org>

	Imported GNU Classpath 0.91
	* scripts/makemake.tcl: LocaleData.java moved to gnu/java/locale.

	* sources.am: Regenerated.
	* gcj/javaprims.h: Regenerated.
	* Makefile.in: Regenerated.
	* gcj/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

	* gnu/java/lang/VMInstrumentationImpl.java: New override.
	* gnu/java/net/local/LocalSocketImpl.java: Likewise.
	* gnu/classpath/jdwp/VMMethod.java: Likewise.
	* gnu/classpath/jdwp/VMVirtualMachine.java: Update to latest
	interface.
	* java/lang/Thread.java: Add UncaughtExceptionHandler.
	* java/lang/reflect/Method.java: Implements GenericDeclaration and
	isSynthetic(),
	* java/lang/reflect/Field.java: Likewise.
	* java/lang/reflect/Constructor.java
	* java/lang/Class.java: Implements Type, GenericDeclaration,
	getSimpleName() and getEnclosing*() methods.
	* java/lang/Class.h: Add new public methods.
	* java/lang/Math.java: Add signum(), ulp() and log10().
	* java/lang/natMath.cc (log10): New function.
	* java/security/VMSecureRandom.java: New override.
	* java/util/logging/Logger.java: Updated to latest classpath
	version.
	* java/util/logging/LogManager.java: New override.

2006-05-15  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/27352
	* java/lang/Class.java (getClassLoaderInternal): New method.
	(forName (String, Class)): Use getClassLoaderInternal.
	(getPackage): Likewise.
	(getResource): Likewise.
	(getResourceAsStream): Likewise.
	(desiredAssertionStatus): Likewise.

2006-05-15  Andreas Tobler  <a.tobler@schweiz.ch>

	* stacktrace.cc (StackTrace::FillInFrameInfo): Use
	UNWRAP_FUNCTION_DESCRIPTOR to compare frame->start_ip against the
	klass->methods[j].ncode.

2006-05-13  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Mention natVMChannels.cc, not
	natChannels.cc.
	* java/nio/channels/natVMChannels.cc: Renamed from
	natChannels.cc.
	* java/nio/channels/Channels.java: Removed.
	* java/nio/channels/natChannels.cc: Removed.
	* java/nio/channels/VMChannels.java: New file.

2006-05-13  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* java/text/DateFormat.java: Removed.

2006-05-13  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* gnu/java/net/protocol/jar/Connection.java: Removed.
	* java/net/JarURLConnection.java: Removed.

2006-05-13  Tom Tromey  <tromey@redhat.com>

	* include/java-interp.h (_Jv_InterpMethod::dump_object): Removed
	declaration.

2006-05-12  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* java/util/logging/LogManager.java: Removed.
	* java/util/logging/Logger.java (resetLogger): New method, from
	Classpath.
	* java/io/RandomAccessFile.java: Removed.
	* gnu/java/nio/channels/FileChannelImpl.java (create): New
	method.
	(FileChannelImpl): Now private.
	* java/io/FileInputStream.java: Removed.
	* java/io/FileOutputStream.java: Removed.
	* java/security/AccessControlContext.java: Removed.
	* java/lang/ThreadLocal.java: Removed.
	* java/lang/InheritableThreadLocal.java: Removed.
	* java/lang/Thread.java (locals): New field.
	(getThreadLocals): New method.
	* java/lang/natThread.cc (finish_): Clear 'locals'.

2006-05-11  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/gcj/runtime/NameFinder.java (lookup): If exec'ing addr2line
	fails, don't try again.
	(use_addr2line): Field no longer final.

2006-05-11  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/gcj/runtime/NameFinder.java (blacklist): New static field.
	(lookup): If addr2line fails to find an address, flag the binary as
	having no debug info and avoid calling addr2line on it again.

2006-05-11  David Daney  <ddaney@avtrex.com>

	* testsuite/libjava.compile/PR20418.java: New.
	* testsuite/libjava.compile/PR20418.xfail: New.

2006-05-11  Andrew Haley  <aph@redhat.com>

	* gnu/gcj/runtime/natSharedLibLoader.cc (init): Remove debugging
	line.

2006-05-10  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc: Add comments.

2006-05-09  Andrew Haley  <aph@redhat.com>

	* prims.cc (_Jv_soleIndirectCompiledEngine): New.
	* include/execution.h (Jv_CompiledEngine::do_allocate_static_fields):
	Remove body.
	(_Jv_CompiledEngine::allocate_field_initializers): New.
	(_Jv_CompiledEngine::_Jv_CompiledEngine): Initialize
	allocate_field_initializers.
	(class _Jv_IndirectCompiledClass): New.
	(struct _Jv_IndirectCompiledEngine): New.
	* java/lang/Class.h: (IndirectCompiledEngine): New.
	* java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Set
	engine to _Jv_soleIndirectCompiledEngine
	* link.cc (ensure_fields_laid_out): Call
	engine->allocate_field_initializers().

2006-05-06  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Add check for
	HP-UX and add appropriate extension for shared libraries, sl.
	(gcj_jni_test_one): Likewise.

	* testsuite/lib/libjava.exp (libjava_find_lib): Add sl to the shared
	library extensions.

2006-05-05  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27294:
	* java/lang/natVMClassLoader.cc (defineClass): Throw
	VirtualMachineError if no interpreter configured.

2006-05-03  Andrew Haley  <aph@redhat.com>

	PR libgcj/27352
	* java/lang/Class.java (getClassLoader(Class)): New.
	forName(String, Class): New.
	* java/lang/natClass.cc (getClassLoader(Class)): New.

2006-05-02  Andrew Haley  <aph@redhat.com>

	* prims.cc (_Jv_NewMultiArray): Check for phantom class.

2006-05-04  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26861:
	* interpret.cc (run) <insn_getfield>: Removed 0xffff check.
	<insn_putfield>: Likewise.
	(NULLCHECK): Define unconditionally.
	* link.cc (ensure_class_linked): Removed dead code.

2006-05-04  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.h (JV_STATE_LOADING): Added comment.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added natSystemClassLoader.cc.
	* gnu/gcj/runtime/natSystemClassLoader.cc: New file.
	* gnu/gcj/runtime/SystemClassLoader.java (nativeClasses):
	New field.
	(loadedClasses): Removed.
	(findClass): Declare.
	(addClass): Add to nativeClasses, not loadedClasses.

2006-05-04  Andrew Haley  <aph@redhat.com>

	PR java/26858
	* testsuite/libjava.lang/PR26858.xfail: Delete.

2006-05-02  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/lib/libjava.exp (test_libjava): Test bytecode->native
	-findirect-dispatch compilation.

2006-05-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Simplify the mmap check a bit more.
	* configure: Rebuilt.
	* include/config.h.in: Likewise.

2006-05-01  Roger Sayle  <roger@eyesopen.com>
	    Andrew Haley  <aph@redhat.com>

	* boehm.cc (_Jv_InitGC): Check both HAVE_DLFCN_H and HAVE_DLADDR
	before calling GC_register_has_static_roots_callback.
	(_Jv_RegisterLibForGc): Likewise, test for both HAVE_DLFCN_H and
	HAVE_DLADDR before calling dladdr.

2006-04-28  Bryce McKinlay  <mckinlay@redhat.com>

	* link.cc (_Jv_Linker::resolve_pool_entry): Don't pass vtable_index
	to resolve_method.
	* interpret.cc (insn_invokevirtual): Use method->index, not
	vtable_index. Check accflag FINAL to determine finals. Only do
	explicit null check if calling a final method. Use
	throw_null_pointer_exception.
	(invokevirtual_resolved): Likewise.
	(null_pointer_exc): Remove static field.
	(throw_null_pointer_exception): Always define. Throw a new
	NullPointerException every time.
	* include/java-interp.h (_Jv_ResolvedMethod): Remove vtable_index
	field.
	* include/execution.h (resolve_method): Remove vtable_index argument.

2006-04-28  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Add an additional checks for dladdr and dlopen on dld.
	* configure: Rebuilt.

2006-04-25  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/runtime/natSharedLibLoader.cc: Include gc.h later.
	Include platform.h.  Set GC_DEBUG before including gc.h, if
	needed.

2006-04-25  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc: Don't include link.h or dladdr.h.
	* boehm.cc: Don't include link.h.
	(_Jv_RegisterLibForGc): Cast away const when calling dladdr().

2006-04-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/natClass.cc (_Jv_getInterfaceMethod): Skip <clinit>.

2006-04-21  Andrew Haley  <aph@redhat.com>

	* include/execution.h (struct _Jv_CompiledEngine): Define for
	compiled classes.
	* java/lang/natClassLoader.cc (_Jv_RegisterClasses): Call
	_Jv_RegisterLibForGc.
	(_Jv_RegisterClasses_Counted): Likewise.
	(_Jv_NewClassFromInitializer): New.
	(_Jv_RegisterNewClasses): New.
	* sources.am: Regenerate.
	* boehm.cc (_Jv_GC_has_static_roots): new.
	(_Jv_InitGC): Call GC_register_has_static_roots_callback.
	(filename_node, find_file, _Jv_print_gc_store, new_node,
	_Jv_GC_has_static_roots, _Jv_RegisterLibForGc): New.
	* scripts/makemake.tcl: Add -fno-indirect-classes.
	* Makefile.in: Regenerate.
	* link.cc (resolve_pool_entry): Allocate constant pool.
	Allocate fields.
	
2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Weaken the check for MMAP.
	* configure: Rebuilt.
	* include/config.h.in: Likewise.

2006-04-20  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/27170
	* gnu/gcj/runtime/natSharedLibLoader.cc: Include gc.h to override
	dlopen(). From Anthony Green.

2006-04-20  Tom Tromey  <tromey@redhat.com>

	PR libgcj/21941:
	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (send): Throw
	UnknownHostException if needed.
	* gnu/java/net/natPlainSocketImplPosix.cc (connect): Throw
	UnknownHostException if needed.

2006-04-19  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (CLEANFILES): Removed all_java_filelist_files,
	all_java_deps_files.

2006-04-19  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/channels/natFileChannelPosix.cc (write): Properly
	handle EINTR.

2006-04-17  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27171:
	* testsuite/libjava.lang/pr27171.java: New file.
	* testsuite/libjava.lang/pr27171.out: New file.
	* gnu/gcj/convert/Output_UTF8.java (havePendingBytes): Return
	true if we've seen a high surrogate.
	(write): Handle high surrogates at the end of the stream.
	Properly emit isolated low surrogates.

2006-04-17  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.lang/stringconst2.java: Print a stack trace in case
	of failure.

2006-04-13  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26522:
	* Makefile.in: Rebuilt.
	* Makefile.am (libsubdir): New variable.

2006-04-12  NAKATA Maho  <maho@FreeBSD.org> 

	PR libgcj/23829
	* configure.ac: Link against -lpthread rather than -lc_r on
	FreeBSD 5 and above.
	* configure: Regenerate.

2006-04-11  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/gcj/runtime/SystemClassLoader.java (addClass): Get the value
	of package-private field "loadedClasses" using reflection.
	* java/lang/VMCompiler.java (compileClass): Remove unreachable catch
	block.

2006-04-10  Matthias Klose  <doko@debian.org>

	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
	directory names containing underscores.

2006-04-10  Andrew Haley  <aph@redhat.com>

	* include/x86_64-signal.h (HANDLE_DIVIDE_OVERFLOW): New.
	(SIGNAL_HANDLER): Mark arg as unused.
	* configure.host (x86_64-* DIVIDESPEC): Use
	fno-use-divide-subroutine.

2006-04-07  Andrew Haley  <aph@redhat.com>

	* java/net/InetAddress.java: Throw an UnknownHostException if
	lookup fails.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26625:
	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj-$(gcc_version).jar): Depend on
	classpath/lib/compile-classes.

2006-04-05  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* configure.host: Add -fno-omit-frame-pointer to libgcj_flags for
	MinGW since EBP is used for backtracking through call frames on this
	platform.

2006-04-05  Archit Shah  <ashah@redhat.com>

	PR java/25414
	* gnu/java/rmi/rmic/CompilerProcess.java (computeTypicalArguments):
	Add classpath argument.
	* gnu/java/rmi/rmic/Compile_gcj.java (computeArguments): Adjust
	caller.
	* gnu/java/rmi/rmic/Compile_jikes.java (computeArguments): Likewise.
	* gnu/java/rmi/rmic/Compile_kjc.java (computeArguments): Likewise.
	* gnu/java/rmi/rmic/Compiler.java (getClasspath, setClasspath): New.
	* gnu/java/rmi/rmic/RMIC.java: Set classpath for compiler, call
	mkdirs for destination directory, correct handling of superclasses
	and interfaces of the remote class, correct handling of exceptions
	declared by remote methods.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26990:
	* prims.cc (_Jv_RunMain): Use exitNoChecksAccessor.
	* gnu/java/lang/natMainThread.cc (call_main): Use
	exitNoChecksAccessor.
	* testsuite/libjava.lang/pr26990.out: New file.
	* testsuite/libjava.lang/pr26990.java: New file.
	* java/lang/Runtime.java (exitNoChecks): New method.
	(exitNoChecksAccessor): Likewise.
	(exit): Call exitNoChecks.

2006-04-03  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (ZIP): Removed.
	(libgcj-$(gcc_version).jar): Use $(JAR).
	(src.zip): Likewise.
	* configure: Rebuilt.
	* configure.ac: Check for jar.  Removed code to set ZIP.

2006-04-03  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/Float_2.java: New file.

2006-03-31  Andreas Tobler  <a.tobler@schweiz.ch>

	* posix.cc (_Jv_platform_nanotime): Declare id with clockid_t.

2006-03-30  Tom Tromey  <tromey@redhat.com>

	PR java/26042:
	* testsuite/libjava.compile/pr26042.java: New file.

2006-03-29  Tom Tromey  <tromey@redhat.com>

	* sources.am, Makefile.in: Rebuilt.
	* scripts/makemake.tcl: Scan classpath/external/relaxngDatatype.

2006-03-29  Tom Tromey  <tromey@redhat.com>

	PR java/26390:
	* testsuite/libjava.lang/pr26390.out: New file.
	* testsuite/libjava.lang/pr26390.java: New file.
	* sources.am, Makefile.in: Rebuilt.
	* scripts/makemake.tcl: Compile gnu/java/awt/peer/swing.

2006-03-29  Tom Tromey  <tromey@redhat.com>

	* posix.cc (_Jv_platform_nanotime): Look for CLOCK_MONOTONIC and
	CLOCK_HIGHRES.

2006-03-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* scripts/unicode-muncher.pl: Removed this file.
	* scripts/MakeCharTables.java: Likewise.
	* scripts/unicode-to-chartables.pl: New file.
	* java/lang/natCharacter.cc: 
	(UNASSIGNED_TYPE): New field.
	(UNASSIGNED_DIGIT): Likewise.
	(UNASSIGNED_DIRECTION): Likewise.
	(UNASSIGNED_NUMERIC_VALUE): Likewise.
	(PRIVATE_TYPE): Likewise.
	(PRIVATE_DIRECTION): Likewise.
	(readCodePoint): New method.
	(getType(jint)): Likewise.
	(toLowerCase(jint)): Likewise.
	(toUpperCase(jint)): Likewise.
	(toTitleCase(jint)): Likewise.
	(digit(jint, jint)): Likewise.
	(getNumericValue(jint)): Likewise.
	(getDirectionality(jint)): Likewise.
	(readChar),
	(getType(jchar)),
	(toLowerCase(jchar)),
	(toUpperCase(jchar)),
	(toTitleCase(jchar)),
	(digit(jchar, jint)),
	(getNumericValue(jchar)),
	(getDirectionality(jchar)): Changed references from data to data[0], 
	blocks to blocks[0], direction to direction[0], numValue to 
	numValue[0], upper to upper[0], lower to lower[0], and shift to 
	shift[0] to reflect the new structures in java-chartables.h.	
	* java/lang/Character.java:
	(readCodePoint): Declared new native method.
	(getType(int)): Likewise.
	(toLowerCase(int)): Likewise.
	(toUpperCase(int)): Likewise.
	(toTitleCase(int)): Likewise.
	(digit(int, int)): Likewise.
	(getNumericValue(int)): Likewise.
	(getDirectionality(int)): Likewise.
	(isLowerCase(int)): New method.
	(isUpperCase(int)): Likewise.
	(itTitleCase(int)): Likewise.
	(isDigit(int)): Likewise.
	(isDefined(int)): Likewise.
	(isLetter(int)): Likewise.
	(isLetterOrDigit(int)): Likewise.
	(isJavaIdentifierStart(int)): Likewise.
	(isJavaIdentifierPart(int)): Likewise.
	(isUnicodeIdentifierStart(int)): Likewise.
	(isUnicodeIdentifierPart(int)): Likewise.
	(isIdentifierIgnorable(int)): Likewise.
	(isSpaceChar(int)): Likewise.
	(isWhitespace(int)): Likewise.
	(isISOControl(int)): Likewise.
	(isMirrored(int)): Likewise.
	* include/java-chartables.h: Generated from 
	scripts/unicode-to-chartables.h.

2006-03-24  David Daney  <ddaney@avtrex.com)

	* testsuite/libjava.lang/PR26858.java: New test.
	* testsuite/libjava.lang/PR26858.out: Ditto.
	* testsuite/libjava.lang/PR26858.xfail: Ditto.

2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	* include/sh-signal.h (MAKE_THROW_FRAME): Change into empty
	macro.
	
2006-03-15  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jacks/jacks.xfail: Removed
	13.1-runtime-method-5.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	PR java/26638:
	* link.cc (get_interfaces): Skip <clinit>.
	(append_partial_itable): Likewise.

2006-03-10  Tom Tromey  <tromey@redhat.com>

	PR libgcj/25713:
	* java/util/zip/Deflater.java (flush): New method.
	* sources.am, Makefile.in: Rebuilt.
	* java/util/zip/DeflaterOutputStream.java: Removed.
	* java/util/zip/InflaterInputStream.java: Likewise.
	* java/util/zip/GZIPInputStream.java: Likewise.
	* java/util/zip/GZIPOutputStream.java: Likewise.

2006-03-10  Andreas Tobler  <a.tobler@schweiz.ch>

	* include/powerpc-signal.h: Fix typo in comment.

2006-03-09  Mark Wielaard  <mark@klomp.org>

	Imported GNU Classpath 0.90
	* scripts/makemake.tcl: Set gnu/java/awt/peer/swing to ignore.
	* gnu/classpath/jdwp/VMFrame.java (SIZE): New constant.
	* java/lang/VMCompiler.java: Use gnu.java.security.hash.MD5.
	* java/lang/Math.java: New override file.
	* java/lang/Character.java: Merged from Classpath.
	(start, end): Now 'int's.
	(canonicalName): New field.
	(CANONICAL_NAME, NO_SPACES_NAME, CONSTANT_NAME): New constants.
	(UnicodeBlock): Added argument.
	(of): New overload.
	(forName): New method.
	Updated unicode blocks.
	(sets): Updated.
	* sources.am: Regenerated.
	* Makefile.in: Likewise.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	PR libgcj/23495:
	* java/lang/natString.cc (_Jv_NewString): Use memcpy.
	(equals): Use memcmp.
	(contentEquals): Likewise.
	(getChars): Use memcpy.
	(toCharArray): Likewise.
	(regionMatches): Use memcmp.
	(regionMatches): Likewise.
	(startsWith): Likewise.
	(concat): Use memcpy.
	(valueOf): Likewise.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.ac (HAVE_CLOCK_GETTIME): Put -lrt in THREADLIBS as
	well.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	PR libgcj/24461:
	* java/util/zip/InflaterInputStream.java (fill): Throw exception
	if stream is truncated.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	* win32.cc (_Jv_platform_nanotime): New function.
	* include/win32.h (_Jv_platform_nanotime): Declare.
	* posix.cc (_Jv_platform_nanotime): New function.
	* include/posix.h (_Jv_platform_nanotime): Declare.
	* java/lang/natSystem.cc (nanoTime): New method.
	* java/lang/System.java (nanoTime): Declare.
	* include/config.h.in, configure: Rebuilt.
	* configure.ac: Check for clock_gettime.

2006-03-08  David Daney  <ddaney@avtrex.com>

	* configure.ac (LD): Add AC_CHECK_TOOL for ld.
	(LD_START_STATIC_SPEC): New AC_SUBST, set with ld check.
	(LD_FINISH_STATIC_SPEC): Ditto
	* configure: Regenerated.
	* libgcj.spec.in: Wrap -lgcj in LD_START_STATIC_SPEC and
	LD_FINISH_STATIC_SPEC.
	
2006-03-07  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26103:
	* java/lang/ClassLoader.java (loadClass): Don't throw
	StringIndexOutOfBoundsException if name is empty.
	* java/lang/natClassLoader.cc (loadClassFromSig): Throw exception
	if class not found.

2006-03-07  David Daney  <ddaney@avtrex.com>

	* include/java-interp.h: Removed extern "C" around #include <ffi.h>.

2006-03-07  David Daney  <ddaney@avtrex.com>

	* link.cc: Include ffi.h if USE_LIBFFI defined.
	
2006-03-03  Tom Tromey  <tromey@redhat.com>

	* interpret.cc (do_allocate_static_fields): Added comment.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	PR java/24321:
	* testsuite/libjava.lang/pr24321.java: New file.
	* testsuite/libjava.lang/pr24321.out: New file.
	* java/lang/natClass.cc (isInstance): Don't initialize class.
	(isAssignableFrom): Likewise.

2006-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR other/26208
	* exception.cc (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
	of _Unwind_GetIP.
	* include/i386-signal.h (MAKE_THROW_FRAME): Change into empty macro.
	(HANDLE_DIVIDE_OVERFLOW): Don't adjust _res->eip if falling through
	to throw.
	* include/x86_64-signal.h (MAKE_THROW_FRAME): Change into empty
	macro.
	* include/powerpc-signal.h (MAKE_THROW_FRAME): Change into empty
	macro.

2006-02-23  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/awt/j2d/IntegerGraphicsState.java (getClip): Clone clip
	before returning, handle null clip.
	(getClipBounds): Handle null clip.
	* gnu/awt/j2d/Graphics2DImpl.java (clipRect): Handle null clip.
	* gnu/awt/xlib/XCanvasPeer.java (): 
	(getLocationOnScreen): Implement.
	* classpath/gnu/java/awt/peer/GLightweightPeer.java
	(repaint): Merged with Classpath.
	* classpath/java/awt/Graphics.java (hitClip): Merged with
	Classpath.

2006-02-21  Robert Schuster  <robertschuster@fsfe.org>

	* link.cc: Added variant of create_error_method that
	will not complain about unused parameter if compiled with
	USE_LIBFFI not being defined.
	(_Jv_Linker::find_field_helper): Fixed indentation.
	(_Jv_Linker::create_error_method): Fixed indentation.
	(_Jv_Linker::link_symbol_table): Fixed indentation.

2006-02-16  Andrew Haley  <aph@redhat.com>

	* stacktrace.cc (GetStackTraceElements): Call
	gnu::gcj::runtime::NameFinder::removeUnknown() to determine if
	non-Java frames should be removed from a printed stack trace.
	Pass methodName to getLineNumberForFrame().
	(getLineNumberForFrame): Set method_name from info.dli_sname.
	* gnu/gcj/runtime/NameFinder.java (removeUnknown): New method.
	(remove_unknown): New variable.
	* include/java-stack.h (_Jv_StackTrace::getLineNumberForFrame):
	Add methodName arg.

2006-02-15  Matthias Klose  <doko@debian.org>

	* gnu/java/nio/charset, gnu/java/net/protocol/file,
	gnu/regexp: Remove empty directories.

2006-02-09  Bryce McKinlay  <mckinlay@redhat.com>

	* java/lang/Class.h (_Jv_IDispatchTable): Make it a struct. Put 
	'itable' inline, instead of as a pointer.
	(java::lang::Class): Put 'idt' in anonymous union with 'ioffsets'.
	* link.cc (null_idt): Update definition.
	(_Jv_Linker::prepare_constant_time_tables): Allocate klass->idt
	as a single struct. Use _Jv_AllocBytes, not _Jv_AllocRawObj.
	(_Jv_Linker::generate_itable): Update to use 'ioffsets'.
	(_Jv_Linker::find_iindex): Likewise. Update comment.
	* java/lang/natClass.cc	(_Jv_LookupInterfaceMethodIdx): Update for
	_Jv_IDispatchTable change.
	(_Jv_IsAssignableFrom): Likewise.

2006-02-08  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/25187:
	* gnu/gcj/io/natSimpleSHSStream.cc
	(gnu::gcj::io::SimpleSHSStream::shsFinal): Remove bogus cast.
	* interpret.cc (_Jv_InterpMethod::run): Simplify arguments to
	_Jv_InterpFrame(). 
	* boehm.cc: #undef some autoconf macros before including gc-config.h.
	(_Jv_MarkObject): Don't mark the class, it is reachable via the vtable.
	(_Jv_MarkArray): Likewise.
	* java/lang/ref/natReference.cc (java::lang::ref::Reference::create):
	Simplify _Jv_GCRegisterDisappearingLink() call.
	* java/lang/Class.h (getComponentType): Use element_type.
	(element_type): New field declaration, as a union with "methods".
	* java/lang/natClassLoader.cc (_Jv_NewArrayClass): Use "element_type".
	* java/net/natVMNetworkInterfacePosix.cc
	(java::net::VMNetworkInterface::getInterfaces): Add "int" cast to
	avoid sign comparison warning.	
	* include/java-interp.h (_Jv_InterpFrame): Take thread as second
	argument, not parent call frame.
	* include/x86_64-signal.h (MAKE_THROW_FRAME): Use "gregs" directly,
	without a cast.
	(restore_rt): Declare with hidden visibility, not "static".
	* posix.cc (_Jv_platform_initProperties): Make "tmpdir" a string
	constant.
	* jni.cc (_Jv_JNI_DestroyJavaVM): Use a union to avoid strict alias
	warning.

2006-02-08  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/26113:
	* link.cc (_Jv_Linker::print_class_loaded): Declare string constants
	as "const char *".
	* verify.cc (verify_fail): Likewise.
	* gnu/classpath/natSystemProperties.cc (file_encoding): Likewise.
	* interpret.cc (throw_internal_error, throw_class_format_error):
	Likewise.
	* gcj/javaprims.h (_Jv_hashUtf8String, _Jv_Utf8Const::space_needed, 
	_Jv_Utf8Const::init, _Jv_makeUtf8Const): Likewise.
	* java/lang/Class.h (_Jv_InitPrimClass): Likewise.
	* include/jvm.h (_Jv_strLengthUtf8, _Jv_makeUtf8Const): Likewise.
	* defineclass.cc (throw_internal_error, throw_no_class_def_found_error,
	is_attribute_name): Likewise.
	* prims.cc (_Jv_strLengthUtf8, _Jv_hashUtf8String, _Jv_Utf8Const::init,
	_Jv_makeUtf8Const, _Jv_InitPrimClass): Likewise.

2006-02-08  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26063, PR libgcj/17978, PR libgcj/10598:
	* defineclass.cc (parse): Use _Jv_AllocRawObj.
	(read_constpool): Likewise.
	(read_one_code_attribute): Use internal function name.
	(handleConstantPool): Use _Jv_AllocRawObj.
	(handleInterfacesBegin): Likewise.
	(handleFieldsBegin): Likewise.
	(handleMethodsBegin): Likewise.
	(handleCodeAttribute): Likewise.
	(handleMethodsEnd): Likewise.
	* include/jvm.h (new_vtable): Use _Jv_AllocRawObj.
	* interpret.cc (do_allocate_static_fields): Use _Jv_AllocRawObj.
	Allocate reference fields separately.
	* link.cc (prepare_constant_time_tables): Use _Jv_AllocRawObj.
	(add_miranda_methods): Likewise.
	(generate_itable): Use _Jv_AllocBytes.
	(find_iindex): Likewise.
	(struct method_closure): New structure.
	(create_error_method): Use struct method_closure; allocate with
	_Jv_AllocBytes.
	(ensure_fields_laid_out): Separate reference fields from
	non-reference fields.
	* boehm.cc (_Jv_MarkObj): Mark vtable.  Only mark direct fields
	of Class.
	(_Jv_MarkArray): Mark vtable.
	(_Jv_AllocRawObj): Don't allocate objects of size 0.
	* include/execution.h
	(_Jv_ExecutionEngine::allocate_static_fields): Added 'int'
	parameter.
	(struct _Jv_CompiledEngine): Updated.
	(class _Jv_InterpreterEngine): Updated.

2006-02-08  Tom Tromey  <tromey@redhat.com>

	PR java/22578:
	* gcj/javaprims.h: Updated.
	* sources.am, Makefile.in: Rebuilt.
	* java/lang/natDouble.cc (doubleToLongBits): Moved to VMDouble.
	(doubleToRawLongBits): Likewise.
	(longBitsToDouble): Likewise.
	(toString): Likewise.
	(parseDouble): Likewise.
	* java/lang/natFloat.cc (floatToIntBits): Moved to VMFloat.
	(floatToRawIntBits): Likewise.
	(intBitsToFloat): Likewise.
	* java/lang/VMDouble.java: New file.
	* java/lang/VMFloat.java: New file.
	* java/lang/Float.java, java/lang/Double.java: Removed.

2006-02-06  Tom Tromey  <tromey@redhat.com>

	* gij.cc (version): Use 2006.
	* gnu/java/rmi/rmic/RMIC.java (parseOptions): Use 2006.
	* gnu/gcj/convert/Convert.java (version): Use 2006.
	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Use 2006.

2006-02-04  Tom Tromey  <tromey@redhat.com>

	PR java/25676:
	* testsuite/libjava.lang/pr25676.out: New file.
	* testsuite/libjava.lang/pr25676.java: New file.

2006-02-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (src.zip): Update src.zip file search to look in
	classpath directory.
	* Makefile.in: Regenerate.

2006-02-03  Robert Schuster  <robertschuster@fsfe.org>

	* link.cc:
	(_Jv_Linker::create_error_method): Added missing (void *) cast.

2006-02-03  Robert Schuster  <robertschuster@fsfe.org>

	* include/jvm.h:
	(_Jv_Linker::create_error_method): New method declaration.
	* link.cc:
	(_Jv_Linker::create_error_method): New method.
	(_Jv_Linker::link_symbol_table): Use new method above.

2006-02-01  Robert Schuster  <robertschuster@fsfe.org>

	* link.cc:
	(_Jv_Linker::find_field_helper): Added checks.
	(_Jv_Linker::find_field): Use exception swallowing class resolution
	and added early return.
	(_Jv_ThrowNoClassDefFoundErrorTrampoline): New function.
	(_Jv_Linker::link_symbol_table):  Use exception swallowing class
	resolution, added ffi_closure installation routine, use
	_Jv_ThrowNoClassDefFoundError for missing static method.
	(_Jv_Linker::ensure_class_linked): Added string check which does
	not trigger class resolution.
	* java/lang/natClassLoader.cc:
	(_Jv_FindClassNoException): New method.
	* java/lang/Class.h:
	(_Jv_FindClassNoException): New method declaration.
	* include/jvm.h:
	(_Jv_FindClassNoException): New method declaration.
	(_Jv_FindClassFromSignatureNoException): New method declaration.
	* prims.cc:
	(_Jv_FindClassFromSignatureNoException): New method.
	* gcj/javaprims.h:
	(_Jv_equalsUtf8Classname): New method declaration.
	(_Jv_isPrimitiveOrDerived): Dito.
	* prims.cc:
	(_Jv_equalsUtf8Classnames): New method.
	(_Jv_isPrimitiveOrDerived): New method.
	* verify.cc:
	(ref_intersection::equals): Use new classname comparison method.
	(type::compatible): Use new classname comparison method. Added
	check whether LHS' type is java.lang.Object .
	(type::resolve): Added new optional debug message and simplified
	if-expression.
	(type::to_array): Added codepath that generates an array type
	without resolving the element type.

2006-01-31  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add 4.1 updates.

2006-01-30  Keith Seitz  <keiths@redhat.com>

	* include/java-interp.h (insn_index): New declaration.
	(num_insn_slots): New private variable.
	(get_line_table): New declaration.
	* interpret.cc (insn_index): New function.
	(get_line_table): New function.

2006-01-24  Archit Shah  <ashah@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* prims.cc (next_property_value): Never return NULL.
	(process_gcj_properties): Copy 'props' before using it.

2006-01-23  Keith Seitz  <keiths@redhat.com>

	* java/lang/Class.h (_Jv_FindInterpreterMethod): Add new declaration.
	* java/lang/natClass.cc (_Jv_FindInterpreterMethod): New function.

2006-01-23  David Daney  <ddaney@avtrex.com>

	* configure.host (disable_dladdr): Remove variable and its
	documentation.
	* configure.ac: Do not test for disable_dladdr.
	* configure: Regenerate.
	* include/config.h.in: Regenerate.

2006-01-18  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it
	already exists.

2006-01-18  Keith Seitz  <keiths@redhat.com>

	* include/java-interp.h (_Jv_CompileMethod): Add declaration.
	(class _Jv_InterpMethod): Add _Jv_CompileMethod as a friend.
	* interpret.cc (_Jv_CompileMethod): New function.
	(run): 	Massage code to allow for NULL args.
	Update comments to explain NULL args.
	Return if compiling the method and args is NULL.

2006-01-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR libgcj/25840
	* include/x86_64-signal.h (RESTORE2): Add ".text\n".

2006-01-17  Tom Tromey  <tromey@redhat.com>

	PR classpath/20198:
	* java/net/URLClassLoader.java (FileURLLoader): Added argument.
	(JarURLLoader): Likewise.
	(addURLImpl): Canonicalize file URLs.

2006-01-16  Mark Wielaard  <mark@klomp.org>

	Imported GNU Classpath 0.20
	* Makefile.am (AM_CPPFLAGS): Add classpath/include.
	* java/nio/charset/spi/CharsetProvider.java: New override file.
	* java/security/Security.java: Likewise.
	* sources.am: Regenerated.
	* Makefile.in: Likewise.

2006-01-17  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac (dbexecdir): New substituted var.
	* configure: Rebuilt.
	* Makefile.am (dbexecdir): Remove.
	* Makefile.in: Rebuilt.

2006-01-13  Tom Tromey  <tromey@redhat.com>

	* gnu/regexp/MessagesBundle_fr.properties: Removed.
	* gnu/regexp/MessagesBundle.properties: Removed.

2006-01-13  Tom Tromey  <tromey@redhat.com>

	* java/security/classpath.security: Removed.
	* Makefile.in: Rebuilt.
	* Makefile.am (install-data-local): Don't install
	classpath.security.

2006-01-08  Chris Burdess  <dog@gnu.org>

	* java/lang/Character.java (toChars,toCodePoint): Correct these
	  methods to use algorithms from Unicode specification.

2006-01-08  Tom Tromey  <tromey@redhat.com>

	* java/lang/StringBuilder.java (appendCodePoint): New method.
	(insert): New overloads.
	* java/lang/StringBuffer.java (StringBuffer): New constructor.
	(charAt): Remerged javadoc.
	(codePointAt, codePointBefore): New methods.
	(appendCodePoint): New method.
	(append): New overloads.
	(insert): Likewise.
	(trimToSize, codePointCount, offsetByCodePoints): New methods.
	* java/lang/Float.java (SIZE): New field.
	(valueOf): New method.
	* java/lang/natDouble.cc (initIDs): Removed.
	* java/lang/Double.java (static initializer): Removed.
	(SIZE): New field.
	(valueOf): New method.
	(initIDs): Removed.

2006-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR libgcj/24940
	* shlibpath.m4: Replace $SED with sed.
	* configure: Rebuilt.

2006-01-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/Character.java (SIZE, MAX_CACHE, charCache,
	MIN_SURROGATE, MAX_SURROGATE): New fields from Classpath.
	(MIN_HIGH_SURROGATE, MAX_HIGH_SURROGATE, MIN_LOW_SURROGATE,
	MAX_LOW_SURROGATE): Javadoc fixes.
	(valueOf, reverseBytes, isHighSurrogate, isLowSurrogate,
	isSurrogatePair, toCodePoint, codePointAt, codePointBefore): New
	methods from Classpath.
	* java/lang/String.java (codePointAt, codePointBefore,
	codePointCount, contains, replace): New methods from Classpath.
	(contentEquals): Declare.
	* java/lang/natString.cc (contentEquals): New method.

2005-12-26  Anthony Green  <green@redhat.com>

	* gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount
	of data to read (dst.remaining()).
	* gnu/java/nio/DatagramChannelImpl.java (receive): Ditto.

2005-11-11  Mark Wielaard  <mark@klomp.org>

	Reported by john.zigman@anu.edu.au as bug #24608.
	* gnu/java/nio/SocketChannelImpl.java (read): Put readBytes in
	destination ByteBuffer when it doesn't have an array instead of len
	bytes.

2006-01-05  Tom Tromey  <tromey@redhat.com>

	* java/lang/natThread.cc (finish_): Don't clear 'group'.
	* sources.am, Makefile.in: Rebuilt.
	* java/lang/Runtime.java (exit): Merged with Classpath.
	(runShutdownHooks): New method from Classpath.
	* java/io/File.java (deleteOnExit): Use DeleteFileHelper, not
	FileDeleter.
	* gnu/gcj/runtime/FileDeleter.java: Removed.
	* java/lang/natRuntime.cc (runFinalizationForExit): New method.
	(exitInternal): Don't run finalizers or delete files.

2006-01-05  Tom Tromey  <tromey@redhat.com>

	* java/lang/natPosixProcess.cc (reap): Ignore unknown children.

2006-01-04  Krister Walfridsson  <cato@df.lth.se>

	* posix-threads.cc (_Jv_InitThreads): #ifdef PTHREAD_STACK_MIN

2006-01-04  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Updated.
	* java/lang/natClassLoader.cc (_Jv_CopyClassesToSystemLoader):
	Changed argument type.  Use SystemClassLoader.addClass.
	* gnu/gcj/runtime/SystemClassLoader.java (addClass): New method.

