2002-11-28  Elena Zannoni  <ezannoni@redhat.com>

	* Makefile.in (install): Move install-info to here...
	(all): ...from here.

2002-11-26  Elena Zannoni  <ezannoni@redhat.com>

	* Makefile.in (INFO_DEPS): Define.
	(all): Add install-info to the rule.
	(info): Unse INFO_DEPS.
	(install-info): Rewrite.
	(uninstall-info): New.
	(uninstall): New.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	From 2002-03-05 Scott Pakin <pakin@uiuc.edu>
	* mmap-sup.c (MAP_PRIVATE_OR_SHARED): Define.
	(__mmalloc_mmap_morecore): Use.
	(__mmalloc_remap_core): Use.
	
2000-05-17  Eli Zaretskii  <eliz@is.elta.co.il>

	* Makefile.in (install-info): Make sure $(infodir) exists.  Run
	install-info program on the installed Info files.

2000-03-20  Eli Zaretskii  <eliz@is.elta.co.il>

	* Makefile.in (install): Append "n", not ".n" to libmmalloc.a,
	since the latter loses on DOS 8+3 filesystems.

Mon Feb 28 10:33:51 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* MAINTAINERS: New file.

2000-02-18  Frank Ch. Eigler  <fche@redhat.com>

	From Jason "crash" Molenda <jsm@cygnus.com>:
	* configure.in: Check for getpagesize declaration.
	* mvmalloc.c, mmap-sup.c: Conditionally declare getpagesize.
	* configure: Regenerated.

Fri Feb 18 11:42:21 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in: Check for <unistd.h>.
	* configure: Regenerate.

	From 2000-02-17 RodneyBrown@pmsc.com:
	* mm.c, attach.c, mmap-sup.c, sbrk-sup.c: Include <unistd.h> for
 	sbrk and lseek declarations.  Update copyright.

2000-02-04  Kevin Buettner  (kevinb@cygnus.com)

	* acinclude.m4, aclocal.m4: New files.
	* configure.in (sbrk): Use BFD_NEED_DECLARATION to test for
	presence of a suitable declaration in the system headers.
	* configure: Regenerated.
	* sbrk-sup.c (sbrk): Ifdef'd with NEED_DECLARATION_SBRK.

1999-01-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* configure.in: Requires autoconf 2.12.1 or higher.
	* configure: Regenerated.

1998-07-24  Jim Blandy  <jimb@zwingli.cygnus.com>

	* mcalloc.c: #include <sys/types.h> before <string.h>.  HP/UX 11.0
	needs this.

Thu Apr 23 12:19:22 1998  Philippe De Muyter  <phdm@macqel.be>

        * mmalloc.h: Include sys/types.h and stdio.h #ifndef HAVE_STDDEF_H.
        * mmprivate.h: Do not handle HAVE_STDDEF_H here, since we include
        mmalloc.h.

Tue Mar 24 17:07:02 1998  Stu Grossman  <grossman@bhuna.cygnus.co.uk>

	* Makefile.in:  Get SHELL from configure.
	* configure:  Regenerate with autoconf 2.12.1 to fix shell issues for
	NT native builds.

Mon Feb  7 13:06:45 1997  Philippe De Muyter  <phdm@macqel.be>

        * mmalloc/detach.c: Do not include fcntl.h.

Thu Aug 28 13:15:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* mrealloc.c (realloc): Store result in local variable before
 	returning it.  Makes debugging much easier at negligible cost.

Tue Feb  4 16:30:59 1997  Ian Lance Taylor  <ian@cygnus.com>

	* mvalloc.c (cache_pagesize): Rename from pagesize, so that if we
	are building mm.o, it does not conflict with the variable of the
	same name in mmap-sup.c.

Sat Dec 28 12:48:32 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (mm.o): New target that combines all the functions
	into a single object module.  This avoids client programs picking
 	up part of the allocation routines from mmalloc and part from libc,
 	which can lead to undefined behavior.
	(CFILES): Add mm.c
	(TARGETOBJS): Define to be either the individual objects or the
	single combined object.
	(TARGETLIB): Create the archive using TARGETOBJS.
	* mm.c: New file that simply #includes the other source C files.
	
Thu Oct  3 15:45:23 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (maintainer-clean): Depend on distclean, remove
	duplication.

Tue Sep 10 17:52:06 1996  Fred Fish  <fnf@cygnus.com>

	* mmcheck.c (checkhdr): Add prototype.
	(mfree_check): Ditto.
	(mmalloc_check): Ditto.
	(mrealloc_check): Ditto.
	* mmtrace.c (tr_break): Ditto.
	(tr_freehook): Ditto.
	(tr_mallochook): Ditto.
	(tr_reallochook): Ditto.
	* sbrk-sup.c (sbrk_morecore): Ditto.

Wed Sep  4 18:02:45 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* configure configure.in:  Don't default CC to cc.  It causes problems
	when starting a compile in the mmalloc directory.

Wed Jul 24 00:53:34 1996  Fred Fish  <fnf@cygnus.com>

	* mmalloc.h (mmalloc_findbase): Add prototype.

Fri Jul 12 18:35:34 1996  Fred Fish  <fnf@cygnus.com>

	* mmap-sup.c (mmalloc_findbase): Change to not require /dev/zero
	if MMAP_ANONYMOUS is available.

Wed Jul 10 23:53:42 1996  Fred Fish  <fnf@cygnus.com>

	* detach.c (mmalloc_detach): Fix bug in computation of negative
	brk value.
	* mmcheck.c (mmcheckf): Renamed from mmcheck and new FORCE argument
	added.  Replaced hack that always allowed checking routines to be
 	installed and enforce restriction that they have to be installed
	prior to allocating any memory on the used heap or the FORCE argument
	has to be non-NULL.
	(mmcheck): New function that calls mmcheckf with FORCE set to zero,
	for backwards compatibility.
	* mmalloc.c (malloc): Store result in local variable before
	returning it.  Makes debugging much easier at negligible cost.
	* mmalloc.h (mmcheckf): Declare.
	* attach.c (reuse): Call mmcheckf rather than mmcheck.
	* mmap-sup.c (__mmalloc_mmap_morecore): Improve to allow mmap
	to select a base mapping address if none is otherwise given.
	(mmalloc_findbase): New function that user can call to find
	an available mapping address of a given size.
	
Tue Jun 25 22:54:06 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir):
	Use autoconf-set values.
	(docdir): Removed.
	* configure.in (AC_PREREQ): autoconf 2.5 or higher.
	* configure: Rebuilt.

Tue May 28 13:51:22 1996  Fred Fish  <fnf@cygnus.com>

	From: Thomas A Peterson <tap@src.honeywell.com>
	* Makefile.in (install-info): Apply patch to install
	mmalloc.info from srcdir if not found in build dir.

Sun Apr  7 20:55:30 1996  Fred Fish  <fnf@rtl.cygnus.com>

	From: Miles Bader  <miles@gnu.ai.mit.edu>
	* configure.in: Use AC_CHECK_TOOL to find AR & RANLIB.
	* configure: Regenerate with autoconf.
	* Makefile.in: Use AR set by configure substitution.
	
Fri Mar 29 09:57:36 1996  Fred Fish  <fnf@cygnus.com>

	* mmalloc.h (mmtrace): Add prototype.

Sat Feb  3 12:41:00 1996  Fred Fish  <fnf@cygnus.com>

	From H.J. Lu (hjl@gnu.ai.mit.edu):
	* mvalloc.c (valloc): new.
	* mmemalign.c: Allocate (SIZE + ALIGNMENT - 1) and then trim
	if possible.
	(memalign): don't put the node on the _aligned_blocks list more
 	than once.

Mon Nov 20 12:04:32 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (OFILES): Make objects depend upon Makefile,
	since Makefile sets DEFS which can definitely affect how
	objects are to be compiled.

Mon Nov  6 14:12:13 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (AC_CHECK_HEADERS): add limits.h.
	(AC_HEADER_STDC): remove.

	* mmalloc.h: document necessity of defining size_t before
	including mmalloc.h.

	* mmprivate.h: add check for limits.h, remove definition of
	NULL and size_t.

Sun Nov  5 00:27:36 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in: AC_CHECK_HEADERS, not AC_CHECK_HEADER.

Sun Nov  5 00:14:13 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in: add check for stddef.h
	* mmalloc.h: include stddef.h if HAVE_STDDEF_H is defined.

Sat Nov  4 19:10:13 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in: add AC_HEADER_STDC check.

	* mmalloc.h: check if STDC_HEADERS instead of __STDC__.

	* mmprivate.h: check if STDC_HEADERS instead of __STDC__.

Tue Oct 24 13:17:44 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mmprivate.h: Remove declarations (PTR, etc) that are already
	provided by ansidecl.h, include mmalloc.h earlier in file.

Tue Oct 10 11:04:47 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (BISON):  Remove macro.

Wed Sep 20 12:51:13 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New target, synonym for
	realclean.  Add GNU standard maintainer-clean echos.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files
	and shar archive of original FSF files.

Mon Jun 12 12:11:57 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* Makefile.in (distclean, realclean): Remove config.cache and
	  config.log.

Wed May 17 17:47:44 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* Makefile.in (Makefile): Added config.status to dependency list.
	  (config.status): New target.

Fri May  5 15:17:53 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* mmap-sup.c: Removed munmap prototype.  Some systems have a
	  slightly different prototype.

Wed May  3 17:18:13 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* Makefile.in, configure.in: Converted to use autoconf.
	* configure: New file, generated with autoconf 2.3.
	* config/{mh-go32, mh-irix, mh-ncr3000, mh-sunos4, 
	  mh-sysv4}: Removed.

Thu Nov  3 23:55:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* Makefile.in (install-info): Name destination file correctly,
	rather than using undefined shell variable.

Fri Oct 28 16:46:58 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* mmprivate.h: New file, was mmalloc.h.
	(mmalloc.h): Include.
	* mmalloc.h: Remove all but declarations of mmalloc functions.
	(ansidecl.h): Include.
	* attach.c, et al: Include mmprivate.h instead of mmalloc.h.

Wed Aug 24 12:55:33 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in: Change i[34]86 to i[345]86.

Mon Aug 22 11:36:40 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* Makefile.in (distclean): Separate from realclean.
	(realclean): Remove mmalloc.info.

Fri May  6 13:04:25 1994  Steve Chamberlain  (sac@cygnus.com)

        * config/go32.mh: New file
	* configure.in (host==go32):  Use new fragment.

Tue Feb  8 00:32:28 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* mmtrace.c (tr_freehook, tr_mallochook, tr_reallochook):
	Cast addresses put out via fprintf to unsigned long and use %lx.

Tue Nov 16 20:33:17 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* COPYING.LIB: New file (standard version 2 LGPL, as already cited
	by the source files).

Fri Nov  5 11:47:33 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (info dvi install-info): Actually make the manual.

Mon Nov  1 14:20:25 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* mmalloc.texi: Fix typo ("for for" -> "for").

Fri Jul 16 15:27:08 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)

	* test1.c: New file which tests for bug fixed below.
	* Makefile.in (check): Put in commands to run it (but commented out
	because it won't work for Canadian cross).

	* mmalloc.c (mmalloc): When extending a free block at the end of the
	heap, check whether which block is at the end changed.

	* Makefile.in (TAGS): make work when srcdir != objdir.

Thu Jul 15 07:56:47 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* attach.c, detach.c: Include <sys/types.h> before <fcntl.h>.

Wed Jun 30 11:00:53 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Add mostlyclean and realclean targets.

Wed Mar 24 01:58:12 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* Makefile.in: add dvi and installcheck targets

Fri Mar 12 18:35:43 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: recognize *-*-solaris2* instead of *-*-solaris* (a
	number of people want to call SunOS 4.1.2 "solaris1.0" and get it right)

Mon Feb 22 18:08:53 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (distclean):  Add.

Tue Feb 16 08:09:15 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in, attach.c, detach.c, keys.c, mmap-sup.c, mmtrace.c,
	sbrk-sup.c:  Use GNU Library General Public License, like other
	files.

Wed Nov 18 19:18:59 1992  John Gilmore  (gnu@cygnus.com)

	* configure.in:  Regularize list of host configs.

Fri Oct 30 00:59:46 1992  John Gilmore  (gnu@cygnus.com)

	* mmalloc.texi:  Add missing doubled @.  Bugfix by Paul Eggert.

Fri Oct 23 01:50:52 1992  Stu Grossman  (grossman at cygnus.com)

	* configure.in:  Handle solaris same as sysv4.

Thu Oct  1 23:34:20 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: use cpu-vendor-os triple instead of nested cases

Sun Aug 23 11:09:46 1992  Fred Fish  (fnf@cygnus.com)

	* sbrk-sup.c (__mmalloc_brk_init):  Ensure base of sbrk'd region
	is aligned.  Bug reported by Andrew Heybey (ath@lcs.mit.edu).

Wed Aug 19 14:49:23 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: always create installation directories.

Mon Jul 20 21:15:44 1992  Fred Fish  (fnf@cygnus.com)

	* mrealloc.c:  Minor code format style changes for consistency.

Fri Jul  3 20:25:30 1992  Fred Fish  (fnf@cygnus.com)

	* attach.c, detach.c, mcalloc.c, mmalloc.c, mmtrace.c, mrealloc.c,
	sbrk-sup.c:  Remove "(void)" casts from function calls where the
	return value is ignored, in accordance with GNU coding standards.

Tue Jun 30 16:44:41 1992  Fred Fish  (fnf@cygnus.com)

	* mmalloc.h (struct mdesc):  Add FIXME comments to point out the
	need to save some data on a per-process basis for mapped regions
	that are shared.
	* attach.c (reuse):  Update the morecore field for reused mapped
	regions to be correct for the current process.

Mon Jun 29 10:45:25 1992  Fred Fish  (fnf at cygnus.com)

	* mmtrace.c:  Lint.

Mon Jun 15 12:20:16 1992  Fred Fish  (fnf@cygnus.com)

	* mmalloc.h (struct mdesc):  Change member "errno" to
	"saved_errno" to avoid possible conflict with ANSI C environments,
	where it is allowed to be a macro.
	* config/mh-ncr3000 (INSTALL):  Don't use /usr/ucb/install,
	it is broken on ncr 3000's.
	* config/mh-ncr3000 (RANLIB):  Use RANLIB=true.

Fri Jun 12 21:34:21 1992  John Gilmore  (gnu at cygnus.com)

	* mmap-sup.c:  Avoid ANSI C "empty translation unit" idiocy.

Tue Jun  9 17:29:04 1992  Fred Fish  (fnf@cygnus.com)

	* config/{mh-ncr3000, mh-sysv4}:  Add definition for INSTALL using
	/usr/ucb/install.

Thu Apr 30 22:36:31 1992  Fred Fish  (fnf@cygnus.com)

	* sbrk-sup.c (sbrk_morecore):  Fix sbrk() error return test.

Mon Apr 20 21:03:30 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: rework CFLAGS so that they can be passed from the
	  command line.  remove MINUS_G.  Default CFLAGS to -g.

Thu Apr 16 20:00:21 1992  Fred Fish  (fnf@cygnus.com)

	* TODO:  New file.
	* attach.c, mcalloc.c, mfree.c, mmalloc.c, mmalloc.h, mmap-sup.c,
	mmcheck.c, mtrace.c, mrealloc.c, mvalloc.c, sbrk-sup.c:  Lint.

Fri Apr 10 22:59:17 1992  Fred Fish  (fnf@cygnus.com)

	* configure.in:  Recognize new ncr3000 config.
	* config/mh-ncr3000:  New config file.
	* Makefile.in (MINUS_G):  Add macro and default to -g.

Wed Apr  8 09:34:53 1992  Fred Fish  (fnf@cygnus.com)

	* mmalloc.c:  Minor fix to comment.
	* mmalloc.texi:  Update to match actual implementation
	* mmalloc.h (morecore):  Change prototype's 2nd arg to int.

Tue Apr  7 22:16:09 1992  Fred Fish  (fnf@cygnus.com)

	* mmalloc.h (size_t, CHAR_BIT):  Only redefine if not already
	defined.

Mon Apr  6 20:49:33 1992  Fred Fish  (fnf@cygnus.com)

	* mmalloc.h:  Remove include of <stdlib.h>.  This also gets rid
	of the ugly kludge installed on 1-Apr-92.

Mon Apr  6 16:33:37 1992  Stu Grossman  (grossman at cygnus.com)

	* detach.c (mmalloc_detach):  Arg should be PTR, not void *.
	Fixes complaints from non __STDC__ systems.

Wed Apr  1 11:47:02 1992  Fred Fish  (fnf@cygnus.com)

	* mcalloc.c, mfree.c, mmalloc.c, mrealloc.c:  Minor comment
	change.
	* mmalloc.h:  Add ugly kludge to band-aid over problems with
	bogus vendor <stdlib.h> files.

Sun Mar 29 12:41:31 1992  John Gilmore  (gnu at cygnus.com)

	* attach.c, mmalloc.c, mmcheck.c:  Lint.

Thu Mar 26 17:06:04 1992  Fred Fish  (fnf@cygnus.com)

	* attach.c (reuse):  Explicitly discard return value of mmcheck.
	* mmcheck.c (mmcheck):  Document requirements for installing
	corruption checking hooks and set up to enforce restrictions.

Tue Mar 24 23:41:10 1992  K. Richard Pixley  (rich@cygnus.com)

	* config/mh-irix4: new file.

	* Makefile.in: added standard targets, fixed install directories.

Sat Mar 14 17:34:59 1992  Fred Fish  (fnf@cygnus.com)

	* Initial release, incorporated into gdb.


