2016-12-21  Release Manager

	* GCC 6.3.0 released.

2016-08-22  Release Manager

	* GCC 6.2.0 released.

2016-04-27  Release Manager

	* GCC 6.1.0 released.

2016-03-29  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* configure.host: Set gc_use_mmap on *-kfreebsd-gnu* and *-gnu*.
	* include/private/gcconfig.h [HURD && USE_MMAP]: Define
	USE_MMAP_ANON.

2016-03-16  Andreas Schwab  <schwab@suse.de>

	* include/private/gcconfig.h [AARCH64] (ALIGNMENT, CPP_WORDSZ):
	Define for __ILP32__.

2015-10-09  David Malcolm  <dmalcolm@redhat.com>

	* testsuite/lib/boehm-gc.exp: Load multiline.exp before
	prune.exp, using load_gcc_lib.

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-24  Michael Darling  <darlingm@gmail.com>

	PR other/66259
	* Makefile.direct: Reflects renaming of configure.in to configure.ac
	* Makefile.dist: Likewise
	* version.h: Likewise
	* doc/README: Likewise

2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* Makefile.in: Regenerated with automake-1.11.6.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* include/Makefile.in: Likewise.
	* include/gc_config.h.in: Likewise.
	* testsuite/Makefile.in: Likewise.

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.
