2012-12-19  Matthias Klose  <doko@ubuntu.com>

        Import GNU Classpath (20121202).

	* Regenerate class and header files.
	* Regenerate auto* files.
	* sources.am, gcj/javaprims.h: Regenerate.
	* gnu/java/nio/FileLockImpl.java (close): New override.

2012-12-12  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (lib_gnu_awt_xlib_la_CPPFLAGS): Use
	$(LIBSTDCXX_RAW_CXX_CXXLAGS).
	(lib_gnu_awt_xlib_la_LDFLAGS): Use $(LIBSTDCXX_RAW_CXX_LDLAGS).
	* configure.ac (GCC_LIBSTDCXX_RAW_CXX_FLAGS): New.
	* aclocal.m4: Regenerated.
	* Makefile.in:Likewise.
	* configure: Likewise.

2012-11-19  Matthias Klose  <doko@ubuntu.com>

	* libtool-version: Bump soversion.

2012-10-15  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Match arm*-*-linux-* for ARM Linux/GNU.
	* configure: Regenerate.

2012-09-14  Dehao Chen  <dehao@google.com>

	* testsuite/libjava.lang/sourcelocation.java: New cases.
	* testsuite/libjava.lang/sourcelocation.out: New cases.

2012-09-14  David Edelsohn  <dje.gcc@gmail.com>

	* configure: Regenerated.

2012-07-19  Tristan Gingold  <gingold@adacore.com>
	    Richard Henderson  <rth@redhat.com>

	* libgcj.ver: Add __gcj_personality_seh0.
	* exception.cc (__gcj_personality_seh0): New function.
	Adjust for SEH.

2012-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR libjava/53973
	* include/x86_64-signal.h (CHECK_67H_PREFIX): Removed.
	(HANDLE_DIVIDE_OVERFLOW): Skip 67h address size prefix
	unconditionally.

2012-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR libjava/53973
	* include/x86_64-signal.h (CHECK_67H_PREFIX): New.
	(HANDLE_DIVIDE_OVERFLOW): Check and and skip 67h address size
	prefix if CHECK_67H_PREFIX is 1.  Use ULL suffix for 64-bit
	integer.

2012-06-20  David Edelsohn  <dje.gcc@gmail.com>
	    Alan Modra  <amodra@gmail.com>

	* sysdep/powerpc/locks.h (compare_and_swap): Use GCC atomic
	intrinsics.
	(release_set): Same.
	(compare_and_swap_release): Same.
	(read_barrier): Same.
	(write_barrier): Same.

2012-06-15  Andreas Schwab  <schwab@linux-m68k.org>

	* sysdep/m68k/locks.h (compare_and_swap): Use
	__sync_bool_compare_and_swap.
	(release_set): Use write_barrier instead of inlining it.

2012-06-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* sysdep/s390/locks.h (compare_and_swap, release_set)
	(read_barrier, write_barrier): Use the GCC atomic builtins.

2012-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* sysdep/sh/locks.h (__cas_lock): Remove.
	(__cas_start_atomic, __cas_end_atomic): Likewise.
	(compare_and_swap): Call __sync_bool_compare_and_swap.

2012-05-21  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/52700
	* configure.ac: Allow gnu, gnu-versioned-namespace for
	--enable-symvers arguments.
	* configure: Regenerate.

2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

2012-04-23  Andrew Haley  <aph@redhat.com>

	* defineclass.cc (MAJOR_1_7,  MINOR_1_7): New.
	(parse): Allow MAJOR_1_7 classfile version.

2012-04-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libgcj/52645
	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption):
	Restore HAVE_INET6 check.
	* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
	Likewise.

2012-03-25  Gerald Pfeifer  <gerald@pfeifer.com>

	PR libgcj/52694
	* java/io/natVMConsole.cc (IUCLC): Define, if undefined.
		
2012-03-16  Andrew John Hughes  <ahughes@redhat.com>

	* Makefile.am: Add natVMConsole.cc.
	* Makefile.in: Regenerated.
	* gcj/Makefile.in: Likewise.
	* gcj/javaprims.h: Classes updated.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h,
	* gnu/javax/net/ssl/provider/CipherSuite.h,
	* gnu/javax/net/ssl/provider/OutputSecurityParameters.h,
	* include/Makefile.in:
	Regenerated.
	* java/io/Console.h,
	* java/io/IOError.h,
	* java/io/ObjectOutputStream$2.h:
	Initial generation.
	* java/io/ObjectOutputStream.h: Regenerated.
	* java/io/VMConsole.h: Initial generation.
	* java/io/VMConsole.java: Copied from classpath/vm/reference.
	* java/io/natVMConsole.cc: Implemented readPassword.
	* java/nio/channels/spi/SelectorProvider$1.h,
	* java/security/KeyStore$1.h:
	Initial generation.
	* java/security/ProtectionDomain.h,
	* java/text/DateFormatSymbols.h,
	* java/util/HashMap.h,
	* java/util/regex/Matcher.h,
	* java/util/regex/Pattern.h:
	Regenerated.
	* javax/xml/stream/util/ReaderDelegate.h:
	Removed.
	* sources.am,
	* testsuite/Makefile.in:
	Regenerated.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (THREADLIBS): Remove *-*-solaris2.8 handling.
	* configure: Regenerate.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (libgcj_cv_exidx): Remove IRIX 6 ld workaround.
	(mips-sgi-irix6*): Remove.
	(mips-sgi-irix*): Remove.
	(AC_CHECK_HEADERS): Remove bstring.h.
	* configure: Regenerate.
	* include/config.h.in: Regenerate.
	* configure.host (mips-sgi-irix6*): Remove.

	* include/posix-signal.h [__sgi__]: Remove.

	* gnu/java/net/natPlainDatagramSocketImplPosix.cc
	[HAVE_BSTRING_H]: Remove.
	* gnu/java/net/natPlainDatagramSocketImplWin32.cc: Likewise.
	* gnu/java/net/natPlainSocketImplPosix.cc: Likewise.

2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (alpha*-dec-osf*): Remove.
	* configure: Regenerate.
	* configure.host (alpha*-dec-osf*): Remove.

	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use
	IPV6_MULTICAST_IF unconditionally.
	* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
	Likewise.
	* gnu/java/net/natPlainSocketImplPosix.cc
	(gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of
	_Jv_accept.
	* include/posix-signal.h [__alpha__ && __osf__]: Remove.
	* include/posix.h (_POSIX_PII_SOCKET): Don't define.
	(_Jv_accept): Remove.

	* java/io/File.java (File._access): Rename to access.
	Change callers.
	(File._stat): Likewise.
	* java/io/File.h: Regenerate.
	* classpath/lib/java/io/File.class: Regenerate.
	* java/io/natFilePosix.cc (java::io::File::_access): Rename to
	access.
	(java::io::File::_stat): Rename to stat.
	* java/io/natFileWin32.cc: Likewise.

	* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
	Remove alpha*-dec-osf* handling.
	* testsuite/libjava.jvmti/jvmti-interp.exp
	(gcj_jni_compile_c_to_so): Likewise.
	* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o):
	Likewise.

2012-02-23  Patrick Marlier  <patrick.marlier@gmail.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/49461
	* configure.ac (SYSTEMSPEC): No longer pass -no_pie for darwin11.
	* configure: Regenerate.

2012-02-02  Kai Tietz  <ktietz@redhat.com>

	PR libjava/48512
	* configure.ac (THREADSTARTFILESPEC): Don't add crtmet.o file for
	w64 windows targets.
	* configure: Regenerated.

2012-02-01  Kai Tietz  <ktietz@redhat.com>

	PR target/51500
	* interpret.cc (_Jv_init_cif): Handle thiscall
	convention for 32-bit Windows.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA):
	Likewise.
	* java/lang/reflect/natVMProxy.cc (invoke_t): Add
	thiscall-attribute for 32-bit Windows.

2012-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gnu/gcj/convert/Convert.java (version): Update copyright notice
	dates.
	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.

Copyright (C) 2012 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
