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

	* Backport r124870 from main.

	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-05-19  Andreas Tobler  <a.tobler@schweiz.org>

	* Backport r120684, 120801, 120853, 120874 and 120977 from main.

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

	* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently
	added defines to include/private/gc_priv.h
	* darwin_stop_world.c: Removed the above defines.
	(catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too.
	* 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  Mike Stump  <mrs@apple.com>

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

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

	* include/gc_config.h.in: Regenerate.

	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.

2007-05-13  Release Manager

	* GCC 4.2.0 released.

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

	* aclocal.m4: Regenerate to use multi.m4.
	* configure: Regenerate.
	* Makefile.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.

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.
