2005-07-07  Release Manager

	* GCC 4.0.1 released.

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

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

2005-04-20  Release Manager

	* GCC 4.0.0 released.

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

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

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.
