2005-07-07  Release Manager

	* GCC 4.0.1 released.

2005-04-20  Release Manager

	* GCC 4.0.0 released.

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.
