2015-06-23  Release Manager

	* GCC 4.8.5 released.

2014-12-19  Release Manager

	* GCC 4.8.4 released.

2014-05-22  Release Manager

	* GCC 4.8.3 released.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure: Regenerate.

2013-10-16  Release Manager

	* GCC 4.8.2 released.

2013-05-31  Release Manager

	* GCC 4.8.1 released.

2013-03-22  Release Manager

	* GCC 4.8.0 released.

2013-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53265
	* testsuite/libmudflap.c/fail37-frag.c: Add optimization barrier.

2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years.

2013-01-03  Jakub Jelinek  <jakub@redhat.com>

	* mf-runtime.c (__mf_usage): Update copyright notice dates.

2012-12-15  Alexandre Oliva <aoliva@redhat.com>

	* mf-hooks1.c (free): Return on NULL before any logging.

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

	* configure: Regenerated.

2012-07-13  Richard Guenther  <rguenther@suse.de>

	* testsuite/libmudflap.c++/ctors.exp: Explicitely specify -O0.
	* testsuite/libmudflap.c++/c++frags.exp: Likewise.
	* testsuite/libmudflap.cth/cthfrags.exp: Likewise.
	* testsuite/libmudflap.c/cfrags.exp: Likewise.
	* testsuite/libmudflap.c/externs.exp: Likewise.

2012-07-13  Richard Guenther  <rguenther@suse.de>

	* testsuite/libmudflap.c/fail11-frag.c: Adjust to not look like memset.
	* testsuite/libmudflap.c/fail12-frag.c: Likewise.

2012-05-29  Joseph Myers  <joseph@codesourcery.com>

	* mf-impl.h: Fix typo.

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

	* configure: Regenerated.

2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 24985
	* testsuite/lib/libmudflap.exp: Handle caret.

2012-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR libmudflap/40778
	* testsuite/libmudflap.c/fail68-frag.c: New test.

2012-01-01  Jakub Jelinek  <jakub@redhat.com>

	* mf-runtime.c (__mf_usage): Update copyright notice dates.

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

	* configure: Regenerate.

2011-07-31  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/43513
	* testsuite/libmudflap.c/fail31-frag.c: Adapt testcase to prevent
	folding of alloca.

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

	Revert:
	2011-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/49753
	PR tree-optimization/49309
	* testsuite/libmudflap.c++/pass68-frag.cxx: New test.

2011-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/49753
	PR tree-optimization/49309
	* testsuite/libmudflap.c++/pass68-frag.cxx: New test.

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

	* configure.ac: Don't create pth.
	Check for library containing sched_yield.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* testsuite/lib/libmudflap.exp (libmudflap-init): Use
	mfconfig_libs in -static check.

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

	PR libmudflap/49550
	* mf-runtime.c (__wrap_main) [__sun__ && __svr4__]: Don't register
	stdin, stdout, stderr.
	Register __ctype, __ctype_mask.

	* configure.ac: Check for mmap64.
	Check for rawmemchr, stpcpy, mempcpy.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* mf-hooks1.c [HAVE_MMAP64] (__mf_0fn_mmap64): New function.
	(mmap64): New wrapper function.
	* mf-impl.h (__mf_dynamic_index) [HAVE_MMAP64]: Add dyn_mmap64.
	* mf-runtime.c (__mf_dynamic) [HAVE_MMAP64]: Handle mmap64.

	* mf-hooks2.c [HAVE_GETMNTENT && HAVE_SYS_MNTTAB_H]: Implement
	getmntent wrapper.

	* mf-hooks3.c (_REENTRANT): Define.

	* testsuite/libmudflap.c/heap-scalestress.c (SCALE): Reduce to 10000.

	* testsuite/libmudflap.c/pass-stratcliff.c: Include ../config.h.
	(MIN): Define.
	Use HAVE_RAWMEMCHR, HAVE_STPCPY, HAVE_MEMPCPY as guards.

	* testsuite/libmudflap.c/pass47-frag.c: Expect __ctype warning on
	*-*-solaris2.*.

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

	PR libmudflap/49549
	* testsuite/lib/libmudflap.exp (load_gcc_lib): Load
	target-supports.exp.
	* testsuite/libmudflap.cth/cthfrags.exp: Only pass
	--noinhibit-exec to GNU ld.

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

	PR libmudflap/38738
	* configure.ac: Check for sys/mnttab.h.
	Check for library containing connect.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* mf-hooks2.c [HAVE_SYS_MNTTAB_H]: Include <sys/mnttab.h>.
	* testsuite/libmudflap.c/pass-stratcliff.c (main) [__sun__ &&
	__svr4__]: Disable rawmemchr, stpcpy, mempcpy tests.

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

	* configure: Regenerate.

2011-01-03  Jakub Jelinek  <jakub@redhat.com>

	* mf-runtime.c (__mf_usage): Update copyright notice dates.

2010-10-31  Jason Merrill  <jason@redhat.com>

	PR testsuite/20003
	* testsuite/libmudflap.cth/pass40-frag.c: Increase timeout to 30.

2010-08-20  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/libmudflap.c++/pass41-frag.cxx (dg-prune-output):
	New dg directive.

2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>

	PR bootstrap/43170
	* configure: Regenerate.

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

	* testsuite/libmudflap.c/pass46-frag.c (dg-options): Remove -Wall.

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

	* testsuite/lib/mfdg.exp (additional_prunes): New global.
	(dg-test): Clear additional_prunes before test is run.
	(dg-prune-output): New procedure.
	* testsuite/lib/libmudflap.exp (libmudflap-dg-test): Do not call
	prune_gcc_output.
	(libmudflap-dg-prune): New procedure.
	* testsuite/libmudflap.c++/pass57-frag.cxx (dg-prune-output):
	New dg directive.

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

	PR other/43620
	* configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

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

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

2010-03-15  David S. Miller  <davem@davemloft.net>

	* testsuite/libmudflap.c/pass54-frag.c: Add explicit return from
	main.

2010-01-09  Jakub Jelinek  <jakub@redhat.com>

	* mf-runtime.c (__mf_usage): Update copyright notice dates.

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

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

2009-09-22  Frank Ch. Eigler  <fche@redhat.com>

	PR libmudflap/41433
	* mf-runtime.c (__mf_init): Ignore $MUDFLAP_OPTIONS if
	running setuid or setgid.

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

	* mf-runtime.c (__mf_init): Support FreeBSD.
	Prime mutex which calls calloc upon first lock to avoid deadlock.
	* mf-hooks1.c (__mf_0fn_mmap): Support FreeBSD.
	Ignore red zone allocation request for initial thread's stack.

2009-09-01  Loren J. Rittle  <ljrittle@acm.org>
	    Andreas Schwab  <schwab@linux-m68k.org>

	* testsuite/libmudflap.c/pass51-frag.c (MAP_FAILED): Define,
	if not in system header; use it.  On FreeBSD, must pass fd==-1
	with MAP_ANON flag.  Correct mmap error check.
	* testsuite/libmudflap.c/fail40-frag.c: Ditto.

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

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

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

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

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.in: Regenerate.

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

	* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.

2009-07-16  Joseph Myers  <joseph@codesourcery.com>

	* configure: Regenerate.

2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>

	PR testsuite/40699
	PR testsuite/40707
	PR testsuite/40709
	* testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit.

2009-07-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19831
	* testsuite/libmudflap.c/fail11-frag.c: Make allocated memory
	escape.
	* testsuite/libmudflap.c/fail12-frag.c: Likewise.
	* testsuite/libmudflap.c/fail16-frag.c: Likewise.
	* testsuite/libmudflap.c/fail31-frag.c: Likewise.

2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* testsuite/lib/libmudflap.exp (libmudflap-init): Don't add "."
	to ld_library_path.  Use add_path.  Add just find_libgcc_s to
	ld_library_path, not every libgcc multilib directory.

2009-04-09  Nick Clifton  <nickc@redhat.com>

	* mf-hooks1.c: Change copyright header to refer to version 3
	of the GNU General Public License with version 3.1 of the GCC
	Runtime Library Exception and to point readers at the COPYING3
	and COPYING3.RUNTIME files and the FSF's license web page.
	* mf-heuristics.c: Likewise.
	* mf-hooks2.c: Likewise.
	* mf-hooks3.c: Likewise.
	* mf-impl.h: Likewise.
	* mf-runtime.c: Likewise.
	* mf-runtime.h: Likewise.

2009-04-09  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/lib/mfdg.exp: Change copyright header to refer to
	version 3 of the GNU General Public License and to point readers
	at the COPYING3 file and the FSF's license web page.
	* testsuite/lib/libmudflap.exp: Likewise.

2009-03-31  Ben Elliston  <bje@au.ibm.com>

	PR libmudflap/38462
	* testsuite/libmudflap.c/fail27-frag.c: Match `mudflap dead
	object', not `mudflap object'.

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

	* configure: Regenerate.

2009-02-03  Jakub Jelinek  <jakub@redhat.com>

	* mf-runtime.c (__mf_usage): Update copyright notice dates.

2009-01-23  Jie Zhang  <jie.zhang@analog.com>

	* mf-impl.h (__mf_get_state, __mf_set_state): Don't use
	__thread when TLS support is emulated.
	* mf-hooks3.c (__mf_get_state, __mf_set_state): Likewise.
	* mf-runtime.c (__mf_state_1): Likewise.
	* configure.ac: Use GCC_CHECK_EMUTLS.
	* configure: Regenerate.
	* config.h.in: Regenerate.

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

	* configure: Regenerate.

2008-11-26  Janis Johnson  <janis187@us.ibm.com>

	PR testsuite/28870
	* testsuite/lib/mfdg.exp (dg-test): Use new timeout support.
	(dg-timeout): Remove.
	(standard-wait): Remove.
	* testsuite/lib/libmudflap.exp: Include new timeout library files.
	(libmudflap_target_compile): Set timeout value from new proc.

2008-11-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35314
	* testsuite/libmudflap.c/pass67-frag.c: New test.

2008-10-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/37568
	* testsuite/libmudflap.c++/pass66-frag.cxx: New test.

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

	* configure: Regenerate for new libtool.
	* Makefile.in: Ditto.
	* testsuite/Makefile.in: Ditto.

2008-09-15  Jakub Jelinek  <jakub@redhat.com>

	PR libmudflap/36397
	* testsuite/libmudflap.c/pass64-frag.c: New test.

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

	* Makefile.in: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.in: Regenerate.

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

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

2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>

	* testsuite/libmudflap.c/pass63-frag.c: New test.

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

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

2008-03-02  Jakub Jelinek  <jakub@redhat.com>

	* mf-runtime.c (__mf_usage): Update copyright notice dates.

2008-02-21  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/libmudflap.c/fail8-frag.c: Adjust scan pattern for
	mudflap dead object.
	* testsuite/libmudflap.c/fail9-frag.c: Ditto.

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

	* configure: Regenerate.

2008-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34618
	* testsuite/libmudflap.c/pass62-frag.c: New test.

2008-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/34619
	* testsuite/libmudflap.c++/pass61-frag.cxx: New test.

2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>

	PR libmudflap/26442
	* testsuite/libmudflap.c++/pass60-frag.cxx: New test.

2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>

	* configure: Regenerate following changes to ../config/tls.m4.

2007-07-26  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (clean-local): Removed.
	(pth/mf-runtime.lo, pth/mf-heuristics.lo, pth/mf-hooks1.lo,
	pth/mf-hooks2.lo, pth/mf-hooks3.lo): Likewise.
	(libmudflapth_la_SOURCES): List sources.
	(libmudflapth_la_LIBADD): Clear.
	(libmudflapth_la_CFLAGS): New variable.

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

	* aclocal.m4: Regenerated.

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

	* configure: Regenerate.

2007-05-31  Frank Ch. Eigler  <fche@redhat.com>

	From Andi Kleen <ak@suse.de>:
	* mf-runtime.c (options): Rename structure for compatibility with
	glibc getopt_long.

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

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

2007-03-14  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/libmudflap.cth/pass59-frag.c (main): Fix casting of arg.

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

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

2007-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/28468
	* configure: Regenerate.

2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure: Regenerate.

2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-11-10  Frank Ch. Eigler  <fche@redhat.com>

	PR libmudflap/28578
	* mf-hooks1.c (__mf_0fn_malloc): Make the bootstrap buffers
	static but not function scope static.
	(free): Skip deallocation attempts for objects placed into
	bootstrap buffers.
	* testsuite/libmudflap.cth/pass59-frag.c: New test.

2006-11-06  Frank Ch. Eigler  <fche@redhat.com>

	From Herman ten Brugge <hermantenbrugge@home.nl>:
	* mf-runtime.c (__mf_uncache_object): Optimize the code so that
	small and large objects are handled a lot faster.

2006-11-06  Frank Ch. Eigler  <fche@redhat.com>

	* configure.ac (__libc_freeres): Look for it.
	* mf-impl.h (call_libc_freeres): New configuration flag.
	* mf-runtime.c (__mf_set_default_options): Set it by default.
	(__mfu_report): Call it if needed.
	(__mfu_unregister): Remove "unaccessed registered object" warning.
	* configure, config.h.in: Regenerated.

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

	* configure: Rebuilt.

2006-06-21  Frank Ch. Eigler  <fche@redhat.com>

	PR 21274
	mf-runtime.h installation based on ssp patch for PR 26473 from
	Mark Mitchell  <mark@codesourcery.com>.
	* configure.ac (ACX_NONCANONICAL_TARGET): Use it.
	* Makefile.am (target_noncanonical): Define.
	(libsubincludedir): New variable.
	(nobase_libsubinclude_HEADERS): Add mf-runtime.h.
	(include_HEADERS): Remove.
	* configure, aclocal.m4, config.h.in: Regenerated.
	* Makefile.in, testsuite/Makefile.in: Likewise.
	* mf-runtime.h: Add #ifndef protection for conflicting _REENTRANT
	and _THREAD_SAFE redefinition values.

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

	* Makefile.am: Add install-html target. Add install-html to .PHONY
	* Makefile.in: Regenerate.

2006-04-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR mudflap/26789
	* testsuite/libmudflap.c++/error1-frag.cxx: New test.

	PR mudflap/26790
	* testsuite/libmudflap.c++/error2-frag.cxx: New test.

2006-04-10  Matthias Klose  <doko@debian.org>

	* testsuite/lib/libmudflap.exp (libmudflap-init): Recognize multilib
	directory names containing underscores.

2005-11-22  Janis Johnson  <janis187@us.ibm.com>

	* testsuite/lib/libmudflap.exp (libmudflap-init): Remove -static from
	MUDFLAP_FLAGS if static library not supported.
	* testsuite/libmudflap.c/cfrags.exp (MUDFLAP_FLAGS): new.
	* testsuite/libmudflap.c/externs.exp: Ditto.
	* testsuite/libmudflap.c++/ctors.exp: Ditto.
	* testsuite/libmudflap.c++/c++frags.exp: Ditto.
	* testsuite/libmudflap.cth/cthfrags.exp: Ditto.

2005-10-04  James E Wilson  <wilson@specifix.com>

	* configure.ac (mudflap_cv_entry_point): Use quadrigraphs to declare
	$name as array of characters with unknown bound.  Also store into the
	array.
	* configure: Regenerate.

2005-09-30  James E. Wilson  <wilson@specifix.com>

	* configure.ac (pthread.h): Use AC_CHECK_HEADERS instead of
	AC_CHECK_HEADER.
	(target_thread_file): New.  Set from sed'ed gcc output.
	(posix_threads): New.  Set from target_thread_file.  Use instead of
	ac_have_pthread_h.
	(pthread_create_version): Move initialization before code using it.
	* configure: Regenerate.

	* mf-heuristics.c (_end, ENTRY_POINT): Make them arrays with unknown
	bounds.

2005-09-29  James E. Wilson  <wilson@specifix.com>

	* mf-hooks1.c (__mf_0fn_mmap, mmap, __mf_0fn_munmap, munmap): Protect
	with HAVE_MMAP ifdef.

2005-09-23  Frank Ch. Eigler  <fche@elastic.org>

	PR 23084.
	* mf-hooks2.c (accept): Tolerate NULL sockaddr* parameter.

2005-09-23  Frank Ch. Eigler  <fche@elastic.org>

	* testsuite/libmudflap.c++/pass58-frag.cxx: New test for heisenbug 19319.

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

	* aclocal.m4, configure: Rebuilt.
	* configure.ac: Use GCC_CHECK_TLS.
	* acinclude.m4 (LIBMUDFLAP_CHECK_TLS, LIBMUDFLAP_ENABLE): Moved
	to ../config.

2005-08-22  Jim Wilson  <wilson@specifix.com>

	* mf-hooks2.c (MF_REGISTER_fopen): Define to __MF_TYPE_STATIC when
	__FreeBSD__ is defined.

2005-08-17  Jim Wilson  <wilson@specifix.com>

	* mf-hooks1.c (malloc, calloc, realloc, free,
	__mf_wrap_alloca_indirect): Call BEGIN_MALLOC_PROTECT before calling
	the real routines, and END_MALLOC_PROTECT afterwards.
	* mf-impl.h (enum __mf_state_enum): Expand comment.  Add in_malloc.
	(BEGIN_PROTECT): Handle in_malloc state.
	(BEGIN_MALLOC_PROTECT, END_MALLOC_PROTECT): New.
	* testsuite/libmudflap.c/hook2-allocstuff.c: New.

2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

2005-08-15  Ulrich Weigand  <weigand@informatik.uni-erlangen.de>

	* mf-hooks3.c (main_seen_p): Remove.
	(__mf_get_state): Remove attempt to recognize the main thread.

2005-08-15  Maciej W. Rozycki  <macro@linux-mips.org>

	* configure.ac: Test for the name of the symbol used for the entry
	point; define ENTRY_POINT to the result.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* mf-heuristics.c: Replace _start with ENTRY_POINT throughout.

2005-08-14  Ulrich Weigand  <weigand@informatik.uni-erlangen.de>

	* mf-runtime.c (__mf_state_1): Initialize to reentrant.
	(__mf_init): Set thread state active.
	* mf-hooks3.c (__mf_pthread_spawner): Always set thread
	state active.
	(pthread_create wrapper): Always use thread spawner.

	* testsuite/libmudflap.cth/pass37-frag.c: Increase timeout.
	* testsuite/libmudflap.cth/pass39-frag.c: Likewise.

2005-07-16  Richard Henderson  <rth@redhat.com>

	* acinclude.m4: New file.
	* configure.ac: Invoke LIBMUDFLAP_CHECK_TLS.
	* configure, config.h.in, Makefile.in, testsuite/Makefile.in: Rebuild.
	* mf-hooks1.c (__mf_0fn_malloc): Move body from ...
	(__mf_0fn_calloc): ... here.
	* mf-hooks3.c (struct pthread_info): Remove.
	(__mf_pthread_info, __mf_pthread_info_idx): Remove.
	(LIBMUDFLAPTH_THREADS_MAX): Set to 1021.
	(struct mf_thread_data): New.
	(mf_thread_data, mf_thread_data_lock): New.
	(__mf_allocate_blank_threadinfo): Remove.
	(__mf_find_threadinfo): Rewrite and simplify.  Only use if TLS is
	not available.
	(__mf_state_perthread): Remove.
	(__mf_get_state, __mf_set_state): New.
	(__mf_pthread_cleanup): Use &errno, rather than saved pointer.
	Update mf_thread_data killing procedure.
	(__mf_pthread_spawner): Similarly.
	(__mf_0fn_pthread_create): Only use wrapper if necessary.  Remove
	code to allocate thread stack space.
	(__mf_0fn_pthread_join, pthread_join): Remove.
	(__mf_0fn_pthread_exit, pthread_exit): Remove.
	* mf-impl.h (dyn_pthread_join, dyn_pthread_exit): Remove.
	(__mf_state_1): Rename from __mf_state; use TLS when available.
	(__mf_get_state, __mf_set_state): New.  Update all users.
	* mf-runtime.c (begin_recursion_protect1): New.
	(BEGIN_RECURSION_PROTECT): Use it.
	(__mf_state_1): Rename from __mf_state; use TLS when available.
	(threads_active_p): Remove.
	(__mf_usage): Compute it directly.

2005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* testsuite/libmudflap.c/externs-1.c (main): Add return statement.

2005-06-15  Frank Ch. Eigler  <fche@redhat.com>

	Fix for uncaching bug reported by Herman ten Brugge.
	* mf-runtime.c (__mf_uncache_object): Search whole cache.
	* testsuite/libmudflap.c/fail40-frag.c: New test.

2005-05-23  Alfred M. Szmidt  <ams@gnu.org>

	PR libmudflap/21724
	* Makefile.am (AM_MAKEFLAGS): Pass includedir.
	* Makefile.in: Amend.

2005-06-14  Frank Ch. Eigler  <fche@redhat.com>

	PR mudflap/21023
	* testsuite/libmudflap.c/externs.exp, externs-{1,2}.c: New test files.
	* testsuite/libmudflap.c/cfrags.exp: Bypass new sources.

2005-06-14  Frank Ch. Eigler  <fche@redhat.com>

	PR libmudflap/21094
	* testsuite/libmudflap.c++/*.exp: Assert build tree g++.

2005-06-14  Frank Ch. Eigler  <fche@redhat.com>

	PR mudflap/22064
	* mf-impl.h (mudflap_mode, violation_mode): Make these ordinary
	unsigned vars with #defines instead of enums.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

2005-04-12  Frank Ch. Eigler  <fche@redhat.com>

	PR mudflap/19266
	* testsuite/libmudflap.c++/c++frags.exp: Also test -O permutation.
	* testsuite/libmudflap.c++/pass57-frag.cxx: New test.

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

	* mf-runtime.c (__mfu_unregister): Warning fix for char unsigned.

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

	* mf-runtime.h: Add libmudflap copyright clause.

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

	* mf-heuristics.c: Fix whitespace at end of line.
	* mf-hooks1.c: Likewise.
	* mf-hooks2.c: Likewise.
	* mf-hooks3.c: Likewise.
	* mf-impl.h: Likewise.
	* mf-runtime.c: Likewise.
	* mf-runtime.h: Likewise.

2005-03-21  Zack Weinberg  <zack@codesourcery.com>

	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
	In all substitutions, expand gcc_version in Makefile.
	* aclocal.m4, configure: Regenerate.
	* Makefile.am: Set gcc_version.
	* Makefile.in, testsuite/Makefile.in: Regenerate.

2005-03-17  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mfu_check): Respect ignore_reads configuration.
	* testsuite/libmudflap.c/{pass56,fail39}-frag.c: New tests.

2005-02-13  Frank Ch. Eigler  <fche@redhat.com>

	PR mudflap/19319
	* testsuite/libmudflap.c++/pass55-frag.c: New test.

2005-01-05  Richard Henderson  <rth@redhat.com>

	* testsuite/libmudflap.c/pass32-frag.c: Fix typo.

2005-01-02  Greg McGary  <greg@mcgary.org>

	* mf-impl.h (uintptr_t): Get typedef via stdint.h or define explicitly.
	* mf-runtime.h: New file, replaces mf-runtime.h.in.
	* configure.ac (AC_CONFIG_FILES): mf-runtime.h is no longer generated.
	* Makefile.in: Ditto.
	* testsuite/lib/libmudflap.exp: Add -I${srcdir}/.. to get mf-runtime.h
	* testsuite/libmudflap.c/pass32-frag.c: s/uintptr_t/__mf_uintptr_t/
	* testsuite/libmudflap.c/fail36-frag.c: New test.
	* testsuite/libmudflap.c/fail37-frag.c: New test.
	* testsuite/libmudflap.c/fail38-frag.c: New test.

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

	* Makefile.am: Add ../config to ACLOCAL_AMFLAGS.
	* aclocal.m4, Makefile.in, testsuite/Makefile.in: Regenerate.

2004-12-02  Richard Sandiford  <rsandifo@redhat.com>

	* configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
	* aclocal.m4: Include ../config/gcc-version.m4.
	* configure, Makefile.in, testsuite/Makefile.in: Regenerate.

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

	* Makefile.am: Define ACLOCAL_AMFLAGS.
	* acinclude.m4: Remove.
	* stamp-h.in: Remove superfluous stamp file.
	* aclocal.m4, configure, Makefile.in: Regenerate.
	* testsuite/Makefile.in: Likewise.

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

	* Makefile.am: Revert previous.
	* acinclude.m4: Restore.
	* aclocal.m4, configure, Makefile.in: Regenerate.
	* testsuite/Makefile.in: Likewise.

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

	* Makefile.am: Define ACLOCAL_AMFLAGS.
	* acinclude.m4: Remove.
	* aclocal.m4, configure, Makefile.in: Regenerate.
	* testsuite/Makefile.in: Likewise.

2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* testsuite/lib/libmudflap.exp: Use new procs in target-libpath.exp.

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

	* Makefile.in, configure, aclocal.m4: Regenerate with automake 1.9.3.
	* testsuite/Makefile.in: Likewise.

2004-11-01  Andreas Schwab  <schwab@suse.de>

	* configure.ac: (target_alias): Default to $host_alias, not
	$target.
	* configure: Regenerated.

2004-10-28  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/fail35-,pass53-,pass54-frag.c: New tests.
	* testsuite/libmudflap.c/pass35-frag.c: Correct embedded warning
	message.

2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR other/18138
	* testsuite/lib/libmudflap.exp: Accept more than one multilib libgcc.

2004-10-12  Frank Ch. Eigler  <fche@redhat.com>

	* configure.ac: Check for more headers, functions.
	* mf-hooks2.c (mkbuffer, unmkbuffer): New helper functions for
	tracking overridden FILE buffers.
	(fopen, setvbuf): New/revised hook functions for buffer overriding.
	(setbuf,setlinebuf,fdopen,freopen,fopen64,freopen64,fclose): Ditto.
	(fflush): Accept given NULL stream (means "all streams").
	* mf-runtime.h.in:
	* mf-runtime.c (__mfu_check): Accept accesses that span adjacent
	HEAP/GUESS objects.
	(LOOKUP_CACHE_SIZE_MAX): Raise to 64K entries tentatively.
	(__mf_adapt_cache): Use them all.
	* testsuite/libmudflap.c/pass35-frag.c: Update warning message.
	* testsuite/libmudflap.c++/ctors.exp: Ditto.
	* testsuite/libmudflap.c/{pass51,pass52}-frag.c: New tests.
	* configure, config.h.in: Regenerated.

2004-10-05  Frank Ch. Eigler  <fche@redhat.com>

	* configure.ac: Checking for sys/socket.h once is enough.
	* configure: Regenerated.

2004-10-04  Frank Ch. Eigler  <fche@redhat.com>

	* configure.ac: Look for more headers & functions.
	* mf-hooks2.c (getmntent, inet_ntoa, getproto*): New wrapper functions.
	* mf-runtime.h.in: Add new "#pragma redefine_extname"s for them.
	* mf-runtime.c (options): Clean up integer signedness warnings.
	(main): Add a declaration to fix a warning.
	* mf-hooks3.c (pthread_exit): Add not-reached exit() to wrapper.
	* configure, config.h.in: Regenerated.

2004-10-02  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass50-frag.c, fail33-frag.c, fail34-frag.c:
	New tests for proper base/limit checking for aggregates.

2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>

	* testsuite/libmudflap.c/pass35-frag.c: Update expected message.

2004-09-07  Frank Ch. Eigler  <fche@redhat.com>

	* configure.ac: Look for pwd.h, grp.h, netdb.h headers and functions.
	* mf-hooks2.c (strerror): Unregister previous string returned by
	previous strerror.
	(getlogin,cuserid,getpwnam,getpwuid,getgrnam,getgrgid): New wrappers.
	(getservent,getservbyname,getservbyport,gai_strerror): Ditto.
	* mf-runtime.h.in: Add redefine_extname pragmas for them all.
	* mf-runtime.c (__mf_describe_object): Clarify object life status.
	* testsuite/libmudflap.c/pass48-frag.c, pass49-frag.c, fail32-frag.c:
	New tests.
	* configure, config.h.in: Regenerated.

2004-08-03  Dale Johannesen  <dalej@apple.com>

	 * mf-runtime.c: Conditionalize POSIX_SOURCE for Darwin.

2004-08-03  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (compare_uintptr_t): Remove function.  Inline
	simplified contents in all former callers.

2004-07-27  Ulrich Weigand  <weigand@informatik.uni-erlangen.de>

	* mf-runtime.c (__mf_fini): Set mudflap_mode to mode_nop in
	the statically linked case.

2004-07-27  Frank Ch. Eigler  <fche@redhat.com>

	* splay-tree.[ch]: Remove.  Merge contents into ...
	* mf-runtime.c: ... here, renaming symbols and making all functions
	static.  Remove unused min/max functions.
	* Makefile.am: Forget about splay-tree.[ch].
	* Makefile.in, testsuite/Makefile.in: Regenerated.

2004-07-21  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mfu_check): Remove mistaken mode-nop handling.
	(__mfu_usage): Include (C) 2004.
	* mf-hooks3.c (__mf_find_threadinfo): Don't call tracing functions
	here.  Include a comment explaining why.

2004-07-20  Frank Ch. Eigler  <fche@redhat.com>

	* mf-impl.h (__mf_options): Add ignore_reads and timestamps fields.
	* mf-runtime.c (options): Give them a name.
	(__mf_set_default_options): Set them.
	(__mf_insert_new_object, __mfu_unregister): Optionalize timestamps.
	(__mf_violation): Warning cleanup.
	* mf-impl.h (MF_VALIDATE_EXTENT): Support ignore_reads option.
	* splay-tree.c (splay_tree_delete_helper): Remove obsolete decl.

2004-07-15  Frank Ch. Eigler  <fche@redhat.com>

	g++/15861
	* mf-runtime.c (__mf_init): Make it non-static.  Tolerate
	repeated invocation.

2004-07-09  Frank Ch. Eigler  <fche@redhat.com>

	Test case for g++/15861
	* testsuite/libmudflap.c++/ctors-[12].cxx: New test case halves.
	* testsuite/libmudflap.c++/ctors.exp: Driver.
	* testsuite/libmudflap.c++/c++frags.exp: Elide redundant default.
	Look only for *frag* test cases.

2004-07-08  Frank Ch. Eigler  <fche@redhat.com>

	ANSI C conversion, libmudflap specialization, recursion limiting.
	* splay-tree.h (splay_tree_{de,}allocate_fn): Remove allocation_data
	argument and indirection function pointers, update callers.
	(splay_tree_s): Add statistics and recursion control fields
	num_keys, max_depth, depth, rebalance_p.
	* splay-tree.c (splay_tree_splay_helper): Track recursion depth.
	Back out of search if it exceeds limit.
	(splay_tree_splay): Manage recursion limiting with rebalancing as
	needed.
	(splay_tree_new): More initialization.
	(splay_tree_rebalance): New function.
	(splay_tree_foreach): Rewrite using nonrecursive logic.
	(splay_tree_xmalloc_allocate, splay_tree_xmalloc_deallocate):
	Remove.  Point indirect calls to mf-runtime.c's routines.
	(splay_tree_compare_ints, splay_tree_compare_pointers): Remove unused
	functions.
	(splay_tree_delete, splay_tree_delete_helper): Ditto.
	* testsuite/heap-scalestress.c: New test based on one from
	Eyal Lebedinsky <eyal@eyal.emu.id.au>:

2004-07-05  Matthias Klose  <doko@debian.org>

	* libtool-version: New.
	* Makefile.am (libmudflap_la_LDFLAGS, libmudflapth_la_LDFLAGS):
	Use -version-info for soname.
	* Makefile.in: Regenerate.
	* configure.ac: Remove libtool_VERSION macro
	* configure: Regenerate

2004-07-05  Zack Weinberg  <zack@codesourcery.com>

	* mf-runtime.h.in: Wrap declarations of struct __mf_cache,
	__mf_lookup_cache, __mf_lc_mask, or __mf_lc_shift in
	#ifndef _MUDFLAP.

2004-06-29  Frank Ch. Eigler  <fche@redhat.com>

	Splay tree implementation fork.
	* splay-tree.c, splay-tree.h: Copied & modified from libiberty.
	Use hard-coded comparison function for uintptr_t.  Remove key/value
	deallocation logic.  Cache last splayed key for consecutive lookups.
	* Makefile.am, Makefile.in: Use them, don't link to them.
	* mf-runtime.c (__mf_object_tree): Adapt to simpler splay_tree_new.
	(__mf_find_objects2): Flip successor/predecessor search sequence.
	* ansidecl.h, libiberty.h: Removed dummy files.

2004-06-29  Nick Clifton  <nickc@redhat.com>

	* configure.ac (AC_CHECK_HEADERS): Add dirent.h
	* configure: Regenerate.
	* mf-hooks2.c: Surround uses of dirent.h with #ifdef
	HAVE_DIRENT_H.
	Remove spurious inclusion of <strings.h>.

2004-06-29  Nick Clifton  <nickc@redhat.com>

	* mf-runtime.c (pthread_join): Only apply the weak pragma if the
	function actually exists.

2004-06-25  Frank Ch. Eigler  <fche@redhat.com>

	* ansidecl.h, libiberty.h: New dummy files for building splay-tree.
	* config.h.in: Regenerated.

2004-06-24  Frank Ch. Eigler  <fche@redhat.com>

	Adopt splay trees for object database.
	* Makefile.am: Copy splay-tree.* from libiberty.
	* Makefile.in, testsuite/Makefile.in: Regenerated.
	* mf-runtime.h.in (__mf_unregister): Add third parameter (type).
	* mf-hooks[123].c (*): Add new third parameter to mf_unregister.
	* mf-impl.h (BEGIN_PROTECT): Remove some trace text.
	* mf-runtime.c: Rewrite code dealing with object database to use
	libiberty splay trees.  Remove tree liveness aging option.
	* testsuite/libmudflap.c/fail18-frag.c: Add volatile flag.

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

	* configure.ac: New name of configure.in.  Update
	AC_INIT, AC_CONFIG_SRCDIR, AC_CONFIG_HEADERS, AC_CONFIG_FILES,
	AC_OUTPUT, AM_INIT_AUTOMAKE to the preferred style for
	Autoconf 2.5x and Automake 1.7 or later.
	* configure.in: Remove.
	* configure: Regenerate.

	* Makefile.am: Remove useless multilib rules.
	* Makefile.in: Regenerate.

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

	* .cvsignore: New file.

2004-06-10  Stephen Crowley  <stephen.crowley@sbcglobal.net>

	PR libmudflap/13505
	* mf-hooks2.c (semctl): Add cygwin porting hack.

2004-06-09  Frank Ch. Eigler  <fche@redhat.com>

	ctype support.
	* configure.in: Look for ctype header and glibc implementation.
	* mf-hooks2.c (__ctype_{b,toupper,tolower}_loc): Sample ctype
	array hooks for glibc 2.3.
	* mf-runtime.h.in: Wrap them.
	* mf-runtime.c (__mf_init): Leave marker regarding other ctype
	implementations.
	* testsuite/libmudflap.c/pass47-frag.c: New test.
	* configure, config.h.in: Regenerated.

2004-06-04  Frank Ch. Eigler  <fche@redhat.com>

	Portability improvements, e.g., libmudflap/15293.
	* configure.in: Look for glibc extension functions.  Look for
	support of -f{function,data}-sections.  Look for more headers.
	Create testsuite/mfconfig.exp.  Correct more "test x.." thinkos.
	* Makefile.am: Use $(SECTION_FLAGS).  Collapse piecemeal-compiled
	mf-hooks* into usual single object per source.
	* mf-hooks*.c: Remove all #if WRAP_foo conditionals.
	* mf-hooks2.c: #include a bunch more system headers.  Define strnlen
	if system doesn't provide one.
	* mf-hooks3.c (struct pthread_info): Add stack_*_alloc fields.
	(pthread_create): Use it to properly GC dead thread stacks.
	* mf-runtime.c (__mf_violation): Correct snprintf type warning.
	* testsuite/Makefile.am: Stop generating site.exp.
	* testsuite/mfconfig.exp.in: New file.
	* testsuite/config/default.exp: Load new mfconfig.exp.
	* testsuite/lib/libmudflap.exp (libmudflap-init): Add extra libraries.
	(prune_gcc_output): Add glibc static linking warnings.
	* testsuite/libmudflap.*/*frags.exp: Enumerate needed -lmudflap* libs.
	* testsuite/libmudflap.c/pass46-frag.c: Ditto.
	* configure, Makefile, aclocal.m4, config.h.in, testsuite/Makefile.in:
	Regenerated with autoconf 2.57 and automake 1.7.

2004-06-04  Per Bothner  <per@bothner.com>

	* configure.in (LIBMUDFLAPTH):  Fix thinko.

	* configure.in:  Check for more headers.
	* mf-hooks2.c:  Conditionalize on HAVE_SYS_SOCKET_H etc.

	* mf-runtime.c:  In two places conditionalize on SIUSR1 rather than
	HAVE_SIGNAL as mingw has signal.h but not SIUSR1.

2004-06-01  Andreas Jaeger  <aj@suse.de>

	* configure.in: Handle multilibs, support
	--enable-version-specific-runtime-libs.
	* Makefile.am (lib_LTLIBRARIES): Rename to ...
	(toolexeclib_LTLIBRARIES): this for multilib support.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* aclocal.m4: Regenerated.
	* config.h.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

2004-06-01  Andreas Jaeger  <aj@suse.de>

	* testsuite/lib/libmudflap.exp (libmudflap-init): Handle
	multilibs, using multilib directory instead of hardcoded path.
	Set LD_RUN_PATH.

2004-05-21  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (AM_MAKEFLAGS): Pass RUNTESTFLAGS.
	* Makefile.in: Ditto.

2004-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* acinclude.m4 (lt_cv_deplibs_check_method): Use pass_all on sh*.
	* aclocal.m4, configure: Rebuilt.

2004-05-17  Frank Ch. Eigler  <fche@redhat.com>

	* lib/libmudflap.exp (libmudflap-init): For C++ test cases only,
	import some build settings from libstdc++-v3 testsuite_flags.
	* .../cfrags.exp, .../c++frags.exp, .../cthfrags.exp: Corresponding
	changes to pass test language.

	* mf-runtime.c (__mfu_check): Poison the cache with antidote for
	quicker mode-nop handling.

2004-03-25  Frank Ch. Eigler  <fche@redhat.com>

	* mf-impl.h: Added libgcc license header.

2004-03-20  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks[123].c, mf-runtime.c, mf-heuristics.c:
	Added libgcc license header.
	* mf-hooks3.c (__mf_0fn_pthread_create): Correct arg constness.
	(pthread_create): Simplify stack allocation syntax.

2004-03-08  Loren J. Rittle  <ljrittle@acm.org>

	* mf-hooks2.c: Support FreeBSD.
	(WRAP_gets): Avoid gets().
	* testsuite/libmudflap.c/pass-stratcliff.c: Do not
	test unimplemented mem/str calls on FreeBSD.
	* testsuite/libmudflap.c/pass21-frag.c: Do not include
	<alloca.h> on FreeBSD.

2004-01-30  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass36-frag.c: Add missing free() call.
	* testsuite/libmudflap.c/pass46-frag.c: New test for -fmudflapir.
	* testsuite/libmudflap.cth/cthfrags.exp: Add -DSTATIC to compiler
	flags for static linking permutation.
	* testsuite/libmudflap.cth/pass40-frag.c: When -DSTATIC, avoid
	some pthreads code that croaks on linux glibc tls.

2004-01-27  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/fail31-frag.c, pass45-frag.c: New tests.

2004-01-15  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass44-frag.c: New test.

2004-01-12  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/fail{28,29,30}-frag.c: New tests.

2004-01-08  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass43-frag.c: Added missing program rc.

2003-12-11  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass42-frag.c, pass43-frag.c: New tests.

2003-12-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR libmudflap/12670
	* configure.in: Add check for see if
	socklen_t typedef is in sys/socket.h.
	* mf-hooks1.c: Add define if socklen_t
	is not typedef.
	* mf-hooks2.c: Likewise.
	* mf-hooks3.c: Likewise.
	* config.h.in: Regen.
	* configure: Regen.

2003-12-08  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mf_watch_or_not): Tweak tracing message.
	* testsuite/libmudflap.c/fail21-frag.c: Defeat aliasing
	optimizations.
	* testsuite/libmudflap.c/pass25-frag.c: Ditto.
	* testsuite/libmudflap.c/pass26-frag.c: Tolerate non-overlapping
	(unoptimized) allocation of stack space.

2003-12-07  Richard Henderson  <rth@redhat.com>

	* testsuite/libmudflap.c/fail23-frag.c (main): Adjust addend to 11.
	* testsuite/libmudflap.c/fail27-frag.c (foo): Mark noinline.

2003-12-06  Andrew Pinski <apinski@apple.com>

	partial PR libmudflap/12670
	* mf-hooks1.c: Respect Darwin checks.  Conditionalize POSIX_SOURCE.
	* mf-hooks2.c: Likewise.
	* mf-hooks3.c: Likewise.

2003-11-19  Frank Ch. Eigler  <fche@redhat.com>

	libstdc++/11696
	* mf-runtime.h.in: Switch to #pragma redefine_extname for
	symbols interposed at compile time.
	* testsuite/libmudflap.c++/pass41-frag.cxx: New test.

	libmudflap/12939
	* mf-hooks2.c (semctl): Tolerate FreeBSD.

	* configure.in: Reorganize check for <pthread.h>.
	* configure: Regenerated.

2003-11-04  David Edelsohn  <edelsohn@gnu.org>

	* mf-runtime.c (_ALL_SOURCE): Define for AIX.
	(_LARGE_FILE_API): Define for AIX.
	* mf-hooks[123]: Same.
	(_XOPEN_SOURCE_EXTENDED): Define to 1 for AIX.

2003-10-21  David Edelsohn  <edelsohn@gnu.org>

	* mf-runtime.c (_XOPEN_SOURCE_EXTENDED): Define to 1 for AIX.

2003-07-29  Frank Ch. Eigler  <fche@redhat.com>

	2003-07-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* configure.in: Update check for union semun.

2003-07-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	PR other/11673
	* mf-hooks2.c [WRAP_semctl]: Fix check for HAVE_UNION_SEMUN.

2003-07-29  Frank Ch. Eigler  <fche@redhat.com>

	PR other/11673
	* configure.in: Add checks for 64-bit LFS functions, struct semun
	definition, for BSD compatibility.
	* mf-hooks1.c: Respect BSD checks.  Conditionalize POSIX_SOURCE.
	* mf-hooks2.c: Ditto.  Include <strings.h> for bcmp* decls.
	* mf-hooks3.c: Ditto.
	(pthread_create): Try MAP_ANON on platforms without the MAP_ANONYMOUS
	mmap flag.
	* configure, config.h.in: Regenerated.

2003-07-23  Frank Ch. Eigler  <fche@redhat.com>

	Multithreading fixes:
	* mf-runtime.c (__mf_object): Store allocating/deallocating
	thread id.
	(options): Support new "-thread-stack" option.
	Rename "-heur-argv-environ" option to "-heur-stdlib".
	Disable "-lc-mask" and "-lc-shift" options.
	(__mf_dynamic): Add function pointers for pthread_join/_exit.
	(__assert_fail): New self-contained function for glibc.
	* mf-hooks3.c: Essentially rewritten, particularly related to
	use of __mf_pthread_info array.
	(pthread_join, _exit): New hook functions.
	* mf-impl.h (BEGIN_PROTECT): Handle starting_p case.
	* testsuite/libmudflap.cth/pass40-frag.c: New test.

	Warning cleanups:
	* mf-heuristics.c: Add type casts for tracing, sub calls.
	* mf-impl.h (BEGIN_PROTECT): Redefine to omit result type.
	Update all callers to declare explicit result holder.
	(END_PROTECT): Removed.
	* testsuite/*/*frags.exp: Clean up default MUDFLAP_OPTIONS.

2003-07-15  Diego Novillo  <dnovillo@redhat.com>

	* testsuite/libmudflap.c/fail21-frag.c: Add volatile modifiers.
	* testsuite/libmudflap.c/fail15-frag.c: Likewise.
	* testsuite/libmudflap.c/fail13-frag.c: Likewise.

2003-07-04  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks1.c, 2.c, 3.c: New file, splits up content from old ...
	* mf-hooks: Removed.
	* mf-impl.h (MF_VALIDATE_EXTENT, BEGIN_PROTECT, END_PROTECT):
	Move these macros from old mf-hooks.c here.
	* Makefile.am: Adapt to split-up hook sources for faster builds.
	* Makefile.in: Regenerated.

	* mf-heuristics.c: Remove #if-0 block.

	* mf-impl.h (__mf_state): Reorganize declaration and implementation.
	(__mf_starting_p): New state only for use while dlsym bootstrapping.
	(CALL_REAL, __mf_init): Corresponding changes.
	(TRACE, VERBOSE_TRACE): Include thread id and "mf:" prefix.  Update
	all callers to remove redundant "mf:" prefix.
	* mf-runtime.h.in: #define a few reentrancy macros for libmudflapth.
	* mf-hooks3.c: Rewrite chunks to support per-thread __mf_state value.
	(__mf_pthread_info): Become a hash table.

	* testsuite/lib/mfdg.exp: Support new "dg-timeout" and
	"dg-repetitions" directives to control test case execution.
	* testsuite/libmudflap.cth/pass37-frag.c: Add timeout and repeat
	options.
	* testsuite/libmudflap.cth/pass39-frag.c: Ditto for this new test.

2003-06-25  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (alloca): Separate into stub.
	(__mf_wrap_alloca_indirect): New function.  Use CALL_REAL
	malloc/free for alloca blocks.
	(pthread_create): Tolerate failing pthread_attr_get* calls.
	* mf-runtime.c (__mf_fini): Call __mf_wrap_alloca_indirect.
	* mf-impl.h (CALL_WRAP): Remove macro.
	* testsuite/libmudflap.c/pass21-frag.c: Include <alloca.h>.
	* testsuite/libmudflap.c/pass23-frag.c: Include more struct
	padding for ia64 BIT_FIELD_REF constructs.

2003-06-19  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (struct pthread_info): Add "thread_errno" field.
	(__mf_pthread_spawner, __mf_pthread_cleanup): Use it with GUESS
	libmudflap object type.
	* mf-runtime.c (__mfu_unregister): Correct cemetary logic to avoid
	crashes on unregistering STATIC objects.

2003-06-17  Frank Ch. Eigler  <fche@redhat.com>

	Based on patch from Eyal Lebedinsky <eyal@eyal.emu.id.au>:
	* mf-hooks.c (__mf_pthread_spawner): Register thread errno.
	(time, strerror, fopen, fopen64, fclose, fread): New hooks.
	(fwrite, fgetc, fgets, getc, gets, ungetc, fputc): New hooks.
	(fputs, putc, puts, clearerr, feof, ferror, fileno): New hooks.
	(printf, fprintf, sprintf, snprintf, vprintf, vfprintf): New hooks.
	(vsprintf, vsnprintf, access, remove, fflush, fseek): New hooks.
	(fseeko64, ftell, ftello64, rewind, fgetpos, fsetpos): New hooks.
	(stat, stat64, fstat, lstat, mkfifo, setvbuf, setbuf): New hooks.
	(setvbuf, opendir, closedir, readdir, recv, recvfrom): New hooks.
	(recvmsg, send, sendto, sendmsg, setsockopt, getsockopt): New hooks.
	(accept, bind, connect, gethostname, sethostname): New hooks.
	(gethostbyname, wait, waitpid, popen, pclose, execve): New hooks.
	(execv, execvp, system, dlopen, dlclose, dlerror, dlsym): New hooks.
	(semop, semctl, shmctl, shmat, shmdt): New hooks.
	* mf-runtime.h.in: Corresponding changes.
	* mf-runtime.c (__mf_ini): Register stdio objects.  Use STATIC type.
	(opts) Rename heur_argv_environ	to heur_std_data.
	(__mf_wrap_main): Use STATIC type for argv/environ strings.
	* Makefile.am: Corresponding changes.
	* Makefile.in: Regenerated.

2003-06-11  Frank Ch. Eigler  <fche@redhat.com>

	* mf-heuristics.c (__mf_heuristic_check): Disable stack_bounds
	heuristic for threaded case, and for non-x86-linux targets.
	* mf-hooks.c (__mf_0fn_calloc): Provide a working dummy implementation
	for use during pre-main() program startup.
	(__mf_0fn_*): Make these functions non-static.
	* mf-impl.h (DECLARE, CALL_REAL): Support calls to 0fn backup hook
	functions.
	* mf-runtime.c (__mf_state): Set initial state to "starting".
	(__mf_resolve_single_dynamic): Tolerate repeated calls for same symbol.
	(__wrap_main): New function to register argv[] and environ[] strings.
	(__mf_ini): Call it.
	(*): In all trace functions, use "%p" as formatter for uintptr_t.

	* testsuite/libmudflap.c/pass38-frag.c: New test case.
	* testsuite/libmudflap.cth/pass37-frag.c: Improved test.

	* acinclude.m4: Add comments with aoliva's concerns about x86_64
	pass_all.
	* aclocal.m4, configure: Regenerated.

2003-06-04  Frank Ch. Eigler  <fche@redhat.com>

	* acinclude.m4: Correct typo in AC_MSG_CHECKING.
	* aclocal.m4, configure: Regenerated.

2003-06-03  Frank Ch. Eigler  <fche@redhat.com>

	* acinclude.m4: Force "pass_all" deplibs_check_method for libtool
	for x86_64 target.  Disable caching for this value.
	* aclocal.m4, configure: Regenerated.

2003-06-02  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass38-frag.c: Deleted.  -fwritable-strings
	is about to become deprecated, and its present handling bugs are
	unworthy of fixing.

2003-05-30  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/pass38-frag.c: New test for
	-fwritable-strings.

2003-05-23  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mf_sigusr1_handle): Call unlocked variant of
	__mf_report, asserting reentrant calling context.

2003-05-23  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (realloc): Correct reentrancy logic.
	* testsuite/libmudflap.c/hook-allocstuff.c: New test case.

2003-05-20  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (LIBMUDFLAPTH_THREADS_MAX): New macro, replaces
	PTHREAD_THREADS_MAX.  Update users.
	* mf-runtime.c (__mf_usage): Print [active] instead of [default]
	for active options.
	* testsuite/Makefile.am (all-local): Prime dejagnu site.exp file
	with libmudflapth presence indicator.
	* testsuite/Makefile.in: Regenerated.

2003-05-16  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (AM_CFLAGS): Remove "-ansi".
	* configure.in: Remove silly no-pthreads => no-shared logic.
	* Makefile.in, configure: Regenerated.
	* mf-heuristics.c (__mf_heuristic_check): Remove reentrancy hacks.
	* mf-hooks.c (BEGIN_PROTECT, END_PROTECT): Reorganize reentrancy
	code.  Count reentrancy events.
	(all hook functions): Don't directly manipulate __mf_state variable.
	Add TRACE calls to hook functions without them.
	* mf-impl.h (LOCKTH): Try to count lock contention events.
	(VERBOSE_TRACE, TRACE): Remove reentrancy hacks.
	* mf-runtime.c (BEGIN_RECURSION_PROTECT, END_RECURSION_PROTECT):
	Reorganize reentrancy code.
	(external __mf_ entry points): Use RECURSION_PROTECT mechanism to
	identify reentrancy with mutex holding times.
	(internal __mfu_ entry points): Remove internal reentrancy code.
	(__mf_init): Use ordinary locked calls.
	(__mfu_report): Print the two new counts.
	* testsuite/lib/libmudflap.exp:	Filter out junk ld/pthreads messages.
	* testsuite/libmudfap.cth/cthfrags.exp: New test driver.
	* testsuite/libmudflap.cth/pass37-frag.c: New pthreads test.
	* testsuite/libmudfap.cth/cfrags.exp: Adapt to new libmudflap
	option defaults.

2003-05-09  Frank Ch. Eigler  <fche@redhat.com>

	* configure.in: Add pthread support, plus glibc and porting hacks.
	* Makefile.am (LIBMUDFLAPTH): New conditional, to build -lmudflapth
	from objects built into ./pth/.
	* mf-runtime.c (__mfu_watch,register,...): Fork new unlocked
	functions for internal entry points.  Update callers to pick
	locked vs. unlocked variants.
	(__mf_resolve_single_dynamic): Extend to support symbol versioning
	info coming in from a static data structure.
	(*): Reorder miscellaneous declarations to group data vs functions.
	(__mf_set_default_options): Simplify.
	(__mf_usage): Mention threading status of host executable.
	* mf-impl.h: Move max/min decls here.  Reorganize __mf_dynamic
	decls to match above.
	(LOCKTH, UNLOCKTH): New macros for Big Libmudflap Lock management.
	* mf-heuristics.c: Choose between locked/unlocked calls.  Add
	some lock/unlock markers.  Remove some unused code.
	* mf-hooks: Ditto.
	(pthread_create): New hook function.
	(__mf_pthread_cleanup, _spawner): New helper functions.
	* configure. aclocal.m4, config.h.in, Makefile.in: Regenerated.

2003-05-02  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/fail27-frag.c: Add more volatile flags.

2002-04-28  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (HOOKOBJS): Add *time related hooks.
	* configure.in: Look for pthreads.h header.
	* mf-hooks.c (asctime, ctime, gmtime, localtime): New wrappers.
	* mf-runtime.c: Begin sketching some pthreads support.
	(__mf_usage): Check for -lpthread presence.
	(__mf_unregister): Confirm matching unregistration base.
	(__mf_find_objects_rec): Reduce unnecessary recursion.
	* mf-runtime.h.in: Add "nothrow" attribute to functions.  Add
	#defines for new hook functions.
	* mf-impl.h: Corresponding changes.
	* config.h.in, configure, Makefile.in: Regenerated.

2002-04-27  Diego Novillo  <dnovillo@redhat.com>

	* testsuite/libmudflap.c/fail1-frag.c: Add volatile
	modifiers to prevent being optimized away.
	* testsuite/libmudflap.c/fail10-frag.c: Likewise.
	* testsuite/libmudflap.c/fail13-frag.c: Likewise.
	* testsuite/libmudflap.c/fail14-frag.c: Likewise.
	* testsuite/libmudflap.c/fail15-frag.c: Likewise.
	* testsuite/libmudflap.c/fail2-frag.c: Likewise.
	* testsuite/libmudflap.c/fail20-frag.c: Likewise.
	* testsuite/libmudflap.c/fail3-frag.c: Likewise.

2003-04-15  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (libmudflap_la_LIBADD): Remove -ldl.
	* configure.in: Look for uintptr_t and -ldl on target.
	* mf-runtime.h.in: Adjust uintptr_t declaration logic.
	* Makefile.in, aclocal.m4, configure, config.h.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.
	* mf-runtime.c (__mf_sigusr1_respond): Tweak declaration and calls
	for better C compliance.

2003-04-15  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (MF_VALIDATE_EXTENT): Remove unnecessary reentrancy
	prevention code.
	* mf-runtime.c (__mf_set_default_options): Turn off
	check-initialization.
	(__mf_describe_object): Shorten description.
	* testsuite/libmudflap.c/fail25-frag.c: Turn on check-initialization.

2003-04-07  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (__mf_0fn_mmap): Correct return value, as per <rth>.

2003-04-02  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (BEGIN_PROTECT): Handle startup-time reentrant
	calls specially.
	(__mf_0fn_malloc ... _munmap): New dummy backup calls.
	* mf-impl.h (CALL_BACKUP): New macros.
	* mf-runtime.c (__mf_init): Tweak __mf_state during startup.

2003-03-31  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (AM_CFLAGS): Remove optimization flags.
	(HOOKOBJS): Remove dlopen hook.
	(libmudflap_la_LIBADD): Add -ldl.
	* mf-hooks.c (dlopen): Remove hook.
	* mf-impl.h (__mf_dynamic): Ditto.
	* mf-runtime.c (__mf_resolve_dynamics): Ditto.
	* Makefile.in: Regenerated.

2003-03-28  Frank Ch. Eigler  <fche@redhat.com>

	* configure.in: Check for target gettimeofday, signal, some headers.
	* mf-impl.h (__mf_opts): Add new "sigusr1_report" field.  Comment
	out inop multi_threaded field.
	* mf-runtime.c (options): Handle new "-sigusr1-report" option.
	(__mf_set_options): Correct handling of "-help".
	(__mf_sigusr1_respond): New function to manage SIGUSR1 response.
	(__mf_check, __mf_register, __mf_unregister): Call it.
	(__mf_insert_new_object, __mf_unregister): Respect HAVE_GETTIMEOFDAY.
	(__mf_report_leaks): Make callable
	(__mf_tree_analyze): Traverse in-order.  Accumulate address bit
	distribution statistics.
	(__mf_adapt_cache): Rewrite shift guessing logic based on address
	bit distributions.
	* config.h.in, configure: Regenerated.
	* testsuite/libmudflap.c/fail27-frag.c: New test.
	* testsuite/libmudflap.c/pass36-frag.c: New test.

2003-03-11  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.h.in: Tweak.
	* Makefile.am, configure.in: Tweak mf-runtime.h generation some more.
	Don't use intermediate files nor AC_OUTPUT-time postprocessing.
	* Makefile.in, testsuite/Makefile.in, configure: Regenerated.

2003-03-10  Frank Ch. Eigler  <fche@redhat.com>

	* configure.in: Tweak generation of mf-runtime.h some more.  It
	needs to work from both config.status and configure.
	* configure: Regenerated.

2003-03-10  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am: Reorganize hook file building.  Add auto dependencies.
	* configure.in: Tweak generation of mf-runtime.h.
	* mf-runtime.h.in: Add new __MF_TYPE_HEAP_I.
	* mf-hooks.c (*): Adapt to initialized-heap object type.
	* mf-impl.h: Tweak cemetary boundaries.
	* mf-runtime.c (__mf_check): Adapt to new initialized-heap object
	type.
	(__mf_insert_new_object, __mf_register, __mf_unregister): Ditto.
	(__mf_describe_object, __mf_report_leaks, __mf_violation): Ditto.
	* testsuite/lib/libmudflap.exp (includes): Include build tree.
	* testsuite/libmudflap.c/pass{26,5}: Further adapt to initialization
	checking.
	* testsuite/.../fail{25,26}-frag.c: New tests.
	* testsuite/.../pass{32,33,34,35}-frag.c: New tests.
	* Makefile.in, configure: Regenerated.

2003-03-05  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mf_set_default_options): Turn on initialization
	checking by default.
	(__mf_insert_new_object): As a temporary hack, assume that new
	objects registered on the stack start out initialized.
	* testsuite/libmudflap.c/fail9,pass23,pass[6789]-*: Initialize
	heap objects by hand.

2003-03-05  Frank Ch. Eigler  <fche@redhat.com>

	Switch to macro-style hooks for str*/mem*/b* functions.
	* mf-runtime.h.in (__MF_TYPE_*): Moved some internal values out.
	(mem*, str*, b*): Added macro-style hooks for _MUDFLAP case.
	* mf-runtime.c: #include config.h to enable glibc backtraces again.
	(__mf_set_default_options): Turn off heur_proc_map.
	(*): Adapt to to macro-style hook functions.
	(__mf_object_dead_head, __mf_object_cemetary): Correct bounds.
	(__mf_check, __mf_register, __mf_unregister): Tweak tracing message.
	(__mf_violation): Handle __MF_VIOL_WATCH.
	* mf-impl.h (__MF_TYPE_*): Moved these internal values here.
	(__mf_dynamic): Removed mem*/str*/b* functions.
	(TRACE, VERBOSE_TRACE): Add reentrancy locking.
	(WRAPPER2): New macro for macro-style hooks.
	* mf-hooks.c: Convert mem*/str*/b* functions to simpler
	macro-style hooks.
	(BEGIN_PROTECT): Tweak tracing vs reentrancy-lock ordering.
	* mf-heuristics.c: Adapt to macro-style hook functions.
	Correct some comments.
	* testsuite/lib/mfdg.exp (dg-test): Simplify result string for
	output pattern tests.
	* testsuite/libmudflap.c/fail[89]-frag.c: Elaborate output test.
	* testsuite/libmudflap.c++/c++frags.exp: Enable non-static tests.

2003-02-28  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/libmudflap.c/fail23-frag.c, pass30-frag.c: New tests
	for global array registration.
	* testsuite/libmudflap.c++/fail24-frag.cxx, pass31-frag.cxx: Ditto.
	* testsuite/libmudflap.c++/c++frags.exp: Tweak -static multilib hack.

2003-02-27  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am: Add gross make bug workarounds.  Tweaked
	SUBDIRS and AM_CFLAGS.
	* Makefile.in: Regenerated.

2003-02-26  Frank Ch. Eigler  <fche@redhat.com>

	Switch to dejagnu.
	* configure.in (AC_PROG_CXX): Don't look for C++ any more.
	* Makefile.am (TESTS): Remove simple automake testing.
	* configure, Makefile.in: Regenerated.
	(SUBDIRS): Include new testsuite/ directory.
	* tests/*: Removed all files; moved bulk under:
	* testsuite/*: New subdirectory tree.
	* testsuite/libmudflap.c/cfrags.exp: New file, C test driver.
	* testsuite/libmudflap.c++/c++frags.exp: New file, C++ test driver.
	* testsuite/lib/libmudflap.exp: New file, derived from libstdc++.
	* testsuite/lib/mfdg.exp: New file, derived from dejagnu.
	* testsuite/config/default.exp: New file.
	* testsuite/Makefile.am, Makefile.in: New files.

2003-01-29  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (TESTS_ENVIRONMENT): Remove redundant "-mode-check".
	(TESTS): Add fail22 and pass29 tests.
	* mf-runtime.h.in: Change API to take void*/size_t region parameters.
	Add new access-type parameter for __mf_check.  Move __MF_VIOL* out.
	* mf-impl.h: Corresponding changes.  Update CLAMP* macros for void*
	values.  Move __MF_VIOL* here.
	* mf-runtime.c (*): Adapt to void*/size_t API in mf-runtime.h.
	(check_initialization): New field in __mf_opts.  Default off.
	(read_count,write_count): New fields in __mf_object.
	(__mf_check): Implement basic initialization checking.
	(__mf_insert_new_object): Assume STATIC|GUESS regions are initialized.
	(__mf_describe_object): Print new fields.
	(__mf_violation): Identify check/read vs. check/write in messages.
	* test/pass29-frag.c, test/fail22-frag.c: Basic tests for new
	"-check-initialized" mudflap option.
	* test/pass25-frag.c, test/fail21-frag.c: Adapt to API changes.
	* mf-hooks.c (MF_VALIDATE_EXTENT): Add new access-type parameter.
	Drop __FILE__/__LINE__ hack.  Update callers.
	(*): Adapt to new mf-runtime.h API.
	* Makefile.in: regenerated.

2003-01-24  Frank Ch. Eigler  <fche@redhat.com>

	* configure.in: Build mf-runtime.h a more proper way.
	* mf-hooks.c (strdup, strndup): Correct reentrancy logic.
	* mf-runtime.c (verbose_violations): Turn on by default.
	* mf-runtime.h.in: Remove some miscellaneous stuff ...
	* mf-impl.h: ... and move it here.
	* configure: Regenerated.

2003-01-22  Frank Ch. Eigler  <fche@redhat.com>

	* configure.in: Look for C++ compiler.
	* test/*-frag.c, mf-driver.c: Reformatted with GNU indent and
	fixed type warnings when built with C++.
	* test/pass27-frag.cxx, pass28-frag.cxx: New C++ tests.
	* Makefile.am (TESTS): Run them.
	(*) Add new rules for building and running C++ tests.
	(TESTFLAGS): Set new default to avoid libstdc++-v3 shlib issues.
	* mf-runtime.h.in: Protect with extern "C".
	* Makefile, configure: Regenerated.

2003-01-06  Frank Ch. Eigler  <fche@redhat.com>

	Portability improvements.
	* configure.in: Look for glibc backtrace headers/functions.
	* mf-hooks.c: Don't include <execinfo.h> any more.
	* mf-runtime.c (__mf_set_options): Call more stdlib functions
	via CALL_REAL.
	(__mf_backtrace): Provide alternate baby implementation in
	absence of glibc.
	* test/mf-driver.c: Portability tweaks.
	* acinclude.m4: New file, containing top level libtool.m4.
	* aclocal.m4, configure, Makefile.in, config.h.in: Regenerated.

2002-12-19  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.h.in (HAVE_UINTPTR_T): Define unconditionally.

2002-11-08  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (options): Add new "wipe-heap", "wipe-stack"
	options.
	(__mf_unregister): Implement stack/heap object wiping.
	(__mf_set_options): Renamed from __mf_process_opts.
	(__mf_uncache_object): Change arg type, correct callers.
	* mf-impl.h: Corresponding changes.
	* mf-hooks.c (realloc): Save/restore heap-wiping flag.
	* mf-runtime.h.in (__mf_set_options): Extend public API.
	* test/pass26-frag.c: New test for stack wiping.
	* Makefile.am (TESTS): Run it.
	* Makefile.in: Regenerated.

2002-11-07  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.h.in (__mf_watch, __mf_unwatch): Extend public API.
	* mf-runtime.c (__mf_object_t): Add watching_p field.
	(__mf_watch_or_not): New function to implement
	object watch flagging.
	(__mf_watch, __mf_unwatch): New wrappers for above.
	(__mf_check, __mf_describe_object): Handle objects with watching_p.
	(__mf_count_violation): Enlarge array.
	(__mf_uncache_object): Renamed from __mf_remove_old_object.  Don't
	unlink object.  Clear cache properly.
	(__mf_unregister): Unlink object explicitly before uncaching.
	* test/fail21-frag.c, pass25-frag.c: New tests.
	* Makefile.in, aclocal.m4: Regenerated.

2002-11-05  Frank Ch. Eigler  <fche@redhat.com>

	* test/fail20-frag.c: New test for NULL pointer dereferencing.
	* Makefile.am (TESTS): Add it.
	* test/pass-stratcliff.c: Add decls of stpcpy.
	* configure.in: Test for <stdint.h>.  Generate mf-runtime.h in
	build tree from config.h and new file mf-runtime.h.in.
	* mf-runtime.h.in: Renamed from mf-runtime.h.  Tweak uintptr_t decl.
	* Makefile.in, configure, config.h.in: Regenerated.
	* mf-hooks.c: Add #undef for wrapped glibc str*/mem* macros.
	* mf-runtime.c (options, __mf_set_default_options): Support new
	default "abbreviate" option.
	(__mf_object.description_epoch): New field.
	(__mf_describe_object): Conditionally abbreviate objects already
	displayed in current epoch.  Accept NULL input to increment epoch.
	(__mf_fini, __mf_ini): Reset description epoch.
	(__mf_register, __mf_unregister, __mf_adapt_cache, __mf_init): Ensure
	that NULL pointer slot in lookup cache is invalidated.  Register a
	NOACCESS region around NULL.
	* mf-impl.h: Corresponding changes.

2002-10-16  Frank Ch. Eigler  <fche@redhat.com>

	* test/fail19-frag.c, pass24-frag.c, pass-stratcliff.c: New tests.
	* Makefile.am: Run them.  Install mf-runtime.h.
	* Makefile.in: Regenerated.
	* mf-hooks.c: Add some markers for more missing functions.
	* mf-runtime.c (__mf_adapt_cache): Experiment with a utilization-based
	statistic to tune tune cache size (mask).

2002-10-01  Frank Ch. Eigler  <fche@redhat.com>

	* test/pass23-frag.c: New test for bit_field_ref expressions.
	* Makefile.am, Makefile.in: Add new test.
	* mf-hooks.c (mmap, munmap): Rewrite to track individual pages.
	(MF_VALIDATE_EXTENT): Accept zero-size mem/str operations.
	* mf-runtime.c (__mf_init): Register errno global.
	(__mf_find_object): Removed function.
	(__mf_check): Rewrite logic to support accesses across some
	contiguous but distinctly registered objects.
	(__mf_remove_old_object): Tolerate cache entries that span
	contiguous objects.

2002-09-30  Frank Ch. Eigler  <fche@redhat.com>

	* test/pass21-frag.c, pass22-frag.c: New tests: alloca, bitfields.
	* Makefile.am, Makefile.in: Run new tests.
	* mf-hooks.c (alloca): Correct stack direction logic.

2002-09-26  Frank Ch. Eigler  <fche@redhat.com>

	* mf-impl.h (adapt_cache): New option.
	* mf-runtime.c (__mf_set_default_options): Set its default value.
	Tweak the tree_aging parameter down.
	(__mf_check): Maintain separate counter for cache-adaptation.
	(__mf_tree_analyze): New function to collect object tree stats.
	(__mf_adapt_cache): New function to automate cache parameters.

2002-09-24  Frank Ch. Eigler  <fche@redhat.com>

	* mf-heuristics.c (__init_misc, __mf_heuristic_check): Add
	hypothetical #if-0'd argv/envp region registration.
	* mf-runtime.c (__mf_init): Add kludged form of above.
	(*) Add "heur_argv_environ" flag, default on, to govern this.
	* mf-impl.h: Corresponding changes.

2002-09-20  Frank Ch. Eigler  <fche@redhat.com>

	* test/fail18-frag.c: New test file for NOACCESS regions.
	* Makefile.am (TESTS): Add new test.
	* Makefile.in: Regenerated.

	* mf-heuristics.c (__mf_heuristics_check): Correct deja_vu logic.
	* mf-impl.h (tree_aging): Add new mudflap_option, default 1000000.
	(optimize_object_tree): Remove unused mudflap_option.
	* mf-runtime.h (__MF_TYPE_NOACCESS): New region type.  Add printing
	support throughout.  Use .._MAX_CEM for cemetary upper bound.
	* mf-runtime.c (__mf_init): Register __mf_* globals as NOACCESS
	regions.
	(__mf_object): Add new liveness field for use by tree aging.
	(__mf_check): Trigger tree aging when needed.
	(__mf_age_tree): New function to decay liveness field.
	(__mf_find_objects_rec): Use liveness field to rotate tree.
	(__mf_insert_new_object): Only provide backtrace for HEAP objects.
	(__mf_unregister): Ditto.
	(__mf_register): Tweak duplicate-static message.
	(__mf_violation: Tweak nearby-object counter printing.

2002-09-16  Frank Ch. Eigler  <fche@redhat.com>

	* test/pass20-frag.c: New test file.
	* Makefile.am (TESTS): Reorganize.  Add pass20 test.
	* Makefile.in: Regenerated.

	* mf-impl.h (TRACE_IN, TRACE_OUT): Remove macros.  Update callers.
	* mf-hooks.c (BEGIN_PROTECT): Add hook tracing here.
	* mf-heuristic.c (__mf_heuristic_check): Track seen /proc/self/map
	entries to avoid repeat registration.
	* mf-runtime.c (__mf_object_cemetary): Don't bother bury GUESS regions.
	(__mf_register, __mf_unregister): Rewrite GUESS handling logic.

2002-09-09  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am: Create test sources with #include, not cat>>.
	* Makefile.in: Regenerated.
	* test/buildtest.sh: Removed.
	* test/driver.c (abort_handler, main): Be quiet.

2002-09-06  Frank Ch. Eigler  <fche@redhat.com>

	* test/pass18-frag.c, pass19-frag.c: New tests.
	* Makefile.am (check): Run them.  Rebuild test programs each time.
	* Makefile.in: Regenerated.

2002-09-06  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mf_register): Correct SEGV-inducing error in
	overlapping object search.
	(__mf_violation): Likewise for nearby objects.
	Improve nearby-object listing.

	cleanup:
	* mf-runtime.c, mf-hooks.c: Remove "{{{"/"}}}" folding marks.
	* mf-heuristics.c (__mf_heuristic_check): Tweak message.

2002-09-03  Frank Ch. Eigler  <fche@redhat.com>

	alloca support:
	* Makefile.am (AM_CFLAGS): New definition of needed settings.
	(HOOKOBJS): Add alloca-hook.o.
	* mf-hooks.c (alloca): New function to implement alloca in libiberty
	style.
	* mf-runtime.c (__mf_report): Call alloca(0) to flush remaining blocks.
	(__mf_backtrace): Reimplement without using alloca.
	* Makefile.in: Regenerated.

	cleanup:
	* mf-hooks.c: Use VERBOSE_TRACE throughout instead of fprintf(stderr).
	Correct signedness bugs in length-tracking variables.
	* mf-impl.h: Make options unsigned.
	(CALL_WRAP): New macro to parallel CALL_REAL().
	(DECLARE): Remove erroneous ";" at end.
	* mf-runtime.c, mf-hooks.c, mf-heuristics.c: Replace remaining %p
	formatting specs with %08lx.  Correct several compiler warnings.

2002-08-28  Frank Ch. Eigler  <fche@redhat.com>

	* mf-runtime.c (__mf_violation): Try harder to locate nearby objects.

2002-08-27  Frank Ch. Eigler  <fche@redhat.com>

	libmudflap hook breakup:
	* Makefile.am (TESTS_ENVIRONMENT): Add ../../gcc to LD_LIBRARY_PATH
	for libgcc_s.
	(TESTS): Make dependent on libmudflap.
	(HOOKOBJS): Break up mf-hooks.o into many little hook objects,
	compiled from segments of mf-hooks.c.
	* mf-hooks.c: Corresponding changes: wrap each function in
	#ifdef/#endif.
	* Makefile.in: Regenerated.

	Heuristics reorganization:
	* mf-heuristics.c (__mf_register_ro_sections, __mf_init_heuristics):
	Remove these functions.  Update callers.
	(__mf_heuristic_check): Incorporate all the various heuristics.
	Encode cacheability/retry judgement into trinary return value.
	Separate start-end logic into a separate fallback heuristic.  Only
	register relevant /proc/self/map segments.
	* mf-impl.h: Corresponding changes.
	* mf-runtime.c (__mf_check): Reorganize heuristics fallback logic.
	(__mf_init): Don't call __mf_init_heuristics.

	Tracing cleanup:
	* mf-heuristics.c, mf-runtime.c: Use new MUDFLAP_OPTION
	"-verbose-trace" to emit all tracing messages other than those of
	basic public api.  Eliminate some duplicate/excessive messages.
	* mf-runtime.h: Corresponding changes.

2002-08-27  Graydon Hoare  <graydon@redhat.com>

	* mf-impl.h (WRAPPER): Change to create linker aliases for __wrap
	and __real when compiled with -DPIC.
	* mf-hooks.c (WRAPPER): Change all uses of WRAPPER macro slightly.
	* Makefile.am (AUTOMAKE_OPTIONS): Fix LD_LIBRARY_PATH for tests.
	* Makefile.in: Regenerate.

2002-08-26  Graydon Hoare  <graydon@redhat.com>

	* mf-impl.h: New file, private implementation header.
	* mf-runtime.h: Reorganize a bit.
	(CLAMPSZ): Fix arithmetic.
	(__MF_CACHE_MISS_P): Fix arithmetic.
	* mf-runtime.c: Reorganize a bit.
	(__mf_dynamic): New structure.
	(resolve_single_dynamic): New function.
	(__mf_resolve_dynamics): New function.
	(__mf_init): Initialize dynamic wrappers.
	* mf-hooks.c: Macro-ize __real calls.
	Clamp various bits of arithmetic.
	Add explicit __mf_check call contexts.
	* Makefile.am: Add dependencies on mf-impl.h
	* Makefile.in: Regenerate.
	* configure.in: Comment out shared override.
	* configure: Regenerate.

2002-08-22  Graydon Hoare  <graydon@redhat.com>

	* mf-runtime.c (__mf_process_opts): Sanity-check free_queue_length.
	(__mf_check): Re-inialize and check heuristics before violation.
	(__mf_register): Permit updating pure-guess regions.
	* mf-hooks.c (__wrap_free): Correct some free queue logic.
	(__wrap_dlopen): New wrapper function.
	(__wrap_mmap): New wrapper function.
	(__wrap_munmap): New wrapper function.
	* mf-heuristics.c (__mf_register_ro_sections): Register *all* regions
	which are not stack addresses.
	(is_stack_address): New function.
	(__mf_init_heuristics): Save and restore state, always initialize with
	"starting" state.

2002-08-21  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c (MF_VALIDATE_EXTENT): Rewrite to correct off-by-one
	error.  Pass location string.
	(wrap_strcpy, wrap_strncpy): Remove extra %s in trace strings.
	* mf-runtime.c (options): Add lc-mask, lc-shift options.
	(__mf_process_opts): Apply some sanity checking for lc-mask.
	(__mf_check, __mf_violation): Take new location-string argument.
	Update callers to pass NULL if necessary.
	(__mf_backtrace): New smart backtracer function.  Calls replace
	several ad-hoc blocks elsewhere.
	(__mf_describe_object): Remove bad reentrancy test.  Improve
	tracing message.
	* mf-runtime.h: Corresponding changes.  Public/private markup.
	(__MF_CACHE_MISS_P): New macro.

2002-08-20  Graydon Hoare  <graydon@redhat.com>

	* mf-runtime.h: New option: stack_bound (heuristic).
	Move some macros out of implementation files.
	* mf-runtime.c: New option string: -stack-bound.
	Unify recursion protection with hooks.
	Add more logging.
	(__mf_check): Call __mf_heuristic_check.
	(__mf_process_opts): Fix "no-" processing.
	* mf-heuristics.c (__mf_heuristic_check): New function.
	* mf-hooks.c: Much off-by-one fixing, recursion protection.

2002-08-20  Frank Ch. Eigler  <fche@redhat.com>

	Option parsing improvements, region splitting bug fixes:
	* mf-heuristics.c (__mf_register_ro_sections): Add warned casts.
	* mf-runtime.h (heur_proc_map): New libmudflap option.
	* mf-runtime.c (__mf_set_default_options): Set it.
	(__mf_usage): Print default values/status.
	(__mf_process_opts): Support general "no-" option string prefix.
	(__mf_init): Print __mf_usage on unknown-option error.
	(__mf_register): Print trace message up front.
	Correct region splitting logic for case where a subregion disappears.
	Correct memory leak.
	(__mf_violation): Make even basic message conditional on option.

	Build cleanup:
	* Makefile.am (TESTS_ENVIRONMENT): Add -no-heur-proc-map.
	(clean-local): New target.
	(test/*x rules): Add -g CFLAGS.
	(CFLAGS): Add -freorder-blocks.
	(MFCONFIG_CFLAGS, INCLUDE): Remove unneeded settings.
	* Makefile.in: Regenerated.
	* Makefile, mf-config.h: Removed files.

2002-08-16  Graydon Hoare  <graydon@redhat.com>

	* mf-runtime.c (__mf_insert_new_object): Factor out of
	__mf_register.
	(__mf_remove_old_object): Factor out of __mf_unregister.
	(__mf_register): Handle guessed regions, splitting
	guesses when new registrations arrive.
	(__mf_unregister): Do not unregister guesses.
	* mf-runtime.h: Move convenience macros around,
	declare new option fields. Add __MF_TYPE_GUESS.
	* mf-hooks.c (__wrap_*alloc): Use crumple zones.
	(__wrap_free): Call __real_free for deferred frees.
	* Makefile.am: Add more tests, fix dependency.
	* Makefile.in: Regenerate.
	* test/pass[13..17]-frag.c: New testcases.
	* test/fail[13..17]-frag.c: New testcases.

2002-08-15  Graydon Hoare  <graydon@redhat.com>

	* mf-heuristics.c: New file.
	* mf-runtime.c (options): Add -trace-calls option.
	(__mf_init): Call __mf_init_heuristics.

2002-08-14  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am (TESTS): Add testsuite support.
	* Makefile.in: Regenerate.
	* test/mf-driver.c: New file.
	* test/buildtest.sh: New file.
	* test/passNN-frag.c: New testcases.
	* test/failNN-frag.c: New testcases.

2002-08-14  Graydon Hoare  <graydon@redhat.com>

	* mf-hooks.c: Change __real_strlen() to __real_strlen()+1 when
	verifying non-size-limited string extents.

2002-08-14  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c: Make __wrap string* functions use __real_str[n]len
	instead of plain str[n]len for internal checks.
	* mf-runtime.c (__mf_violation): Print optional stack traceback.

2002-08-14  Frank Ch. Eigler  <fche@redhat.com>

	* mf-hooks.c: Remove #if-0 around hooks that are now ld-wrapped.

2002-08-13  Graydon Hoare  <graydon@redhat.com>

	* mf-runtime.c: Rework configuration to operate on
	environment variable options rather than #defines
	(__mf_violation): Add simple fork-a-gdb violaiton mode.
	(__mf_init): Set static __mf_active_p flag on startup,
	to inhibit mudflap wrap-based checking during crt0.s.
	* mf-runtime.h: Declare options structure.
	* mf-hooks.c: New wrappings for mem*, b*, str*
	libc functions (temporarily #if 0-ed out).

2002-08-12  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am, configure.in: New files.
	* Makefile.in, Makefile, configure, config.h.in: New generated files.
	* stamp-h.in, aclocal.m4: Ditto.

2002-08-08  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile: New file.
	* mf-config.h: New file: runtime configuration.
	* mf-hooks.c: New file: interposed libc functions.
	* mf-runtime.c: New file: bulk of runtime.
	* mf-runtime.h: New file: public functions.
