2017-10-10  Release Manager

	* GCC 5.5.0 released.

2016-06-03  Release Manager

	* GCC 5.4.0 released.

2015-12-04  Release Manager

	* GCC 5.3.0 released.

2015-09-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* os_dep.c [GC_SOLARIS_THREADS] (GC_dirty_init): Use
	/proc/<pid>/pagedata instead of PIOCOPENPD.

2015-07-16  Release Manager

	* GCC 5.2.0 released.

2015-04-22  Release Manager

	* GCC 5.1.0 released.

2014-12-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/lib/boehm-gc.exp: Load target-utils.exp.

2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

2014-10-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* include/gc.h [(sparc || __sparc) && sun] (GC_INIT): Remove
	comment and definition.

2014-10-06  Marek Polacek  <polacek@redhat.com>

	* testsuite/boehm-gc.c/gctest.c: Fix defaulting to int.

2014-05-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Fix current cygwin-64 build problems.
	* include/gc_config_macros.h (GC_PTHREADS): Use __CYGWIN__ instead
	of __CYGWIN32__ here.
	* win32_threads.c (GC_push_all_stacks): Push all X86_64 registers.
	(GC_get_thread_stack_base): Get the stack base for X86_64.

2014-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR other/43620
	* Makefile.am (AUTOMAKE_OPTIONS): Add no-dist.
	* include/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
	* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
	* Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

2013-12-21  Andreas Tobler  <andreast@gcc.gnu.org>

	* include/private/gcconfig.h: Add FreeBSD powerpc64 defines.

2013-09-20  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2013-09-04  Matthias Klose  <doko@ubuntu.com>

	* Makefile.am (libgcjgc_la_LIBADD): Add EXTRA_TEST_LIBS.
	* Makefile.in: Regenerate.

2013-03-16  Yvan Roux <yvan.roux@linaro.org>

	* include/private/gcconfig.h (AARCH64): New macro (defined only if
	__aarch64__).
	(CPP_WORDSZ): Define for AArch64.
	(MACH_TYPE): Likewise.
	(ALIGNMENT): Likewise.
	(HBLKSIZE): Likewise.
	(OS_TYPE): Likewise.
	(LINUX_STACKBOTTOM): Likewise.
	(USE_GENERIC_PUSH_REGS): Likewise.
	(DYNAMIC_LOADING): Likewise.
	(DATASTART): Likewise.
	(DATAEND): Likewise.
	(STACKBOTTOM): Likewise.
	(NOSYS): Likewise.
	(mach_type_known): Define for AArch64 and comment update.

2013-03-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* os_dep.c [SOLARIS_STACKBOTTOM] (GC_solaris_stack_base): New
	function.
	[!BEOS && !AMIGA && !MSWIN32 && !MSWINCE && !OS2 && !NOSYS &&
	!ECOS] (GC_get_stack_base): Use it.
	* include/private/gcconfig.h [SPARC && SUNOS5]
	(SOLARIS_STACKBOTTOM): Define.
	(STACKBOTTOM, HEURISTIC2): Remove.
	[I386 && SUNOS5]
	(SOLARIS_STACKBOTTOM): Define.
	(STACKBOTTOM): Remove.

2012-11-04  Samuel Thibault  <samuel.thibault@gnu.org>

	* configure.ac: Add stanza for *-*-gnu* threads configuration.
	* configure: Regenerate.
	* include/gc_config.h.in: Likewise.
	* dyn_load.c (_GNU_SOURCE): Define for __GNU__.
	* include/gc_config_macros.h (_REENTRANT, GC_PTHREADS): Define for
	GC_GNU_THREADS.
	* include/private/gcconfig.h (DATASTART): Don't define for I386 &&
	HURD.
	(SIG_SUSPEND, SIG_THR_RESTART, SEARCH_FOR_DATA_START): Define for
	I386 && HURD.
	(UNIX_LIKE, REGISTER_LIBRARIES_EARLY): Define for HURD.
	* os_dep.c (GC_init_linux_data_start): Handle for HURD.
	* pthread_support.c (GC_thr_init): Add case for GC_GNU_THREADS.
	* specific.c: Use for GC_GNU_THREADS.
	* threadlibs.c: Add case for GC_GNU_THREADS.

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

	* configure: Regenerated.

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

	* configure: Regenerated.

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

	Merge upstream changes
	* include/private/gcconfig.h: (ALIGNMENT): Set to 4 for x32.
	(CPP_WORDSZ): Set to 32 for x32.

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

	PR boehm-gc/48299
	* testsuite/boehm-gc.c/thread_leak_test.c: Merge upstream changes.

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

	PR boehm-gc/52179
	* include/gc_config.h.in: Undefine HAVE_PTHREAD_GET_STACKADDR_NP.
	* include/private/gcconfig.h (DARWIN): Define STACKBOTTOM with
	pthread_get_stackaddr_np when available.
	* configure.ac (THREADS): Check availability of pthread_get_stackaddr_np.
	* configure: Regenerate.

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

	PR boehm-gc/48514
	* include/gc_config_macros.h (GC_DLL): Define it for mingw-targets
	only, if we are actual in boehm-gc's build and DLL_EXPORT
	is defined.

2011-11-21  Andreas Tobler  <andreast@fgznet.ch>

	* configure: Regenerate.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (THREADS): Remove posix95.
	* configure: Regenerate.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/39150
	* configure.ac (i?86-*-solaris2.[89]): Also accept
	x86_64-*-solaris2.1?.
	* configure: Regenerate.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libgcj/49451
	* include/private/gcconfig.h [IRIX5 && _MIPS_SZPTR == 64]
	(ELF_CLASS): Define.
	* dyn_load.c [IRIX5]: Include <elf.h>.
	Include <obj.h> for O32, <objlist.h> for N32, N64.
	[SUNOS5DL && USE_PROC_FOR_LIBRARIES] (obj_offset): Define.
	[SUNOS4 && USE_PROC_FOR_LIBRARIES] (obj_offset): Define.
	[IRIX5 && !USE_PROC_FOR_LIBRARIES] (struct link_map): Define.
	(__rld_obj_head): Declare.
	(l_next, l_addr, obj_offset): Define.
	(GC_FirstDLOpenedLinkMap): New function.
	[SUNOS4 || SUNOS5DL] (GC_register_dynamic_libraries): Also use on
	IRIX5.
	Use obj_offset.
	[IRIX5 || (USE_PROC_FOR_LIBRARIES && !LINUX]
	(GC_register_dynamic_libraries): Don't use /proc version on IRIX5.

2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (THREADS): Remove decosf1, irix, mach, os2.
	* configure: Regenerate

2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR testsuite/48480
	* testsuite/lib/boehm-gc.exp (boehm-gc-dg-prune): Allow for path
	to ranlib.

2011-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR boehm-gc/11412
	* configure.ac (THREADCFLAGS): New variable.
	Use it instead of INCLUDES, AM_CPPFLAGS.
	<*-*-kfreebsd*-gnu> (THREADDLLIBS): Rename to THREADLIBS.
	Remove DG/UX support.
	(AC_CONFIG_FILES): Add testsuite/Makefile.
	* Makefile.am (AUTOMAKE_OPTIONS): Use foreign instead of cygnus.
	(SUBDIRS): Add testsuite.
	(libgcjgc_la_LIBADD): Remove $(UNWINDLIBS).
	(AM_CXXFLAGS): Add $(THREADCFLAGS).
	(AM_CFLAGS): Likewise.
	Remove TESTS related variables.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.am: New file.
	* testsuite/Makefile.in: New file.
	* testsuite/lib/boehm-gc.exp: New file.
	* testsuite/config/default.exp: New file.
	* testsuite/boehm-gc.c/c.exp: New file.
	* testsuite/boehm-gc.lib/lib.exp: New file.
	* tests/test.c: Move ...
	* testsuite/boehm-gc.c/gctest.c: ... here.
	* tests/leak_test.c, tests/middle.c, tests/thread_leak_test.c,
	tests/trace_test.c: Move ...
	* testsuite/boehm-gc.c: ... here.
	* testsuite/boehm-gc.c/trace_test.c: Skip everywhere.
	* tests/staticrootslib.c, tests/staticrootstest.c: Move ...
	* testsuite/boehm-gc.lib: ... here.
	* testsuite/boehm-gc.lib/staticrootstest.c: Use dg-add-shlib
	staticrootslib.c.
	* tests/test_cpp.cc: Move ...
	* testsuite/boehm-gc.c++: ... here.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (THREADS): Remove solaris.
	* configure: Regenerate.

2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Don't use libdl on mips-sgi-irix6*.
	* configure: Regenerate.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (*-*-solaris2*): Add -lrt to THREADLIBS.
	* configure: Regenerate.

2010-12-10  Iain Sandoe  <iains@gcc.gnu.org>

	* powerpc_darwin_mach_dep.s:  Update for m64.  Add eh frames.
	Do not build or use the picsymbol stub for Darwin >= 9.
	* tests/test.c (reverse_test):  Modify count for ppc64-darwin.
	* pthread_support.c (GC_get_thread_stack_base): Correct a debug
	statement.

2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
	    Mike Stump  <mrs@gcc.gnu.org>

	PR target/26427
	PR target/33120
	PR testsuite/35710
	* dyn_load.c (GC_register_dynamic_libraries/DARWIN):  Add new writable
	data section names.
	(GC_dyld_name_for_hdr): Adjust layout.
	(GC_dyld_image_add): Adjust layout, add new Darwin sections, adjust
	debug to name the sections.
	(GC_dyld_image_remove): Adjust layout, remove new Darwin sections,
	adjust debug to name the sections.
	(GC_register_dynamic_libraries): Adjust layout.
	(GC_init_dyld): Likewise.
	(GC_register_main_static_data): Likewise.

2010-10-29  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2010-10-28  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Rewrite DGUX check to use GC_CFLAGS, and -O0 check
	to remove the need for MY_CFLAGS.
	* Makefile.am: Do not use @...@ substitutions.  Use AM_CXXFLAGS,
	AM_CFLAGS and AM_LDFLAGS instead of redefining LTCOMPILE and LINK.
	Use "override" to disable -O2 when required.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.

2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* dyn_load.c: Fix typo.
	* pthread_support.c (GC_get_thread_stack_base) [DEBUG_THREADS]:
	Use GC_printf0.

2010-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (*-*-solaris2.8*): Only usr alternate thread
	library on Solaris 8.
	(*-*-solaris2*): Use regular thread library otherwise.
	* configure: Regenerate.

2010-05-13  Uros Bizjak  <ubizjak@gmail.com>

	* tests/leak_test.c (main): Declare as int.  Return 0.
	* tests/thread_leak_test.c (main): Ditto.
	* tests/trace_test.c (main): Ditto.

2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/42811
	* tests/staticrootstest.c: New test source file.
	* tests/staticrootslib.c: New test library source file.
	* Makefile.am (test_ldadd): New variable.
	(gctest_LDADD): Use it.
	(TESTS): Add leaktest, middletest and staticrootstest.
	(check_PROGRAMS): Likewise.
	(leaktest_SOURCES): New libtool variable definition.
	(leaktest_LDADD): Likewise.
	(leaktest_LDFLAGS): Likewise.
	(leaktest_LINK): Likewise.
	(middletest_SOURCES): Likewise.
	(middletest_LDADD): Likewise.
	(middletest_LDFLAGS): Likewise.
	(middletest_LINK): Likewise.
	(staticrootstest_SOURCES): Likewise.
	(staticrootstest_LDADD): Likewise.
	(staticrootstest_LDFLAGS): Likewise.
	(staticrootstest_LINK): Likewise.
	(check_LTLIBRARIES): Likewise.
	(libstaticrootslib_la_SOURCES): Likewise.
	(libstaticrootslib_la_LIBADD): Likewise.
	(libstaticrootslib_la_LDFLAGS): Likewise.
	(libstaticrootslib_la_DEPENDENCIES): Likewise.
	* Makefile.in: Regenerate.

2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.

2010-03-21  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/42811 (prerequisite)
	* include/private/gc_priv.h (struct roots) [CYGWIN32]: Don't
	declare r_next member on Cygwin as on other windows hosts.
	(LOG_RT_SIZE) [CYGWIN32]: Don't define likewise.
	(RT_SIZE) [CYGWIN32]: Likewise.
	(struct _GC_arrays) [CYGWIN32]: Do declare _heap_bases[] member
	likewise.
	(GC_heap_bases) [CYGWIN32]: Do define likewise.
	(struct _SYSTEM_INFO) [CYGWIN32]: Do forward-declare likewise.
	(GC_sysinfo) [CYGWIN32]: Do declare extern likewise.
	(GC_n_heap_bases) [CYGWIN32]: Likewise.
	(GC_is_tmp_root) [CYGWIN32]: Do prototype likewise.
	* include/private/gcconfig.h (GC_win32_get_mem) [CYGWIN32]: Likewise.
	(GET_MEM) [CYGWIN32]: Do define likewise.
	* boehm-gc/ptr_chck.c (GC_is_visible) [CYGWIN32]: Do handle dynamic
	registration likewise.
	* boehm-gc/os_dep.c (GC_setpagesize) [CYGWIN32]: Do define likewise.
	(GC_no_win32_dlls) [CYGWIN32]: Define as constant false, unlike
	other windows hosts.
	(GC_sysinfo) [CYGWIN32]: Define as on other windows hosts.
	(GC_n_heap_bases) [CYGWIN32]: Likewise.
	(GLOBAL_ALLOC_TEST) [CYGWIN32]: Likewise.
	(GC_win32_get_mem) [CYGWIN32]: Likewise, but wrapping GC_unix_get_mem
	rather than GlobalAlloc/VirtualAlloc.
	(GC_win32_free_heap) [CYGWIN32]: Likewise, but wrapping free instead
	of GlobalFree (even though the function body is optimised away).
	* boehm-gc/mark_rts.c (add_roots_to_index) [CYGWIN32]: Define as on
	other windows hosts.
	(GC_add_roots_inner) [CYGWIN32]: Avoid overlapping or adjacent
	intervals likewise.
	(GC_clear_roots) [CYGWIN32]: Clear GC_root_index[] likewise.
	(GC_rebuild_root_index) [CYGWIN32]: Define as on other windows hosts.
	(GC_remove_tmp_roots) [CYGWIN32]: Call it likewise.
	(GC_remove_roots) [CYGWIN32]: Don't define, as on other windows hosts.
	(GC_is_tmp_root) [CYGWIN32]: Define, as on other windows hosts.
	(GC_cond_register_dynamic_libraries) [CYGWIN32]: Handle temporary
	roots and dynamic registration likewise.
	* boehm-gc/dyn_load.c (GC_has_static_roots) [CYGWIN32]: Define as on
	other windows hosts.
	(GC_register_has_static_roots_callback) [CYGWIN32]: Likewise.
	(GC_cond_add_roots) [CYGWIN32]: Likewise.
	(GC_register_main_static_data) [CYGWIN32]: Define to always return
	false, as on MSWINCE
	(HAVE_REGISTER_MAIN_STATIC_DATA) [CYGWIN32]: Define as on other
	windows hosts.
	(GC_warn_fb) [CYGWIN32]: Likewise.
	(GC_disallow_ignore_fb) [CYGWIN32]: Likewise.
	(GC_ignore_fb_mb) [CYGWIN32]: Likewise.
	(GC_ignore_fb) [CYGWIN32]: Likewise.
	(is_frame_buffer) [CYGWIN32]: Likewise.
	(GC_dump_meminfo) [CYGWIN32]: Likewise.
	(GC_wnt) [CYGWIN32]: Define to constant true.
	(GC_register_dynamic_libraries) [CYGWIN32]: Define as on other
	windows hosts.

2009-12-09  Matthias Klose  <doko@ubuntu.com> 

	* include/private/gc_locks.h: For __ARM_EABI__ define
	GC_test_and_set  GC_clear to use the atomic builtins.

2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.

2009-11-30  Ben Elliston  <bje@au.ibm.com>

	* mark_rts.c (GC_approx_sp): Use __builtin_frame_address when
	compiling with GCC rather than taking the address of a local
	variable.

2009-11-30  Ben Elliston  <bje@au.ibm.com>

	* os_dep.c: Use the POSIX signal API in preference to the BSD API.
	Generate a compilation error if neither the POSIX nor BSD APIs can
	be detected.

2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.am (libgcjgc_la_LINK, gctest_LINK): New.
	(gctest_LDADD): Depend on libgcjgc.la instead of ./libgcjgc.la,
	so that library dependency resolution works with portable make.
	* Makefile.in: Regenerate.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with modified libtool.m4.

2009-09-03  Loren J. Rittle  <ljrittle@acm.org>

	* dyn_load.c (HAVE_DL_ITERATE_PHDR): Break definition from use.
	Define for FreeBSD 7.0+.

2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (AC_PREREQ): Bump to 2.64.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.am (install-html, install-pdf): Remove.
	* Makefile.in: Regenerate.

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.
	* include/gc_config.h.in: Regenerate.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.am (LTCOMPILE, LTLINK): Add $(AM_LIBTOOLFLAGS)
	and $(LIBTOOLFLAGS).
	* Makefile.in: Regenerate.

2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.

2009-07-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR boehm-gc/40785
	* include/private/gc_locks.h (GC_test_and_set): If GCC 4.4, use
	the __sync_lock_test_and _set and __sync_lock_release builtins on
	the powerpc.  If not GCC 4.4, fix up the constraints so that it
	builds without error.
	(GC_clear): Ditto.

2009-07-17  Kai Tietz  <kai.tietz@onevision.com>

	* configure.ac: Add rule for mingw targets to add -DGC_BUILD=1 to
	cflags.
	* configure: Regenerated.

2009-05-17  Dave Korn  <dave.korn.cygwin@gmail.com>

	* win32_threads.c (GC_get_thread_stack_base):  Implement for Cygwin.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-02-09  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.am (LTLDFLAGS): New variable.
	(LINK): Use it.
	* Makefile.in: Regenerated.

2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
	    Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate for new libtool.
	* Makefile.in: Ditto.
	* include/Makefile.in: Ditto.
	* aclocal.m4: Ditto.

2008-07-18  Matthias Klose  <doko@ubuntu.com> 
 
	* configure.ac (AC_CONFIG_FILES): Add threads.mk. 
	* threads.mk.in: New. 
	* Makefile.in, configure: Regenerate. 

2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.
	* include/gc_config.h.in: Regenerate.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35457
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* aclocal.m4: Regenerate.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* include/Makefile.in: Likewise.

2007-02-19  Andreas Tobler  <a.tobler@schweiz.org>

	* dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro
	GC_GETSECTBYNAME instead.
	* include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the
	architecture (Darwin).

2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>

	* include/private/gcconfig.h (HBLKSIZE): Define for MIPS.

2008-01-24  David Edelsohn  <edelsohn@gnu.org>

	* configure: Regenerate.

2007-10-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR boehm-gc/33442
	* pthread_support.c (GC_PTR GC_get_thread_stack_base): If stack grows
	up, return stack_addr instead of stack_addr - stack_size.

2007-08-14  David Daney  <ddaney@avtrex.com>

	* include/private/gcconfig.h: Handle mips64-linux n64 ABI.

2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.

2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR boehm-gc/21940
	PR boehm-gc/21942
	* configure.ac (GC_SOLARIS_THREADS): Don't define on *-*-solaris*.
	Use alternate thread library in /usr/lib/lwp.
	* configure: Regenerate.
	* dyn_load.c: Use GC_SOLARIS_PTHREADS.
	* include/gc_config_macros.h (GC_SOLARIS_THREADS): Don't define.
	* include/private/gcconfig.h: Handle 64-bit Solaris 2/x86.
	(GC_SOLARIS_THREADS): Don't define.
	* include/private/solaris_threads.h: Remove.
	* pthread_support.c (GC_thr_init) [GC_SOLARIS_PTHREADS]: Determine
	GC_nprocs via sysconf().
	* Makefile.am (libgcjgc_la_SOURCES): Remove solaris_pthreads.c and
	solaris_threads.c.
	(gctest_LDADD): Use THREADLIBS instead of THREADDLLIBS.
	* Makefile.in: Regenerate.	 
	* solaris_pthreads.c: Remove.
	* solaris_threads.c: Remove.

2007-06-22  Jakub Jelinek  <jakub@redhat.com>

	* pthread_support.c (GC_get_thread_stack_base): Handle
	pthread_getattr_np failures.

2007-06-02  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2007-05-23  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.

2007-05-20  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Introduce extra_ldflags_libgc. Use it for Darwin.
	* configure: Regenerate.
	* Makefile.am (libgc_la_LDFLAGS): Use extra_ldflags_libgc.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* include/private/gcconfig.h: Enable MPROTECT_VDB for all Darwin
	targets. Remove comments. Prepare ppc64 support for Darwin.

2007-04-23  Keith Seitz  <keiths@redhat.com>

	* include/gc.h (GC_is_thread_suspended): Declare.
	* pthread_stop_world.c (GC_is_thread_suspended): New function.

2007-04-03  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac (NO_EXECUTE_PERMISSION): Set by default.
	* configure: Rebuilt.

2007-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* include/gc.h (GC_REGISTER_FINALIZER_UNREACHABLE): New.
	(GC_register_finalizer_unreachable): Declare.
	(GC_debug_register_finalizer_unreachable): Declare.
	* finalize.c (GC_unreachable_finalize_mark_proc): New.
	(GC_register_finalizer_unreachable): New.
	(GC_finalize): Handle it.
	* dbg_mlc.c (GC_debug_register_finalizer_unreachable): New.
	(GC_debug_register_finalizer_no_order): Fix whitespace.

2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.am: Add dummy install-pdf target.
	* Makefile.in: Regenerate

2007-02-05  Roman Zippel <zippel@linux-m68k.org>

	* boehm-gc/include/private/gcconfig.h: use LINUX_STACKBOTTOM so
	it works with Linux 2.6, reactivate MPROTECT_VDB
	* boehm-gc/pthread_stop_world.c: save all register
	on signal entry

2007-01-24  Andreas Tobler  <a.tobler@schweiz.org>

	* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently
	added defines to include/private/gc_priv.h
	(catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too.
	* darwin_stop_world.c: Removed the above defines.
	* include/private/gc_priv.h: Moved definitions from darwin_stop_world.c
	and os_dep.c to here. Fixed THREAD definition fixes for ppc64.

2007-01-17  David Daney  <ddaney@avtrex.com>

	* configure.ac: Don't define NO_SIGSET and NO_DEBUGGING while
	cross-compiling.
	* configure: Regenerated.
	* include/gc_config.h.in: Regenerated.

2007-01-17  Mike Stump  <mrs@apple.com>

	* os_dep.c: Fix i686-apple-darwin9 builds.

2007-01-16  Jack Howarth  <howarth@bromo.med.uc.edu>

	* aclocal.m4: Regenerate to use multi.m4.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2007-01-17  Andreas Tobler  <a.tobler@schweiz.org>

	* include/gc_config.h.in: Regenerate.

2007-01-16  Petr Salinger  <Petr.Salinger@seznam.cz>

	* include/private/gcconfig.h: Handle amd64/x86-64 cpu under
	 GNU/kFreeBSD.
	* os_dep.c: Likewise.

2007-01-15  Andreas Tobler  <a.tobler@schweiz.org>

	* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Adjust mail
	reference.
	(catch_exception_raise): Fix typo in the I386 exc_state.

2007-01-11  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Replaced HAS_I386_THREAD_STATE_* with
	HAS_X86_THREAD_STATE32_* and HAS_X86_THREAD_STATE64_* respectively.
	* configure: Regenerated.
	* include/private/gcconfig.h (DARWIN): Added X86_64 define for Darwin.
	Added base definitions for the X86_64 Darwin port.
	* include/private/gc_priv.h: Added definitions for Darwin MACH thread
	operations. Moved existing THREAD_STATE info from darwin_stop_world.c.
	* darwin_stop_world.c: Removed THREAD_STATE info. Added
	HAS_X86_THREAD_STATE64___RAX. And replaced HAS_I386_THREAD_STATE___EAX
	with HAS_X86_THREAD_STATE32___EAX.
	(GC_push_all_stacks): Use GC_MACH_THREAD_STATE_COUNT. Add code for
	X86_64 Darwin.
	* dyn_load.c (GC_dyld_name_for_hdr): Use GC_MACH_HEADER.
	(GC_dyld_image_add): Use GC_MACH_HEADER and GC_MACH_SECTION.
	Distinguish between getsectbynamefromheader_64 and
	getsectbynamefromheader.
	(GC_dyld_image_remove): Likewise.
	* os_dep.c (GC_dirty_init): Use GC_MACH_THREAD_STATE.
	(catch_exception_raise): Introduce exception information for I386 and
	X86_64 Darwin. Add X86_64 for exc_state.faultvaddr.

2006-12-08  Mike Stump  <mrs@apple.com>

	* configure.ac: Fix x86 darwin builds.
	* darwin_stop_world.c: Likewise.
	* include/private/gcconfig.h: Likewise.
	* connfigure: Regenerate.
	
2006-09-26  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/29180
	* darwin_stop_world.c: Make stack_start unsigned long.

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

	* os_dep.c: Port to Darwin/i386
	* darwin_stop_world.c: Likewise
	* include/private/gcconfig.h: Likewise
	
2006-06-07  Petr Salinger  <Petr.Salinger@seznam.cz>

	* configure.ac: add support for GNU/kFreeBSD, accepted by upstream
	for gc 6.8.
	* dyn_load.c: Likewise.
	* include/gc.h: Likewise.
	* private/gcconfig.h: Likewise.
	* configure: Regenerate.
	* include/gc_config.h.in: Regenerate.

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

	PR boehm-gc/29068.
	* misc.c (GC_init_inner): Don't use GC_get_thread_stack_base on
	Solaris.

2006-08-21  Bryce McKinlay  <mckinlay@redhat.com>
	
	PR libgcj/13212:
	* configure.ac: Check for pthread_getattr_np(). Remove
	GC_PTHREAD_SYM_VERSION detection.
	* include/gc.h (GC_register_my_thread, GC_unregister_my_thread,
	GC_get_thread_stack_base): New declarations.
	* pthread_support.c (GC_register_my_thread, GC_unregister_my_thread,
	GC_get_thread_stack_base): New functions.
	(GC_delete_thread): Don't try to free the first_thread.
	* misc.c (GC_init_inner): Use GC_get_thread_stack_base() if possible.
	(pthread_create_, constr): Removed.
	(pthread_create): Don't rename.
	* include/gc_ext_config.h.in: Rebuilt.
	* include/gc_pthread_redirects.h (pthread_create): Define 
	unconditionally.
	* include/gc_config.h.in: Rebuilt.
	* configure: Rebuilt.

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

	* pthread_stop_world.c (GC_suspend_handler): Redirect to suspension
	routine if signal is received and thread is flagged SUSPENDED.
	(suspend_self): New function.
	(GC_suspend_thread): New function.
	(GC_resume_thread): New function.
	* include/gc.h (GC_suspend_thread): Declare.
	(GC_resumet_thread): Declare.
	* include/private/pthread_support.h (SUSPENDED): New GC_thread
	flag.

2006-06-20  Ranjit Mathew  <rmathew@gcc.gnu.org>
	
	Backport Windows 9x/ME VirtualQuery() fix from GC 6.7.
	* os_dep.c (GC_wnt): Define.
	(GC_init_win32): Set GC_wnt.
	* dyn_load.c (GC_register_dynamic_libraries): Consider MEM_PRIVATE
	sections also on Windows 9x/ME.

2006-06-02  Geoffrey Keating  <geoffk@apple.com>

	* configure.ac: Define HAS_PPC_THREAD_STATE_R0,
	HAS_PPC_THREAD_STATE___R0, HAS_PPC_THREAD_STATE64_R0,
	HAS_PPC_THREAD_STATE64___R0, HAS_I386_THREAD_STATE_EAX,
	HAS_I386_THREAD_STATE___EAX.
	* configure: Regenerate.
	* include/gc_config.h.in: Regenerate.
	* darwin_stop_world.c (PPC_RED_ZONE_SIZE): Use standard Darwin
	macro names to determine value.
	(THREAD_STATE): New.
	(THREAD_FLD): New.
	(GC_push_all_stacks): Use THREAD_STATE and THREAD_FLD in both versions.

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

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

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

	* dyn_load.c (GC_has_static_roots): Declare.
	(GC_register_dynlib_callback): Call GC_has_static_roots.

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

	* darwin_stop_world.c (GC_push_all_stacks, GC_stop_world,
	GC_start_world): Call vm_deallocate to free act_list. Fix from
	Bruce Mitchener.

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

	* configure.ac (THREADS): Add REENTRANT for *-*-hpux11*.
	Warn about POSIX threads not being supported for *-*-hpux10*.
	* configure: Regenerate.

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

	* pthread_support.c: Conditionally include dlfcn.h.

2006-02-06  Jakub Jelinek  <jakub@redhat.com>
	    Anthony Green  <green@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* include/gc_ext_config.h.in: Added GC_PTHREAD_SYM_VERSION.
	* include/gc_config.h.in: Rebuilt.
	* include/gc_pthread_redirects.h (pthread_create): Conditionally
	define.
	* pthread_support.c (pthread_create_): New global.
	(constr): New function.
	(pthread_create): Conditionally renamed.
	* configure: Rebuilt.
	* configure.ac (GC_PTHREAD_SYM_VERSION): Define.

2006-02-04  Alan Modra  <amodra@bigpond.net.au>

	* include/private/gc_locks.h (GC_test_and_set <POWERPC>): Don't
	use broken 64-bit version.

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

	* darwin_stop_world.c: Change inline asm instruction to ld as ldz
	is wrong.

	* Makefile.am (asm_libgcjgc_sources): Rename to asm_libgcjgc_sources.
	* Makefile.in: Regenerate.

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

	* include/private/gcconfig.h: Revert to GC 6.6 version, removing
	all local changes.

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

	Import Boehm GC version 6.6.

2006-01-24  David Ayers  <d.ayers@inode.at>

	PR libobjc/13946
	* include/gc.h: Fix prototype declarations for bootstrap.

2005-11-01  Bryce McKinlay  <mckinlay@redhat.com>

	* include/private/gc_priv.h: Increase MAX_ROOT_SETS to 1024.

2005-09-15  Kazu Hirata  <kazu@codesourcery.com>

	* include/private/gc_locks.h (GC_test_and_set): Change the
	constraint of the first operand to '0'.

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

	PR libgcj/23662:
	* include/private/gcconfig.h (LINUX_STACKBOTTOM): Use instead of
	HEURISTIC1 on ARM.

2005-07-17  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* include/private/gcconfig.h (sh-linux): Use LINUX_STACKBOTTOM.

2005-06-15  Andreas Tobler  <a.tobler@schweiz.ch>

	* os_dep.c: Add FreeBSD/PowerPC bits.
	(GC_SysVGetDataStart): Likewise.
	* include/private/gcconfig.h: Likewise.

2005-05-25  Andrew Haley  <aph@redhat.com>

	* include/private/gcconfig.h (HBLKSIZE): Define to 4096 on
	powerpc64-linux.

2005-05-09  Mike Stump  <mrs@apple.com>

	* configure: Regenerate.

2005-04-19  Hans-Peter Nilsson  <hp@axis.com>

	* os_dep.c, include/private/gc_locks.h: Import CRIS port by
	Simon Posnjak from gc6.4.
	* include/private/gcconfig.h: Ditto.  Add M32R note from gc6.4.

2005-04-17  David S. Miller  <davem@davemloft.net>

	* include/private/gcconfig.h (sparc-linux): Use LINUX_STACKBOTTOM.
	* os_dep.c (GC_linux_stack_base): Check for bug present in some
	Sparc glibc variants where __libc_stack_end is erroneously set
	to "1".  Fallback to procfs code in that case.

2005-04-12  Mike Stump  <mrs@apple.com>

	* configure: Regenerate.

2005-04-12  Richard Henderson  <rth@redhat.com>

	* include/private/gcconfig.h (alpha-linux): Use LINUX_STACKBOTTOM.

2005-03-23  Mike Stump  <mrs@apple.com>

	* darwin_stop_world.c: Update for -m64 multilib.
	* include/private/gcconfig.h: Likewise.
	* powerpc_darwin_mach_dep.s: Likewise.

2005-03-01  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in, include/Makefile.in: Regenerate.

2005-02-26  Richard Earnshaw  <rearnsha@arm.com>

	* dyn_load.c: On NetBSD, include machine/elf_machdep.h and define
	ELFSIZE in terms of ARCH_ELFSIZE (back-ported from gc7.0alpha1).

2005-02-15  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/19823
	* configure.host: Set gc_use_mmap on *-linux*.
	* configure.ac: Define USE_MMAP if gc_use_mmap is set.
	* include/private/gc_priv.h: Include gc_config.h.
	* configure, include/gc_config.h.in: Rebuilt.

2005-02-07  Hans Boehm  <Hans.Boehm@hp.com>

	* allchblk.c (GC_allochblk_nth): Dont overlook available space if
	  GC disabled, correctly convert GC_finalizer_mem_freed to byte,
	  total_size to words.
	* dyn_load.c (win32 GC_register_dynamic_libraries): Consider only
	  MEM_IMAGE regions.
	* mach_dep.c (GC_with_callee_saves_pushed): separate into new function,
	  and indent appropriately.
	* mark_rts.c (GC_approx_sp): Access stack.
	* pthread_stop_world.c: (GC_suspend_handler): Explicitly push
	  callee-saves registers when appropriate.
	  (GC_stop_world): Handle EINTR from sem_wait (sync with Mono GC).

2005-01-01  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.ac (AC_CONFIG_HEADERS): Build both include/gc_config.h 
	and include/gc_ext_config.h.
	* include/gc_ext_config.h: New file. Define only THREAD_LOCAL_ALLOC.
	* include/gc.h: Undef PACKAGE_* before including gc_config.h.

2004-12-13  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate.

2004-11-29  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/18699
	Revert patches of 2004-11-26 and 2004-11-27.

2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate for libtool change.

2004-11-27  Bryce McKinlay  <mckinlay@redhat.com>

	* include/gc_config.h.in: Add comment. Define only THREAD_LOCAL_ALLOC.

2004-11-26  Bryce McKinlay  <mckinlay@redhat.com>

	Fix "PACKAGE_NAME redefined" errors.
	* configure.ac (AC_CONFIG_HEADERS): Build both include/config.h 
	and include/gc_config.h.
	* configure: Regenerated.
	* include/gc_config.h.in: No longer auto-generated. Define only the
	macros needed by libjava.
	* include/config.h.in: Generated by autoheader.
	* include/gc.h: Include config.h, not gc_config.h.

2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate for libtool reversion.

2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate for libtool change.

2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.ac (machdep): Use sparc_mach_dep.lo on
	sparc64-sun-solaris2.* too.
	(Solaris gcc optimization fix): Disable on sparc*-sun-solaris2.*.
	* configure: Regenerate.

2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/18444
	* configure.ac (threading): Accept 'posix95'.
	* configure: Regenerate.

2004-11-04  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am: Define ACLOCAL_AMFLAGS.
	* configure.ac: Remove redundant sinclude.
	* acinclude.m4: Delete file.
	* aclocal.m4: Regenerate.
	* Makefile.in, include/Makefile.in: Regenerate.
	* configure: Regenerate.

2004-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* include/private/gc_priv.h (GC_generic_malloc_words_small_inner):
	Add prototype.

2004-10-13  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* include/private/gcconfig.h: Add m32r-linux target.

2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac: Update all AC_DEFINEs to newer style.
	* configure: Regenerate.
	* include/gc_config.h.in: Regenerate.

2004-08-27  Hans Boehm  <Hans.Boehm@hp.com>

	* backgraph.c, gc_priv.h (GC_traverse_back_graph,
	GC_print_back_graph_stats): split GC_traverse_back_graph.
	* backgraph.c: Dynamically grow in_progress_space.
	* finalize.c (GC_notify_or_invoke_finalizers): also call
	GC_print_back_graph_stats.
	* alloc.c, finalize.c, gc_priv.h (GC_generate_random_backtrace_no_gc,
	GC_print_back_height): Move delarations to header file.
	* configure.ac: rename --enable-full-debug to --enable-gc-debug.
	* configure: Regenerate.
	
2004-08-23  Hans Boehm  <Hans.Boehm@hp.com>

	* aix_irix_threads.c: Move _THREADS checks after gc_priv.h include.
	* backgraph.c, include/private/gc_pmark.h: Always include gc.h.

2004-08-23  Bryce McKinlay  <mckinlay@redhat.com>

	* win32_threads.c: Move GC_WIN32_THREADS check after gc_priv.h include.
	Reported by Danny Smith.

2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>

	* misc.c (GC_init): Replace lhs cast with rhs cast.

2004-08-16  Bryce McKinlay  <mckinlay@redhat.com>

	* specific.c: Check GC_LINUX_THREADS before including 
	private/specific.h. From Richard Earnshaw.

2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	* aclocal.m4: Remove obsolete construct for old automake.
	* acinclude.m4: Regenerate with aclocal 1.9.1.
	* configure.ac:  Remove duplicate AC_WITH calls.  Replace
	AC_CANONICAL_SYSTEM with AC_CANONICAL_HOST, AC_CANONICAL_TARGET.
	Replace _GCC_TOPLEV_NONCANONICAL calls with ACX_NONCANONICAL_TARGET.
	Remove now-redundant subst of target_noncanonical.  Remove
	now-gratuitous m4 quoting around $.  Replace AM_PROG_LIBTOOL with
	AC_PROG_LIBTOOL and remove second, redundant AC_PROG_LIBTOOL.
	Use slightly more modern form of AC_INIT.
	* configure: Rebuild with autoconf 2.59.
	* Makefile.in, include/Makefile.in: Rebuild with automake 1.9.1.

2004-08-16  Andreas Tobler  <a.tobler@schweiz.ch>

	* solaris_threads.c: Remove ifdef around #include "private/gc_priv.h"
	since they're not known at this time.
	* solaris_pthreads.c: Likewise.

2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>

	PR target/14931
	* powerpc_darwin_mach_dep.s (_GC_push_regs): Change to new stub style.

2004-08-13  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.ac (gc_cflags): Add -Iinclude.
	(AC_CONFIG_HEADERS): New. Configure gc_config.h header.
	Don't write DEFS to boehm-cflags file.
	* configure: Rebuilt.
	* gcj_mlc.c: Check #ifdef GC_GCJ_SUPPORT after including headers.
	* specific.c: Check #ifdef GC_LINUX_THREADS after including headers.
	* include/gc_config_macros.h: Remove backward-compatibility 
	redefinitions of GC_ names.
	* include/gc.h: Include <gc_config.h>.

2004-08-13  Bryce McKinlay  <mckinlay@redhat.com>

	Import Boehm GC version 6.3.

2004-08-12  Kelley Cook  <kcook@gcc.gnu.org>

	* include/Makefile.in: Regenerate

2004-07-06  Andrew Pinski  <apinski@apple.com>

	* os-dep.c (GC_task_self): Declare as static
	and remove the second declaration.

2004-06-20  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am: Add rule for .S files to fix bootstrap on
	solaris and alpha.
	* Makefile.in: Regenerate.

2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* boehm-gc/configure.ac: New name of configure.in.
	Remove useless multilib stuff.  Change uses of
	INCLUDES and CXXINCLUDES to AM_CPPFLAGS.
	* boehm-gc/configure.in: New name of configure.in.
	* boehm-gc/Makefile.am: Update for automake 1.8.5.
	* boehm-gc/acinclude.m4: Include ../config/acx.m4.
	* boehm-gc/aclocal.m4: Regenerate.
	* boehm-gc/configure: Regenerate.
	* boehm-gc/Makefile.in: Regenerate.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* .cvsignore: New file.

2004-04-25  Andreas Jaeger  <aj@suse.de>

	* mark.c (GC_mark_from): Use pointer as prefetch argument.

2004-04-06  H.J. Lu  <hongjiu.lu@intel.com>

	* include/private/gcconfig.h (PREFETCH): Use __builtin_prefetch
	for gcc >= 3.0.
	(PREFETCH_FOR_WRITE): Likewise.

2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac: Bump AC_PREREQ to 2.59.
	* configure: Regenerate.
	* config.in: Regenerate.

2004-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>

	* ltconfig, ltmain.sh: Remove unused files.
	* configure.in: Remove bogus extra early invocation of
	AC_CONFIG_AUX_DIR.
	* configure: Regenerate.
	* mkinstalldirs, install-sh, config.sub, config.guess:
	Remove (now) unused files.
	* Makefile.in: Regenerate (losing references to vanished
	files).

	* configure.in: Add CCAS, CCASFLAGS for future automakes.
	* configure, Makefile.in, include/Makefile.in: Regenerate.

	* Makefile.am: Remove bogus duplicate setting of AM_CFLAGS.
	* Makefile.in: Regenerate.

	* configure.in: Remove bogus duplicate invocation of
	AM_MAINTAINER_MODE.  Remove obsolete comment.
	* configure: Regenerate.

	* acinclude.m4: Remove GC_CONFIGURE macro; move contents
	to configure.in.
	* aclocal.m4: Regenerate.
	* configure.in: Receive contents of GC_CONFIGURE macro.
	* configure: Regenerate.

	* configure.in: Remove more obsolete, bogus code.
	* configure: Regenerate.

	* acinclude.m4: Remove obsolete and bogus constructs.
	* aclocal.m4: Regenerate.
	* configure: Regnerate.

2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* acinclude.m4: De-precious CC and CXX so that the right flags
	are passed down to multilibs.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2004-02-22  Zack Weinberg <zack@codesourcery.com>
	    Nathanael Nerode <neroden@twcny.rr.com>
	    Alexandre Oliva <aoliva@redhat.com>

	* config.sub, config.guess: Replace with forwarding scripts
	which invoke the master copies in the top level.

2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* acinclude.m4: Remove old no-executables workaround;
	add new no-executables workaround.
	* aclocal.m4: Regenerate.
	* configure.in: Change prereqs to autoconf 2.57.
	* configure: Regenerate with autoconf 2.57.

	* configure.in: Use NCN_TARGET_NONCANONICAL and friends.
	* configure: Regenerate.
	* Makefile.am: Use target_noncanonical variable from configure.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.

2004-02-20  Andrew Cagney  <cagney@redhat.com>

	* config.guess: Update from version 2002-01-10 to 2004-02-16.
	* config.sub: Update from version 2002-01-02 to 2004-02-16.

2004-02-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* acinclude.m4: Remove bogus duplicate call to AC_CANONICAL_BUILD.
	* aclocal.m4: Rebuild.
	* configure: Regenerate.

	* acinclude.m4: Move certain code to configure.in.
	* configure.in: Receive code from acinclude.m4.
	* aclocal.m4: Rebuild.
	* configure: Regenerate.

	* Makefile.direct, alloc.c: Resync to upstream 6.3 alpha 1.

2004-01-20  Andrew Haley  <aph@redhat.com>

	* include/private/gcconfig.h (USE_MMAP): Define for all Linux.

	* configure.in: Comment change.

2004-01-16  Andrew Haley  <aph@redhat.com>

	* configure.in (NO_EXECUTE_PERMISSION): Remove global declaration;
	add for ia64; remove for MIPS.
	* configure: Regnerated.

2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.in: Add in AC_PREREQ(2.13)

2004-01-07  Dave Jones <davej@redhat.com>

	* malloc.c (GC_generic_malloc): Correct initialization typo.
	* mallocx.c (GC_generic_malloc_ignore_off_page): Ditto.

2003-10-31  Richard Earnshaw  <rearnsha@arm.com>

	* include/private/gcconfig.h: Re-install change of 2003-04-16.

2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* mips_sgi_mach_dep.s: Use _ABIO32 instead of external
	_MIPS_SIM_ABI32.

2003-10-18  Alan Modra  <amodra@bigpond.net.au>

	* include/private/gcconfig.h (ALIGNMENT <powerpc linux>): Remove
	unsure comment.

2003-10-03  Jeff Sturm  <jsturm@one-point.com>

	* configure: Rebuild.

2003-10-03  Hans Boehm  <Hans.Boehm@hp.com>

	* configure.in: Remove NO_GETENV definition for win32.
	* mach_dep.c (GC_generic_push_regs): Prevent tail call optimization.
	* misc.c (GC_init_inner): Call GC_thr_init for win32.
	  (GC_set_warn_proc): Add assertion.
	* win32_threads.c: Import 6.3alpha2 version.
	* include/private/gc_priv.h: Add support for EMPTY_GETENV_RESULTS.

2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in: Remove wildcard from Solaris 8-9/Intel and Solaris
	2.3/SPARC, there are no micro versions.
	Treat Solaris 10 and up alike.
	* configure: Regenerate.

2003-09-22  Anthony Green  <green@redhat.com>

	* os_dep.c: Fix GC_get_stack_base build problem for vanilla elf
	"NOSYS" targets.

2003-09-20    <green@redhat.com>

	* include/private/gcconfig.h: Don't check for __XSCALE__.  Instead
	check for __arm__ or __thumb__.

2003-09-09  Alan Modra  <amodra@bigpond.net.au>

	* configure: Regenerate.

2003-08-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
	    Roger Sayle <roger@eyesopen.com>

	* configure.in: Set INCLUDES to absolute path.
	Save $INCLUDES in boehm-cflags, too.
	Set INCLUDES so it's available to config.status.
	* configure: Regenerate.

2003-07-31  Danny Smith  <dannysmith@users.sourceforge.net>

	* include/gc.h (GC_CreateThread): Declare with WINAPI
	attribute.
	* win32_threads.c (GC_CreateThread): Make definitions consistent
	with declaration.  Cast &thread_table[i].handle to PHANDLE
	in call to DuplicateHandle
	(thread_start): Declare as static.

2003-07-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* dyn_load.c: Define __private_extern__ to match Apple's system
	header.

2003-07-28  Loren J. Rittle  <ljrittle@acm.org>

	* os_dep.c: Remove redundancy introduced in last merge.

2003-07-28  Jeff Sturm  <jsturm@one-point.com>

	Import GC 6.3alpha1.
	* BCC_MAKEFILE: Merge with GC 6.3alpha1 release.
	* ChangeLog: Likewise.
	* Makefile.am: Likewise.
	* Makefile.direct: Likewise.
	* Makefile.dj: Likewise.
	* allchblk.c: Likewise.
	* alloc.c: Likewise.
	* backgraph.c: Likewise.
	* configure.host: Likewise.
	* configure.in: Likewise.
	* dbg_mlc.c: Likewise.
	* dyn_load.c: Likewise.
	* finalize.c: Likewise.
	* gc_cpp.cc: Likewise.
	* gc_dlopen.c: Likewise.
	* gcj_mlc.c: Likewise.
	* if_mach.c: Likewise.
	* mach_dep.c: Likewise.
	* malloc.c: Likewise.
	* mallocx.c: Likewise.
	* mark.c: Likewise.
	* mark_rts.c: Likewise.
	* misc.c: Likewise.
	* os_dep.c: Likewise.
	* ptr_chck.c: Likewise.
	* reclaim.c: Likewise.
	* solaris_pthreads.c: Likewise.
	* solaris_threads.c: Likewise.
	* sparc_mach_dep.S: Likewise.
	* threadlibs.c: Likewise.
	* typd_mlc.c: Likewise.
	* version.h: Likewise.
	* win32_threads.c: Likewise.
	* Mac_files/MacOS_Test_config.h: Likewise.
	* Mac_files/MacOS_config.h: Likewise.
	* cord/cordbscs.c: Likewise.
	* cord/cordprnt.c: Likewise.
	* cord/de_win.c: Likewise.
	* doc/README: Likewise.
	* doc/README.MacOSX: Likewise.
	* doc/README.changes: Likewise.
	* doc/README.environment: Likewise.
	* doc/README.ews4800: Likewise.
	* doc/README.linux: Likewise.
	* doc/README.macros: Likewise.
	* doc/README.win32: Likewise.
	* doc/debugging.html: Likewise.
	* doc/gcdescr.html: Likewise.
	* doc/tree.html: Likewise.
	* include/Makefile.in: Likewise.
	* include/gc.h: Likewise.
	* include/gc_cpp.h: Likewise.
	* include/gc_local_alloc.h: Likewise.
	* include/gc_mark.h: Likewise.
	* include/gc_pthread_redirects.h: Likewise.
	* include/gc_typed.h: Likewise.
	* include/new_gc_alloc.h: Likewise.
	* include/private/dbg_mlc.h: Likewise.
	* include/private/gc_hdrs.h: Likewise.
	* include/private/gc_locks.h: Likewise.
	* include/private/gc_pmark.h: Likewise.
	* include/private/gc_priv.h: Likewise.
	* include/private/gcconfig.h: Likewise.
	* include/private/solaris_threads.h: Likewise.
	* include/private/specific.h: Likewise.
	* tests/test.c: Likewise.
	* tests/test_cpp.cc: Likewise.

	* configure: Rebuild.
	* Makefile.in: Rebuild.

	* mips_sgi_mach_dep.s: Add.

	* alpha_mach_dep.s: Remove.
	* irix_threads.c: Remove.
	* linux_threads.c: Remove.
	* mips_sgi_mach_dep.S: Remove.
	* missing: Remove.
	* powerpc_macosx_mach_dep.s: Remove.
	* doc/Makefile.am: Remove.
	* doc/Makefile.in: Remove.

2003-07-25  Roger Sayle  <roger@eyesopen.com>

	* configure.host: Only use +ESdbgasm when using the HPUX native
	compiler on PA-Risc.  It isn't recognized by GCC and is silently
	ignored by HP's compilers on ia64.

2003-04-28  Mohan Embar  <gnustuff@thisiscool.com>

	* configure.in: define GC_DLL under mingw if --enable-shared
	* configure: rebuilt
	* win32_threads.c: add #ifdef GC_DLL around DllMain

2003-04-16  Richard Earnshaw  <rearnsha@arm.com>

	* include/private/gcconfig.h: Add support for arm-netbsdelf.

2003-04-09  Tom Tromey  <tromey@redhat.com>

	* include/private/gcconfig.h (LINUX_STACKBOTTOM): Define for
	POWERPC.
	(STACK_GRAN, HEURISTIC1): Don't define for POWERPC.

2003-03-22  Richard Henderson  <rth@redhat.com>

	* include/private/gc_locks.h [IA64]: Include ia64intrin.h.
	(GC_test_and_set): Use __sync_lock_test_and_set.
	(GC_clear): Use volatile assignment.
	(GC_compare_and_exchange): Use __sync_bool_compare_and_swap.
	(GC_memory_write_barrier): Use __sync_synchronize.

2003-03-12  Andreas Schwab  <schwab@suse.de>

	* configure.in: Avoid trailing /. in toolexeclibdir.
	* configure: Rebuilt.

2003-03-04  Hans Boehm <Hans.Boehm@hp.com>
	* include/private/gcconfig.h (GC_data_start): declare when needed.
	* include/private/gc_priv.h: Include gcconfig.h after ptr_t
	declaration.
	* dyn_load.c (GC_register_dynamic_libraries_dl_iterate_phdr,
	GC_register_dynlib_callback): Register main data for static
	executable if dl_iterate_phdr() didn't.
	* misc.c (GC_init_inner): Call GC_init_linux_data_start() even
	if we don't expect to register main static data.

2003-03-03  Hans Boehm  <Hans.Boehm@hp.com>
	* mark_rts.c (GC_cond_register_dynamic_libraries): add.
	(GC_push_roots): explicitly mark free list headers, register
	dynamic libraries only if !REGISTER_LIBRARIES_EARLY.
	* alloc.c (GC_stopped_mark): Conditionally call
	GC_cond_register_dynamic_libraries().
	(GC_collect_a_little_inner, GC_try_to_collect_inner): Check GC_dont_gc.
	* dyn_load.c (GC_register_main_static_data): define.
	(GC_register_dyn_libraries (Linux /proc, Linux ELF versions)):
	no longer skip main data.
	* misc.c (GC_REGISTER_MAIN_STATIC_DATA): define.
	(GC_init_inner): Make main data registration conditional.
	* include/private/gc_priv.h (GC_register_main_static_data): declare.
	* include/private/gcconfig.h (REGISTER_LIBRARIES_EARLY): define
	for LINUX.

2003-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
	config.status.
	* configure: Rebuilt.

2003-02-11  Andreas Tobler  <a.tobler@schweiz.ch>

	* include/private/gcconfig.h: undefine MPROTECT_VDB for MACOSX

2003-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
	Remove USE_LIBDIR conditional.
	* Makefile.am (toolexecdir, toolexeclibdir): Don't override.
	* Makefile.in, configure: Rebuilt.

2002-12-31  Tom Tromey  <tromey@redhat.com>

	For PR libgcj/8933:
	* include/Makefile.in: Rebuilt.
	* include/Makefile.am (noinst_HEADERS): Renamed from
	include_HEADERS.

2002-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* ltconfig (osf[345]): Append $major to soname_spec.
	Reflect this in library_names_spec.
	* ltmain.sh (osf): Prefix $major with . for use as extension.

2002-10-02  Andreas Jaeger  <aj@suse.de>

	* include/private/gcconfig.h (HBLKSIZE): Define for x86-64.

2002-09-28  Richard Earnshaw  <rearnsha@arm.com>

	* include/private/gcconfig.h: Don't check for __XSCALE__.  Instead
	check for __arm__ or __thumb__.

2002-09-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* include/private/gcconfig: Add machine type S390.  Add s390x support.
	* include/private/gc_locks.h (GC_test_and_set): Implement for s390.
	(GC_compare_and_exchange): Likewise.

2002-09-24  Jason Thorpe  <thorpej@wasabisystems.com>

	* include/private/gcconfig.h: Fix NetBSD/mips parameters.

2002-08-23  Adam Megacz <adam@xwt.org>

	* win32_threads.cc: Removed extraneous ABORT()

2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.am (all-multi): Fix multilib parallel build.

2002-07-18  Bo Thorsen  <bo@suse.de>

	* include/private/gcconfig.h: Add x86-64 definitions.
	* os_dep.c: Add x86-64 support.
	* configure.in: Likewise.
	* configure: Regenerate.

2002-07-18  H.J. Lu <hjl@gnu.org>

	* mach_dep.c (GC_push_regs): Remove the unused Linux/mips code.

2002-07-18  H.J. Lu  (hjl@gnu.org)

	* configure.in (machdep): Don't add mips_sgi_mach_dep.lo for
	Linux/mips.

2002-06-28  Hans Boehm <Hans_Boehm@hp.com>
	    Jonathan Clark

	* win32_threads.c (GC_push_all_stacks): Tolerate bad sp.

2002-06-09  H.J. Lu  (hjl@gnu.org)

	* include/private/gc_locks.h (GC_test_and_set): Support
	Linux/mips.
	(GC_TEST_AND_SET_DEFINED): Likewise.

	* include/private/gcconfig.h (DYNAMIC_LOADING): Defined for
	Linux/mips.
	(DATAEND): Likewise.
	(LINUX_STACKBOTTOM): Likewise.
	(STACKBOTTOM): Removed for Linux/mips.

Sun May 19 11:32:03 2002  Mark P Mitchell  <mark@codesourcery.com>

	* irix_threads.cc (GC_pthread_detach): Do not use REAL_FUNC.
	(GC_pthread_create): Fix typo.
	(GC_TRY_LOCK): Likewise.
	* include/private/gc_locks.h (GC_test_and_set): Only take one
	one argument.
	(LOCK): Adjust appropriately.
	* include/private/gc_priv.h (SIG_SUSPEND): Use SIGRTMIN if
	_SIGRTMIN is unavailable.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* acinclude.m4: Allow for PWDCMD to override hardcoded pwd.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2002-05-08  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
	script entry, and set LD to it when configuring multilibs.
	* configure: Rebuilt.

2002-04-22  Jeff Sturm  <jsturm@one-point.com>

	* Makefile.am (toolexeclib_LTLIBRARIES): Remove.
	(noinst_LTLIBRARIES): Add libgcjgc.la.

	* Makefile.in: Rebuild.

2002-04-22  David S. Miller  <davem@redhat.com>

	* include/private/gcconfig.h: Hard-code STACKBOTTOM on
	64-bit SPARC Linux, the __libc_stack_end technique does
	not work in this case.

2002-04-22  Jeff Sturm  <jsturm@one-point.com>

	* gcconfig.h: Enable DYNAMIC_LOADING for all sparc-solaris ABIs.

2002-04-17  Hans Boehm  <Hans_Boehm@hp.com>

	* include/private/gcconfig.h: Use LINUX_STACKBOTTOM for
	SPARC Linux.

2002-04-09  Loren J. Rittle  <ljrittle@acm.org>

	* include/private/gcconfig.h (DATAEND): Update comment example
	to match reality.

2002-04-08  Loren J. Rittle  <ljrittle@acm.org>

	* include/private/gcconfig.h (DATAEND): Clarify comment.

2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>

	* include/private/gc_priv.h (WARN macro): Add "GC warning:" prefix.
	(GC_large_alloc_warn_interval, GC_large_alloc_warn_suppressed):
	declare.
	* allchblk.c (GC_allchblk_nth): Change text and support reduced
	frequency for blacklist warning message.
	* misc.c (GC_large_alloc_warn_interval,
	GC_large_alloc_warn_suppressed): define.
	(GC_init_inner): Check GC_NO_BLACKLIST_WARNING and
	GC_LARGE_ALLOC_WARN_INTERVAL environment variables.
	* doc/README.environment (GC_NO_BLACKLIST_WARNING): Deprecate.
	(GC_LARGE_ALLOC_WARN_INTERVAL): Add documentation.

	* dyn_load.c (_DYNAMIC): Move declaration to file scope.

2002-04-04  Loren J. Rittle  <ljrittle@acm.org>

	* include/private/gcconfig.h: Add support for an unmapped
	memory hole between the end of the initialized data segment
	and the start of the BSS on FreeBSD/i386.

2002-03-30  Krister Walfridsson  <cato@df.lth.se>

	* include/private/gcconfig.h: define DYNAMIC_LOADING for ELF
	NetBSD/i386.

2002-03-29  Hans Boehm  <Hans_Boehm@hp.com>

	* linux_threads.c (return_free_lists): Clear fl[i] unconditionally.
	(GC_local_gcj_malloc): Add assertion.
	(start_mark_threads): Fix abort message.
	* mark.c (GC_mark_from): Generalize assertion.
	* reclaim.c (GC_clear_fl_links): New function.
	(GC_start_reclaim): Must clear some freelist links.
	* include/private/specific.h, specific.c: Add assertions.
	Safer definition for INVALID_QTID, quick_thread_id.  Fix/add comments.
	Rearrange tse fields.

2002-03-27  Richard Henderson  <rth@redhat.com>

	* os_dep.c (GC_init_linux_data_start): Fix references to
	__data_start and _end.

2002-03-25  Loren J. Rittle  <ljrittle@acm.org>

	* include/private/gcconfig.h: Change all likely references
	to linker script synthesized symbols to use this idiom:
	extern int etext[]; etext

2002-03-25  Jeff Sturm  <jsturm@one-point.com>

	* linux_threads.c (GC_get_nprocs): Close file descriptor.

2002-03-21  Loren J. Rittle  <ljrittle@acm.org>

	* include/private/gcconfig.h: Add unified test for FreeBSD.
	Support FreeBSD/alpha.
	* os_dep.c: Do not include <machine/trap.h> unless available.
	(GC_freebsd_stack_base): Fix types.

2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.am: Make a convenience library.
	* Makefile.in: Rebuilt.

2002-03-15  Anthony Green  <green@redhat.com>

	* misc.c (GC_init_inner): Initialize GC_write_cs before use.
	* configure.in: Disable use of getenv for win32 targets (some of
	which have broken implementations).
	* configure: Rebuilt.

2002-03-12  Adam Megacz  <adam@xwt.org>

	* dyn_load.c: Renamed GC_win32s to GC_no_win32_dlls.
	* misc.c: Renamed GC_is_win32s() to GC_no_win32_dlls
	* os_dep.c: Renamed GC_win32s to GC_no_win32_dlls and
	statically initialized it to TRUE if compiling with GCC.
	* win32_threads.c (thread_start): We no longer use SEH if
	compiling with GCC.
	* mark.c (GC_mark_some): We no longer use SEH if
	compiling with GCC.

2002-03-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* include/gc_priv.h: Define ALIGN_DOUBLE on 32 bit targets if GCJ
	support is enabled, for hash synchronization.

2002-02-24  Adam Megacz  <adam@xwt.org>

	* Makefile.am: Added win32_threads.c to sources list.
	* win32_threads.c: Added two */'s which I had neglected.

2002-02-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.am: Re-add SUBDIRS parameter which was lost in merge.
	* Makefile.in: Rebuilt.

2002-02-13  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* dbg_mlc.c (GC_debug_generic_malloc): Removed.

	* sparc_mach_dep.S: Rename from sparc_mach_dep.s as it is a
	preprocessor file.
	* mips_sgi_mach_dep.S: Likewise.
	* Makefile.am: Update for above changes.
	* Makefile.in: Rebuilt.

2002-02-12  Richard Henderson  <rth@redhat.com>

	* configure.in: Re-apply 2001-06-26 configure change.
	* configure: Rebuild.

2002-02-12  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	Imported GC 6.1 Alpha 3.

	* sparc_mach_dep.S: Delete incorrectly named file.

2001-02-11  Adam Megacz <adam@xwt.org

	* configure.in: support for win32, saner
	cross-compile options

2001-02-08  Anthony Green  <green@redhat.com>

	* include/private/gcconfig.h: Add XSCALE NOSYS support for bare
	  board embedded targets.
	* os_dep.c: Avoid signal handling code for NOSYS/ECOS targets.
	  Use GC_get_stack_base for NOSYS/ECOS targets.  Clean up some
	  redundant uses of ECOS.
	* misc.c: Use NOSYS where ECOS is being used.
	  Don't define GC_write twice for ECOS systems.
	  (GC_write): New function for NOSYS targets.

2002-02-06  Adam Megacz <adam@xwt.org>

	* boehm-gc/include/gc.h: (GC_CreateThread) This function is
	now exposed on all Win32 platforms.
	* boehm-gc/win32_threads.c: (GC_CreateThread) This now
	compiles on Win32; it invokes CreateThread() if GC is built
	as a DLL; otherwise it registers the thread.
	* boehm-gc/misc.c (GC_init): Initialize GC_allocate_ml in case
	libgcjgc was not built as a DLL.

2002-02-01  Adam Megacz <adam@xwt.org>

	* boehm-gc on win32 now automatically detects if it is being built
	as a DLL; see http://gcc.gnu.org/ml/java/2001-12/msg00240.html

2002-01-25  David Edelsohn  <edelsohn@gnu.org>

	* include/gc.h (GC_INIT): Add DATASTART and DATAEND roots on AIX.
	* include/private/gcconfig.h (RS6000): Add 64-bit AIX support.
	Define USE_GENERIC_PUSH_REGS.  Use AIX _data and _end symbols for
	DATASTART and DATAEND roots.
	* rs6000_mach_dep.s: Add function descriptor and traceback table.

2001-12-16  Jeff Sturm  <jsturm@one-point.com>

	* dyn_load.c: Define ElfW (if needed) for all targets,
	not just GNU/Linux.
	(GC_FirstDLOpenedLinkMap): Use it.
	(GC_register_dynamic_libraries_dl): Use it.
	* include/private/gcconfig.h: Define CPP_WORDSZ, ELF_CLASS
	for sparcv9.

2001-12-16  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR other/3725
	* configure.in: Add AC_SUBST(target_alias).
	* configure: Regenerated.

2001-11-26  Loren J. Rittle  <ljrittle@acm.org>

	* linux_threads.c (WRAP_FUNC(pthread_join)): Remove special
	case for GC_FREEBSD_THREADS.
	* configure.in (*-*-freebsd*): Clarify warning.
	* configure: Rebuilt.

2001-10-23  Loren J. Rittle  <ljrittle@acm.org>
	    Andreas Tobler <toa@pop.agri.ch>

	* include/private/solaris_threads.h: Update to use GC_SOLARIS_THREADS.

2001-10-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* linux_threads.c (GC_init_parallel): Do not declare as a static
	constructor.
	* include/gc.h (GC_init): Declare here. Add description.
	* include/private/gc_priv.h (GC_init): Remove declaration.

2001-10-16  Loren J. Rittle  <ljrittle@acm.org>

	* include/gc_pthread_redirects.h: Generalize test to use GC_PTHREADS.
	* linux_threads.c (WRAP_FUNC(pthread_join)): Conditionalized on
	GC_FREEBSD_THREADS, handle strange interaction between system
	pthread implementation and boehm-gc signal-handler architecture.
	* tests/test.c (main): Conditionalized on GC_FREEBSD_THREADS,
	set stack.
	* include/private/gcconfig.h (configuration keyed off FREEBSD):
	Define SIG_SUSPEND, SIG_THR_RESTART.  Do not define
	MPROTECT_VDB when GC_FREEBSD_THREADS is defined.

2001-10-16  Loren J. Rittle  <ljrittle@acm.org>

	* Makefile.am (test.o): Find tests/test.c in $(srcdir).
	* Makefile.in: Rebuilt.

2001-10-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.am, acinclude.m4, configure.in: Imported GC 6.1 Alpha 1 and
	merged local changes.

2001-09-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* solaris_threads.c (MAX_ORIG_STACK_SIZE) [I386]: Provide special
	Solaris 2/Intel definition.

	* configure.in (i?86-*-solaris2.[89]*): Define
	SOLARIS25_PROC_VDB_BUG_FIXED.
	* include/private/gcconfig.h [I386 && SUNOS5]: Use it.
	* configure: Regenerate.

	* include/private/gcconfig.h [I386 && SUNOS5] (DATASTART): Use _etext.
	(DATAEND): Define using _end.

2001-09-11  Per Bothner  <per@bothner.com>

	* include/Makefile.am:  New file.  It defines include_HEADERS.
	* Makefile.am (SUBDIRS):  New macro, set to include.
	* configure.in (AC_OUTPUT):  Add include/Makefile.

2001-08-20  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.in: Always ask gcc for threads package.

2001-08-17  Tom Tromey  <tromey@redhat.com>

	* Makefile.am, acinclude.m4, configure.in: Imported GC 6.0 and
	merged local changes.

2001-08-02  David Billinghurst <David.Billinghurst>

	* configure: Rebuilt.
	* configure.in:  POSIX threads on cygwin does not link with
	-lpthreads.

2001-07-03  Tom Tromey  <tromey@redhat.com>

	Fix for PR bootstrap/3281:
	* aclocal.m4, configure, Makefile.in: Rebuilt.
	* acinclude.m4: Set mkinstalldirs for in-tree build.

2001-06-26  Richard Henderson  <rth@redhat.com>

	* alpha_mach_dep.s: Mark call-saved FP registers.
	* include/private/gcconfig.h (ALPHA): Remove USE_GENERIC_PUSH_REGS.
	* configure.in (alpha*): Re-enable alpha_mach_dep.s
	* configure: Rebuild.

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

	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4: Find configure.host in srcdir.

2001-06-09  Alexandre Oliva  <aoliva@redhat.com>, Stephen L Moshier  <moshier@mediaone.net>

	* configure.in (AC_EXEEXT): Work around in case it expands to
	nothing, as in autoconf 2.50.
	* acinclude.m4: Likewise.
	* aclocal.m4, configure: Rebuilt.

2001-06-07  Tom Tromey  <tromey@redhat.com>

	For PR bootstrap/3075:
	* configure, aclocal.m4, Makefile.in: Rebuilt.
	* configure.in: Don't call AC_CONFIG_AUX_DIR or
	AC_CANONICAL_SYSTEM.
	* acinclude.m4 (BOEHM_CONFIGURE): Call AC_CONFIG_AUX_DIR and
	AC_CANONICAL_SYSTEM here.
	* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Use srcdir, not
	boehm_gc_basedir.

2001-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* Makefile.am: Override gctest_OBJECTS so tests/test.c can be built.
	(libgcjgc_la_SOURCES): Remove typo.
	* tests/test.c: Fix struct names and includes for GC_GCJ_SUPPORT case.
	* Makefile.in: Rebuilt.

2001-05-21  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	Imported version version 6.0alpha7.

	* README, README.Mac, README.OS2, README.QUICK, README.alpha,
	README.amiga, README.debugging, README.dj, README.hp, README.linux,
	README.rs6000, README.sgi, README.solaris2, README.uts,
	README.win32, SCoptions.amiga, backptr.h, barrett_diagram,
	dbg_mlc.h, gc.h, gc.man, gc_alloc.h, gc_cpp.h, gc_hdrs.h, gc_mark.h,
	gc_priv.h, gc_private.h, gc_typed.h, gcconfig.h,
	hpux_irix_threads.c, makefile.depend, nursery.c,
	solaris_threads.h, test.c, test_cpp.cc, weakpointer.h, cord/README,
	cord/SCOPTIONS.amiga, cord/SMakefile.amiga, cord/cord.h,
	cord/ec.h, cord/gc.h, cord/private/cord_pos.h, include/backptr.h,
	include/gc_copy_descr.h, include/gc_nursery.h: Remove obsolete/moved
	files.

2001-05-19  Hans Boehm  <hans_boehm@hp.com>

	* configure.host: Build with -fexceptions.
	* linux_threads.c: Remember which thread stopped world for

2001-05-04  Loren J. Rittle  <ljrittle@acm.org>
	    with final tuning by Bryce McKinlay

	* configure.in: Add support for --enable-threads=posix on FreeBSD.
	* configure: Rebuilt.

2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>

	* gc_priv.h (UNLOCK): Change type of GC_noop1 argument.
	(GC_noop1): Change declaration to take one argument.

2001-04-26  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Obtain THREADS with `gcc -v'.
	* configure: Rebuilt.

2001-04-05  Hans Boehm  <hans_boehm@hp.com>

	* misc.c: Back out buggy changes to stack clearing code.
	Reduce CLEAR_SIZE to 1/4 of original value to reduce time
	spent clearing memory.

2001-04-04  Hans Boehm  <hans_boehm@hp.com>

	* finalize.c:
	- Accomodate finalization requests for static objects.
	  (Will be required by hash synchronization.  May be needed
	  in some configurations now.)

	* gc_priv.h:
	- Define MIN_WORDS.  All allocation requests are rounded
	  up to at least this size.  Removes a subtle assumption that
	  Java objects have a 2 word header.

	* gcconfig.h:
	- Adjust Linux/IA64 configuration for non-ancient kernels.
	  (Necessary fix for IA64.)

	* linux_threads.c:
	- Fix syntax error in currently unused code.  Will be needed
	  for Linux/PA-RISC.

	* malloc.c:
	- Handle MIN_WORDS.

	* misc.c:
	- Handle MIN_WORDS.
	- Change stack cleaning code to typically clear about one tenth
	  the memory it used to in the threads configuration.  Occasionally
	  still clear more.  (This is really a fix for a long-standing
	  and fairly significant performance bug with threads.)

	* os_dep.c:
	- Fix the code for finding the beginning of the data segment under
	  Linux.  I believe this is necessary for some IA64 Linux
	  distributions.  It will also helo other platforms, though those
	  may additionally require a gcconfig.h adjustment.  (This basically
	  works around the absence of a data_start or __data_start
	  definition in glibc.)

	* test.c:
	- Handle rounding due to MIN_WORDS.

2001-03-22  Tom Tromey  <tromey@redhat.com>

	* Makefile.am (gctest_LDFLAGS): Use -shared-libgcc.

2001-03-19  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (gctest_LDFLAGS): new macro.

2001-03-16  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (TESTS_ENVIRONMENT): New macro.

2001-01-23  Rod Stewart <stewart@lab43.org>

	* gcconfig.h: Check for `__arm__', not `arm'.

2000-12-30  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure.in: Rename THREADLIB to THREADLIBS.
	* Makefile.am (LINK): Add $(THREADLIBS) to libtool command line. This
	ensures that we link the correct version of the linuxthreads semaphore
	functions.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

	* linux_thread.c (GC_thr_init, GC_suspend_handler): Add SIGABRT to the
	list of signals which are not blocked during suspend in the NO_SIGNALS
	case.

2000-12-23  Hans Boehm  <Hans_Boehm@hp.com>

	* gcj_mlc.c (GC_gcj_malloc): Don't release allocation lock twice.

2000-12-15  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.dist: Renamed from Makefile.orig.

2000-12-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.am (gctest_LDADD): Added EXTRA_TEST_LIBS.
	* configure.in (EXTRA_TEST_LIBS): Check for `dlopen' in -ldl and
	set accordingly.
	* Makefile.in: Rebuilt.
	* configure: Likewise.

2000-12-10  Geoffrey Keating  <geoffk@redhat.com>

	* gcconfig.h: Add new case for powerpc EABI.
	[PPC]: Handle embedded OS for powerpc simulator.

2000-09-30  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure.in: Define GC_GCJ_SUPPORT. Define NO_DEBUGGING in
	cross-compile configuration only.
	* Makefile.am: Build gcj_mlc.c.
	* configure, Makefile.in: Rebuilt.

2000-09-10  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Include libtool macros from the top level.
	* aclocal.m4, configure: Rebuilt.

2000-09-04  Anthony Green  <green@redhat.com>

	Fix for PR libgcj/230:
	* mark.c (GC_mark_from_mark_stack): Remove call to
	GC_debug_object_start.
	* gc_priv.h (GC_debug_object_start): Remove prototype.

2000-08-16  Alexandre Oliva  <aoliva@redhat.com>

	* gcconfig.h [OSF1] (_end): Declare as `int'.

2000-08-02  Tom Tromey  <tromey@cygnus.com>

	* gc_priv.h (GC_generic_malloc_inner): Prototype.
	(GC_generic_malloc): Likewise.
	(GC_add_to_black_list_normal): Likewise.
	(GC_find_header): Likewise.
	(GC_ADD_TO_BLACK_LIST_NORMAL): Cast bits argument to word.
	* gc_mark.h (GC_find_start): Prototype.
	(GC_signal_mark_stack_overflow): Likewise.

2000-07-24  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (THREADS): Don't --enable-threads on IRIX <= 5.*.
	* configure: Rebuilt.

	* dyn_load.c (GC_scratch_last_end_ptr): Don't declare a #define.

2000-06-20  Bryce McKinlay  <bryce@albatross.co.nz>

	Imported version 5.1.
	* acinclude.m4: Push version to 5.1.

2000-06-19  Andrew Haley  <aph@cygnus.com>

	* os_dep.c (read): Pass two dummy args to syscall().

2000-05-11  Bryce McKinlay  <bryce@albatross.co.nz>

	Imported 5.0 release version.
	* acinclude.m4: Increment version to 5.0.

2000-05-07  Bryce McKinlay  <bryce@albatross.co.nz>

	Imported version 5.0alpha7.
	* acinclude.m4: Update version to 5.0a7.

2000-04-26  Jakub Jelinek  <jakub@redhat.com>

	* gcconfig.h (SPARC): Define ALIGNMENT to 8 for 64bit SPARC.
	(SPARC/LINUX): Use GC_SysVGetDataStart instead of LINUX_DATA_START
	- sparc glibc does not provide it.
	(SAVE_CALL_CHAIN, ASM_CLEAR_CODE): Define on sparc*-linux*.
	Make STACKBOTTOM depend on the wordsize.
	* os_dep.c (GC_SysVGetDataStart): Compile in on sparc*-linux*.
	(struct frame): Declare on sparc*-linux*.
	(GC_save_callers): Bias the frame pointers if needed (sparc64).
	* mach_dep.c (GC_save_regs_in_stack): Optimize on sparc32.
	Implement on sparc64.
	(GC_clear_stack_inner): Implement on sparc64.
	* gc_priv.h (GC_test_and_set): Implement for sparc.
	* linux_threads.c (GC_suspend_handler, GC_push_all_stacks): Use
	GC_save_regs_in_stack on sparc.

2000-04-23  Tom Tromey  <tromey@cygnus.com>

	* gcconfig.h (DYNAMIC_LOADING): Define for PPC Linux.

2000-04-19  Bryce McKinlay  <bryce@albatross.co.nz>

	Imported version version 5.0alpha6.
	* acinclude.m4: Bump version to 5.0a6.
	* configure.in: Don't use alpha_mach_dep.s.
	* include/private/config.h, irix_threads.c gc_watcom.asm: Delete
	obsolete files.
	* Makefile.am, Makefile.in: irix_threads.c is now
	hpux_irix_threads.c.
	* Makefile.orig: Updated from gc distribution Makefile.

2000-03-26  Anthony Green  <green@redhat.com>

	* misc.c (GC_enable): Always define GC_enable and GC_disable.

2000-02-14  Tom Tromey  <tromey@cygnus.com>

	* gc.h (dlopen): Define as GC_dlopen on Linux.
	(GC_dlopen): Declare on Linux.
	* dyn_load.c (GC_dlopen): Define for Linux.

Fri Jan 28 17:13:20 2000  Anthony Green  <green@cygnus.com>

	* gcconfig.h (DATASTART): Add missing extern declaration
	for data_start on powerpc.

1999-12-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* linux_threads.c: Don't block SIGINT, SIGQUIT, SIGTERM in the
	NO_SIGNALS case.

1999-12-19  Jeff Sturm  <jsturm@sigma6.com>

	* gcconfig.h: Define DATASTART for Alpha Linux.

1999-12-19  Anthony Green  <green@cygnus.com>

	* gcconfig.h: Use libgcj hack for Alpha Linux.
	Undefine MPROTEXT_VDB (from Jeff Sturm).
	* os_dep.c: Remove Alpha Linux hacks.
	* misc.c: Ditto.

1999-12-13  Tom Tromey  <tromey@cygnus.com>

	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4: Changed version to 5.0a4.
	* Makefile.in: Rebuilt.
	* Makefile.am (libgcjgc_la_LDFLAGS): Changed version to 1:1:0.

1999-12-12  Anthony Green  <green@cygnus.com>

	* gcconfig.h (DATASTART): Define as (&data_start) for PowerPC
	Linux.
	(DYNAMIC_LOADING): Define for PowerPC Linux.
	* os_dep.c: Remove some special cases for PowerPC Linux.
	* misc.c (GC_init_inner): Don't call GC_init_linux_data_start
	for PowerPC Linux.

1999-11-04  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcjgc_la_SOURCES): Removed quick_threads.c.

	* misc.c (GC_init_inner): Don't call GC_init_linuxppc().
	(GC_thr_init): Don't declare.

	* configure: Rebuilt.
	* configure.in: Removed qt threads case.
	* dyn_load.c: Don't mention QUICK_THREADS.
	* os_dep.c: Don't mention QUICK_THREADS.
	* misc.c: Don't mention QUICK_THREADS.
	* gcconfig.h: Don't mention QUICK_THREADS.
	* gc_priv.h: Removed QUICK_THREADS code.
	* quick_threads.c: Removed.

1999-11-03  Tom Tromey  <tromey@cygnus.com>

	* gcconfig.h: Merged in local changes from old config.h.

1999-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

	* gcconfig.h: Don't define MPROTECT_VDB on Linux/i386.

1999-11-02  Tom Tromey  <tromey@cygnus.com>

	* quick_threads.c: Include gcconfig.h, not boehm-config.h.

	* configure: Rebuilt.
	* configure.in: Don't create boehm-config.h.
	* Makefile.in: Rebuilt.
	* Makefile.am (libgcjgc_la_SOURCES): Reference gcconfig.h, not
	config.h.
	($(all_objs)): Depend on gcconfig.h.
	* gc_priv.h: Reference GCCONFIG_H, not CONFIG_H.
	* gcconfig.h: Define GCCONFIG_H, not CONFIG_H.
	* config.h: Removed.

1999-11-01  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (gctest_LDADD): Added THREADLIB.
	(TESTS): New macro.
	* configure: Rebuilt.
	* configure.in (INCLUDES): New subst.

1999-09-29  Steve Chamberlain  <sac@pobox.com>

	* config.h: Added picoJava target.
	* mach_dep.h (GC_push_regs):  New code for picoJava.

1999-09-28  Tom Tromey  <tromey@cygnus.com>

	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4 (LIB_AC_PROG_CC, LIB_AC_PROG_CXX): Provide
	appropriate AC_PROG_ symbol.

Tue Aug 10 00:08:29 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* gc_priv.h:  IRIX thread changes from
	include/private/gc_priv.h.

Mon Aug  9 18:33:38 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in: Rebuilt.
	* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
	builds.

	* configure: Rebuilt.
	* configure.in: Properly align --help output, fix capitalization
	and punctuation.
	* acinclude.m4: Likewise.

1999-08-04  Tom Tromey  <tromey@cygnus.com>

	* configure.in: Added missing `;;'.  From Anthony Green.

Mon Aug  2 23:09:41 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in (machdep): Use mips_ultrix_mach_dep.s on Ultrix V4.

1999-08-03  Tom Tromey  <tromey@cygnus.com>

	* gc_priv.h (GC_test_and_set): Implementation for Linux PPC from
	Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.

1999-08-02  Tom Tromey  <tromey@cygnus.com>

	* aclocal.m4, configure: Rebuilt for new libtool.

1999-07-31  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* mips_sgi_mach_dep.s: Enable PIC option.

1999-07-19  Tom Tromey  <tromey@cygnus.com>

	* config.h (MPROTECT_VDB): Don't define on Linux.

1999-07-19  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile.am (.s.lo): Avoid `#line' directives.
	* Makefile.in: Rebuilt.

1999-07-19  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile.am (*-recursive, *-am, *-multi): Automake does not
	generate *-recursive for this Makefile, use *-am instead.
	* Makefile.in: Rebuilt.

1999-06-30  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile.am (.s.lo): Renamed from `.s.o'.
	* Makefile.in: Rebuilt.

1999-06-21  Tom Tromey  <tromey@cygnus.com>

	Alpha patch from Jeff Sturm:
	* os_dep.c (GC_init_linuxalpha): New function.
	* misc.c: Initialize for alpha linux.
	* gc_priv.h (GC_test_and_set): Define for alpha.
	* config.h: Don't assume __data_start on alpha.

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcjgc_la_LDFLAGS): Use -version-info, not
	-release.

	* Makefile.in: Rebuilt.
	* Makefile.am (toolexeclibdir): Define as libdir when
	appropriate.
	* configure: Rebuilt.
	* configure.in (USE_LIBDIR): New conditional.

	* configure: Rebuilt.
	* configure.in: Recognize all forms of alpha.

1999-06-17  Anthony Green  <green@cygnus.com>

	* mach_dep.c (GC_push_regs): FreeBSD-elf support (from
	Carlo Dapor <carlo@vis.ethz.ch>).

1999-05-05  Gilles Zunino  <Gilles.Zunino@hei.fr>

	* configure.in: Switch from irix threads to posix threads
	Defined IRIX_THREADS. Put mips_sgi_mach_dep.lo into machdep
	for mips architecture.
	* configure: Regenerate.

1999-04-30  Tom Tromey  <tromey@cygnus.com>

	* linux_threads.c: Don't reference __pthread_initial_thread_bos.

1999-04-26  Tom Tromey  <tromey@cygnus.com>

	* dyn_load.c (GC_FirstDLOpenedLinkMap): Declare _DYNAMIC as
	`weak'.

1999-04-23  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in, configure: Rebuilt.
	* Makefile.am (EXTRA_LIBRARIES): Mention libgcjgc.la.
	(libgcjgc_la_SOURCES): Renamed.
	(libgcjgc_la_LIBADD): Likewise.
	(libgcjgc_la_DEPENDENCIES): Likewise.
	(EXTRA_libgcjgc_la_SOURCES): Likewise.
	(gctest_LDADD): Use libgcjgc.la.
	(all_objs): Mention libgcj_la_OBJECTS.
	(EXTRA_LTLIBRARIES): Renamed.
	(toollib_LTLIBRARIES): Likewise.
	(libgcjgc_la_LDFLAGS): New macro
	(toolexecdir): Renamed.
	(toolexeclibdir): Likewise.
	(toolexeclib_LTLIBRARIES): Likewise.
	(LTCOMPILE): Renamed; added libtool invocation.
	(LINK): Added libtool invocation.
	(.s.o): use LTCOMPILE.
	* configure.in: Call AM_PROG_LIBTOOL.
	(target_all): Set to libgcjgc.la.
	Mention `.lo' forms of object files.

1999-04-21  Tom Tromey  <tromey@cygnus.com>

	* misc.c (GC_init_inner): If QUICK_THREADS defined, compute
	GC_stackbottom.

	* os_dep.c: glibc 2.1 requires asm/sigcontext.h, not
	sigcontext.h.  From Matthias Klose <doko@itso.de>.

1999-04-16  Tom Tromey  <tromey@cygnus.com>

	* config.h (__start): Declare as `int' in alpha/OSF1 case.  From
	David Pettersson <dapet@mai.liu.se>

1999-04-14  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Don't use sparc_mach_dep.o for Solaris.  Reverts
	incorrect patch of 199-04-09.

	* configure: Rebuilt.
	* configure.in: Added support for alpha.
	From David Pettersson <dapet@mai.liu.se>.

1999-04-13  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgcjgc_a_SOURCES): Added solaris-threads.c and
	solaris-threads.h.

1999-04-09  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Use sparc_mach_dep.s when building on Solaris.

1999-02-23  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: For Linux, define _REENTRANT.  For Solaris, define
	SOLARIS_THREADS and _SOLARIS_PTHREADS.

1999-02-18  Tom Tromey  <tromey@cygnus.com>

	* quick_threads.c (GC_push_all_stacks): Change order of arguments
	to GC_push_all_stacks depending on STACK_GROWS_DOWN define.  Check
	for case where LO is NULL.

1999-02-10  Tom Tromey  <tromey@cygnus.com>

	* aclocal.m4, configure, Makefile.in: Rebuilt.
	* acinclude.m4: Updated to be used with automake 1.4.
	* configure.in: Renamed libgc to libgcjgc.  Updated to be used
	with automake 1.4.
	* Makefile.am (EXTRA_LIBRARIES): Renamed libgc to libgcjgc.
	(libgcjgc_a_SOURCES): Likewise.
	(libgcjgc_a_LIBADD): Likewise.
	(libgcjgc_a_DEPENDENCIES): Likewise.
	(EXTRA_libgcjgc_a_SOURCES): Likewise.
	(gctest_LDADD): Likewise.
	(all_objs): Likewise.

1999-01-08  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Define LINUX_THREADS if using POSIX threads on
	Linux.

	* gc_priv.h (GC_test_and_set): Put return type into definition.

1998-11-24  Andrew Haley  <aph@viagra.cygnus.co.uk>

	* Makefile.am: add support for eCos.  In particular, add C++
	support for compiling the file ecos.cc.
	* ecos.cc: new file.
	* acinclude.m4: add C++ support.
	* aclocal.m4: likewise
	* config.h: add eCos support.
	* configure: likewise
	* configure.in: likewise
	* misc.c (GC_write): add eCos support.
	* os_dep.c (tiny_sbrk): add eCos support.

Thu Dec 10 18:24:34 1998  Warren Levy  <warrenl@cygnus.com>

	* misc.c (GC_init_inner): Moved STACKBASE code to os_dep.c.
	* os_dep.c (GC_get_stack_base): Moved STACKBASE code from misc.c.

1998-11-23  Tom Tromey  <tromey@cygnus.com>

	* configure.host (boehm_gc_cflags): Don't add `-O2'.

1998-11-20  Andrew Haley  <aph@viagra.cygnus.co.uk>

	* Makefile.am, Makefile.in, configure.host: tx39 build option
	"-G 0" added.

1998-11-17  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Switch on host, not target.

1998-11-16  Tom Tromey  <tromey@cygnus.com>

	* gc_priv.h (GC_debug_object_start): Declare.
	* mark.c (GC_mark_from_mark_stack): Call GC_debug_object_start.
	* gc.h (GC_debug_register_finalizer_no_order,
	GC_register_finalizer_no_order): Declare.
	(GC_REGISTER_FINALIZER_NO_ORDER): New macro.
	* dbg_mlc.c (GC_debug_register_finalizer_no_order): New function.
	(GC_debug_generic_malloc): Likewise.
	(GC_debug_object_start): new function.

1998-11-11  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Recognize --enable-java-gc, not --enable-gc.

Tue Nov  3 18:01:12 1998  Tom Tromey  <tromey@sanguine.cygnus.com>

	* dyn_load.c: Handle QUICK_THREADS case.

1998-10-21  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Put cpp defines here, not in config.h.  Recognize
	--enable-threads.  Set INCLUDES.  Create boehm-cflags file.  Don't
	define PACKAGE or VERSION.
	* config.h (SILENT, NO_SIGNALS, NO_DEBUGGING, JAVA_FINALIZATION):
	Don't define.

	* os_dep.c (GC_default_push_other_roots): Define when
	QUICK_THREADS defined.
	* misc.c: Added QUICK_THREADS case.
	* gc_priv.h: Added QUICK_THREADS case to define LOCK and UNLOCK.
	* config.h (THREADS): Define if QUICK_THREADS defined.
	* Makefile.in: Rebuilt.
	* Makefile.am (libgc_a_SOURCES): Added linux_threads.c,
	quick_threads.c.
	* quick_threads.c: New file.

1998-10-20  Tom Tromey  <tromey@cygnus.com>

	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4: Don't subst machine_dir or sys_dir.
	* configure.host: Removed unused code.

Sun Oct 11 08:18:02 1998  Anthony Green  <green@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Fix typo in previous patch.

Sun Oct 11 08:06:11 1998  Anthony Green  <green@cygnus.com>

	* Makefile.in, aclocal.m4, configure: Rebuilt.
	* Makefile.am, acinclude.m4, configure.in: Add multilib support.
	* configure.host: Created.

Tue Sep  1 10:58:15 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (lib_LIBRARIES): Use target_all.
	(EXTRA_LIBRARIES): New macro.
	* configure: Rebuilt.
	* configure.in: Recognize --enable-gc.

Thu Aug 13 10:52:45 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (COMPILE): Define.
	(LINK): Likewise.
	(.s.o): Use MY_CFLAGS.
	* configure: Rebuilt.
	* configure.in (MY_CFLAGS): Define and subst.

Wed Aug 12 11:41:43 1998  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Added --with-cross-host argument.  Use
	$with_cross_host to determine when cross-compiling.

	* config.h (SMALL_CONFIG): Don't define.
	* configure: Rebuilt.
	* configure.in: Define SMALL_CONFIG when cross-compiling.

Tue Aug 11 11:41:25 1998  Tom Tromey  <tromey@cygnus.com>

	* solaris_pthreads.c, misc.c, gc_priv.h, config.h, alloc.c,
	allchblk.c: Merged with 4.13a2 while preserving local changes.

	* Makefile.orig: Updated from Makefile in 4.13a2.

	* configure: Rebuilt.
	* configure.in: Updated version number to 4.13a2.  On Solaris,
	don't build with -O when using gcc.

	Merged in version 4.13alpha2:
	* config.h (USE_MMAP): Re-enable on Solaris.
	* solaris_pthreads.c: Removed RCS Id line.
	* alpha_mach_dep.s: Removed RCS Id line.

Wed Jul 22 15:38:12 1998  Tom Tromey  <tromey@cygnus.com>

	* config.h (USE_MMAP): Don't define for Solaris.

Wed Jun 10 12:51:41 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgc_a_SOURCES): Removed setjmp_t.c.

	* Makefile.in: Rebuilt.
	* Makefile.am (libgc_a_SOURCES): Removed add_gc_prefix.c.

Thu May 14 15:32:58 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am ($(all_objs)): Depend on config.h.

	* config.h: [MIPS] If DATASTART_IS_ETEXT defined then define
	DATASTART as &_etext.
	* misc.c (GC_init_inner): If STACKBASE defined, then use it.
	* configure: Rebuilt.
	* configure.in: Define STACKBASE and DATASTART_IS_ETEXT for the
	tx39.

Tue May 12 13:15:45 1998  Tom Tromey  <tromey@cygnus.com>

	* alloc.c: Don't call GET_TIME if NO_CLOCK defined.
	(GC_maybe_gc): Likewise.
	* os_dep.c: If NO_SIGSET defined, then have empty
	GC_disable_signals and GC_enable_signals.
	* configure: Rebuilt.
	* configure.in: Added --with-target-subdir option.  If
	cross-compiling, define NO_SIGSET and NO_CLOCK.

Wed May  6 16:40:28 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (.s.o): Directly use CC -x assembler-with-cpp.
	(AS): Removed.
	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4: New file.
	* configure.in: Don't run AM_EXEEXT.  Use LIB_AC_PROG_CC.

Thu Apr 30 14:51:12 1998  Tom Tromey  <tromey@cygnus.com>

	* configure: Rebuilt.
	* configure.in: Link boehm-config.h to config.h.
	* Makefile.in: Rebuilt.
	* Makefile.am (INCLUDES): Removed.
	* config.h (SILENT, SMALL_CONFIG, NO_SIGNALS, NO_DEBUGGING,
	JAVA_FINALIZATION): Define

Wed Apr 29 11:03:14 1998  Tom Tromey  <tromey@cygnus.com>

	* Many files: Use GC_bool, not bool.
	* gc_priv.h: Define GC_bool, not bool.

	* misc.c (GC_dont_gc): Define as int.
	(GC_quiet): Likewise.
	* gc_priv.h (GC_never_stop_func): Declare as returning bool.
	* alloc.c (GC_dont_expand): Define as int.
	* gc_priv.h: For gcc, define bool as char.

Tue Apr 28 22:44:16 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (check_PROGRAMS): New macro.
	(gctest_SOURCES): Likewise.
	(gctest_LDADD): Likewise.

Mon Apr 27 23:53:24 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (libgc_a_SOURCES): Added dyn_load.c.
	* configure: Rebuilt.
	* configure.in: Define SUNOS53_SHARED_LIB on Solaris 2.3.

Wed Apr 15 11:40:56 1998  Tom Tromey  <tromey@sanguine.cygnus.com>

	* Makefile.am, Makefile.in, configure.in, configure, aclocal.m4:
	New files.
	* Makefile.orig: Renamed from Makefile.
