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.
