_ ___ ____ ____ ____ |_|_ _ / _ \/ ___/ ___|| _ \ _ __ ___ _ __ ___ _|_||_| | | | \___ \___ \| |_) | | '_ ` _ \| '_ ` _ \ |_||_|_| | |_| |___) |__) | __/ | | | | | | | | | | | |_|_|_| \___/|____/____/|_| |_| |_| |_|_| |_| |_| OSSP mm - Shared Memory Allocation ChangeLog ========= Changes between 1.4.2 and 1.4.3 (15-Aug-2006 to 01-Jan-2007) *) Fix sanity check on "mm_global" variable in MM_permission(). [Michael Durket ] *) Updated all copyright messages for year 2007. [Ralf S. Engelschall] Changes between 1.4.1 and 1.4.2 (10-Aug-2006 to 15-Aug-2006) *) Support the LDFLAGS and LIBS variables in Makefile. [Ralf S. Engelschall, Francois Laupretre ] *) Upgraded build environment to GNU autoconf 2.61 [Ralf S. Engelschall] *) Remove a trailing whitespace in mm.pod which confused pod2html(1) and generated bad output. [Neil Conway ] Changes between 1.4.0 and 1.4.1 (02-Sep-2005 to 10-Aug-2006) *) Add new API function MM_reset() and mm_reset(). [Neil Conway ] *) Upgraded build environment to GNU shtool 2.0.6, GNU libtool 1.5.22 and GNU autoconf 2.60. [Ralf S. Engelschall] *) Fix spelling errors in manual page mm(3) and corrected description of mm_sizeof() function. [Neil Conway ] Changes between 1.3.1 and 1.4.0 (12-Sep-2003 to 02-Sep-2005) *) Optimize insertion of free memory chunks by merging with the spare area if possible to decrease memory fragmentation. [] *) Fix mm_realloc() function: If the memory chunk passed to mm_realloc() can't be extended and a new chunk must be allocated, the old memory is copied into the new chunk with a call to memcpy(3). However, the used size is the length of the new data and will cause memcpy(3) to access memory beyond the old data chunk's boundaries. [Kirk Petersen ] *) Upgraded build environment to GNU Libtool 1.5.20 and GNU shtool 2.0.2 [Ralf S. Engelschall] *) Updated all copyright messages for year 2005. [Ralf S. Engelschall] Changes between 1.3.0 and 1.3.1 (07-Mar-2003 to 12-Sep-2004) *) Upgraded build environment to GNU Shtool 2.0.1, GNU Libtool 1.5.8 and Autoconf 2.59. [Ralf S. Engelschall] Changes between 1.2.2 and 1.3.0 (23-Dec-2002 to 07-Mar-2003) *) Correctly cleanup under MM_SHMT_MMZERO in case of a shared memory segment creation error. [Ralf S. Engelschall] *) Close the filedescriptor of the underlying object immediately after mmap(2)'ing it in case of MM_SHMT_MMPOSX, MM_SHMT_MMZERO and MM_SHMT_MMFILE. [Ralf S. Engelschall, Joe Orton ] Changes between 1.2.1 and 1.2.2 (28-Jul-2002 to 23-Dec-2002) *) Stripped trailing whitespaces from all files in source tree. [Ralf S. Engelschall] *) Upgraded build environment to GNU Shtool 1.6.2, Libtool 1.4.3 and Autoconf 2.57. [Ralf S. Engelschall] *) Use "close-on-exec" semantic on internal file descriptors if underlying platform supports this feature. This makes sure the file descriptors are closed by the kernel upon execution of exec(3) by the application. [Ralf S. Engelschall, Martin Kraemer ] *) Fixed Makefile.in: $(TRUE) was not defined. [Will Day ] *) Updated all copyright messages with forthcoming year 2003, added OSSP project as secondary copyright holder, added standard OSSP ASCII-art logo to documents, etc. [Ralf S. Engelschall] Changes between 1.2.0 and 1.2.1 (26-Jul-2002 to 28-Jul-2002) *) Fixed the package rolling: configure.ac was missing because of a bug in devtool.conf. [Kean Johnston ] Changes between 1.1.3 and 1.2.0 (01-Jul-2000 to 26-Jul-2002) *) Fixed race condition in temporary file creation. [Sebastian Krahmer, SuSE Security] *) Make sure that under MM_SEMT_IPCSEM (mutex implementation method is SysV IPC semget) the {mm,MM}_permission() also changes the owner of the semaphore. [Jonathan Kamens ] *) Add support for IRIX 6.5 and other Unix flavors which have MAXPATHLEN in [Joe Orton ] *) Removed the old fbtool stuff for reporting the success/failure because after 3 years of existence we really know that OSSP mm works on every reasonable Unix flavor on this earth. [Ralf S. Engelschall] *) Upgraded to GNU autoconf 2.53, GNU libtool 1.4.2 and GNU shtool 1.6.1 build environment (using OSSP devtool). [Ralf S. Engelschall] *) Changed home from http://www.engelschall.com/sw/mm/ to OSSP http://www.ossp.org/pkg/lib/mm/ and official name from "MM" to "OSSP mm" to follow name conventions in the OSSP project. [Ralf S. Engelschall] *) Removed variables from ANSI C function prototypes in mm.h to avoid any potential conflicts in advance. [Ralf S. Engelschall] *) Adjusted year in copyright messages for 2002. [Ralf S. Engelschall] *) From Apache 2.0's MM patch set: Make Autoconf test for maximum shared memory size support BEOS and make decision cacheable. [The Apache Software Foundation] *) Fixed initializations of fdxxx variables in mm_core.c [Alexander Farber ] *) Added $(DESTDIR) support to Makefile.in. This makes life easier for RPM package building. [Brad , Ralf S. Engelschall] *) Fixed typo in mm.h: (still unused) definition of SIZEOF_mem_core_fd lacked a closing parenthesis. [Alexander Farber ] *) Added required "(void *)" cast to MAP_FAILED in Autoconf stuff. [Albert Chin-A-Young , Joe Orton ] Changes between 1.1.2 and 1.1.3 (21-May-2000 to 01-Jul-2000) *) Upgraded to GNU libtool from version 1.3.4 to 1.3.5 and upgraded GNU shtool from version 1.4.9 to 1.5.0 [Ralf S. Engelschall] *) Added OS/390 support to config.sub. [Greg Ames ] *) Fixed type-warnings related to `char' vs. `unsigned char' in mm_test.c [Ralf S. Engelschall] *) Let the internal mm_insert_chunk() function detect the situation where a chunk of memory is inserted twice (usually caused by the application through multiple and this way illegal calls to mm_free() with the same argument). This especially makes sure the internal list of free chunks is not corrupted. [Jeffrey Hsu , Ralf S. Engelschall] *) Fixed typos in mm.pod. [Ralf S. Engelschall] Changes between 1.1.1 and 1.1.2 (30-Apr-2000 to 21-May-2000) *) Fixed some logic in mm's configuration that removes -g from CFLAGS. It incorrectly collapsed " -g " to "", which leaded to invalid CFLAGS. [Jeff Trawick ] *) Fixed shared memory decisions on Linux: We now avoid using MM_SHMT_MMANON (seems to be completely broken on 2.0), MM_SHMT_MMZERO (seems like Linux 2.0 hates this classical combination and return EINVAL for unknown reasons) and MM_SHMT_IPCSHM (requires that a IPC shm filesystem is mounted since 2.3). So, technically MM_SHMT_IPCSHM is preferred if the shm filesystem exists, else we count on MM_SHMT_MMFILE now. [Ralf S. Engelschall] Changes between 1.1.0 and 1.1.1 (30-Apr-2000 to 30-Apr-2000) *) Fixed compilation under Solaris where the SunOS4 and BS2000 kludges for conflicted with the Sun vendor includes (which unfortunately use the defines). [Ralf S. Engelschall, Jeff Beard ] Changes between 1.0.12 and 1.1.0 (28-Sep-1999 to 30-Apr-2000) *) Fixed `make test' feedback procedure in Makefile.in now that the platform list is stored in the PORTING file. [Ralf S. Engelschall] *) Renamed file CHANGES to ChangeLog. [Ralf S. Engelschall] *) Fixed pointer arithmentic in memset/memcpy replacements by casting `void *' arguments to `char *'. [Sascha Schumann ] *) Added BS2000 support for stuff. [Martin Kraemer ] *) Added an include for to maximum shared mem segment size check in aclocal.m4. This especially fixes compile problems under for Solaris 8. [Alexander Demenchuk , Greg Gears ] *) Fixed a warning under IRIX related to size_t comparisons [Ralf S. Engelschall] *) Added support for IBM OS/390 [Jeff Trawick ] *) Upgraded to GNU libtool from version 1.3.3 to 1.3.4 and upgraded GNU shtool from version 1.4.6 to 1.4.9 [Ralf S. Engelschall] *) Upgraded config.guess to GNU Pth's version and use "/sbin/sysctl" under FreeBSD instead of just "sysctl" [Jeff Trawick ] *) Added platform support for the esoteric Unix look-alike BeOS [David Reid" ] *) Added `make check' as an alias for `make test' [Ralf S. Engelschall] *) Adjusted copyright messages for year 2000 [Ralf S. Engelschall] *) Fixed Autoconf checks for SunOS [Ralf S. Engelschall] *) Fixed a bug in aclocal.m4's AC_CHECK_DEFINE macro. [Ralf S. Engelschall] *) Updated the manual page (typos, fixes, etc.) [Ralf S. Engelschall] *) Splitted README into README, PORTING and THANKS document. [Ralf S. Engelschall] Changes between 1.0.11 and 1.0.12 (06-Sep-1999 to 28-Sep-1999) *) Recreated configure with latest Autoconf 2.13.1 (snapshot) *) Always use --mode=xxx for libtool calls to avoid problems under situations where $CC doesn't allow libtool to guess the mode correctly. Changes between 1.0.10 and 1.0.11 (27-Aug-1999 to 06-Sep-1999) *) Cleaned up various file permission in source tree *) Enhanced mm-config.in: new --all option and less newlines *) Added support --silent to libtool glue code in aclocal.m4 *) Upgraded to GNU Pth's more recent config.{guess,sub} *) Upgraded to GNU shtool 1.4.6 *) Fixed --section for mm-config in Makefile.in *) Added `void *' casts to MAP_FAILED (= -1) values to avoid warnings under some platforms. *) Fixed a few typos in mm.pod Changes between 1.0.9 and 1.0.10 (02-Jul-1999 to 27-Aug-1999) *) Changed "make dist" and "make snap" to use "shtool tarball" *) Added #define KERNEL for SunOS to get SHM_R und SHM_W values. *) Upgraded to GNU libtool 1.3.3 *) Upgraded to GNU shtool 1.4.5 *) Downgraded required Autoconf version to 2.12 *) Added MM version number to test report *) Added --enable-batch *) Moved mm_lock_mode in mm.h to top to avoid warnings Changes between 1.0.8 and 1.0.9 (24-Jun-1999 to 02-Jul-1999) *) Fixed a nasty bug related to {MM,mm}_[un]lock(): an additional semicolon broke the semantics. *) Upgraded to released shtool 1.4.0 *) Fixed `make test' Changes between 1.0.7 and 1.0.8 (22-Jun-1999 to 24-Jun-1999) *) Added important MAP_FAILED fallback also to Autoconf stuff *) Upgraded to latest shtool 1.3.0-dev to fix two Awk problems Changes between 1.0.6 and 1.0.7 (06-Jun-1999 to 22-Jun-1999) *) Upgraded to latest shtool 1.3.0-dev *) Avoid -g under non-debugging situation *) Complain with a fatal error message when MM_SHM_MAXSEGSIZE couldn't be determined. *) Updated config.guess/config.sub *) Fixed a nasty permission bug for the lock files: they were opened write-only, but at least fcntl() requires them to be opened read-write. *) Check return value of mm_core_lock() in mm_alloc.c Changes between 1.0.5 and 1.0.6 (02-Jun-1999 to 06-Jun-1999) *) Fixed mm_malloc() function: it returned the wrong pointer when a chunk was reused and forgot to lock/unlock the data structures. *) Fixed internal best-fit algorithm for finding a free memory chunk: - things got inserted out of order in the list - when chunk is found which matches size exactly it stops immediately - lowered chunk splitting threshold to MIN(2*size,128) *) Moved internal definitions in mm.h to private section Changes between 1.0.4 and 1.0.5 (21-May-1999 to 02-Jun-1999) *) Fixed output of mm-config.in *) Fixed output of configure --help *) Upgraded to GNU libtool 1.3.2 *) Upgraded to shtool 1.2.9 *) Made libtool calls visible but use --quiet *) Hint user to send feedback only on errors or for new platform *) Removed unnecessary "elf" hint for FreeBSD from config.guess Changes between 1.0.3 and 1.0.4 (15-May-1999 to 21-May-1999) *) Fixed maximum memory size determination and internal handling *) Documented the mm_lib_xxx() functions. Changes between 1.0.2 and 1.0.3 (26-Apr-1999 to 15-May-1999) *) Added {MM,mm,mm_core}_permission() function *) Fixed version information and mod_ssl URL in manual page *) Upgraded config.{guess,sub} from libtool 1.3 distribution *) Upgraded to GNU libtool 1.3 *) Upgraded to shtool 1.2.7 *) Fixed public includes for xx_t types *) Fixed mm_vers.c and shtool type inside CVS Changes between 1.0.1 and 1.0.2 (18-Apr-1999 to 26-Apr-1999) *) Upgraded to GNU libtool 1.2f *) Upgraded to shtool 1.1.0 Changes between 1.0.0 and 1.0.1 (18-Mar-1999 to 18-Apr-1999) *) Fixed "dist" Makefile target to not distribute CVS stuff *) Upgraded lshtool to the latest version *) Const'ification of the API Changes between 1.0b6 and 1.0.0 (18-Mar-1999 to 28-Mar-1999) *) Finally cleaned up and polished the mm.pod manual page. *) Fixed mm-config program Changes between 1.0b5 and 1.0b6 (18-Mar-1999 to 18-Mar-1999) *) Added {MM,mm}_maxsize() to manual page *) Changed MM_create() signature to match mm_create() Changes between 1.0b4 and 1.0b5 (15-Mar-1999 to 18-Mar-1999) *) Make sure the maximum allocateable size takes the overhead of the memory pool into account. *) Fixed lshtool and this way hex version string *) Fixed Makefile for mm_test target dependecies *) Added {MM,mm}_maxsize() function to let one determine in advance the maximum allocateable pool Changes between 1.0b3 and 1.0b4 (15-Mar-1999 to 15-Mar-1999) *) Added mm-config.pod manpage *) Split mm-config --ldflags into --ldflags and --libs *) Removed TODO and fulltest files Changes between 1.0b2 and 1.0b3 (13-Mar-1999 to 15-Mar-1999) *) Added Autoconf check for determining max shared mem segment size *) Changed -1 to MAP_FAILED when available *) Replaced 8KB default shared memory segment size with max size *) Added mm_core_maxsegsize() function *) Use a remembered offset for mmap() on temporary files *) Imported source tree into CVS *) Added read-only locking support *) Fixed MMFILE and MMZERO variants Changes between 1.0b1 and 1.0b2 (12-Mar-1999 to 13-Mar-1999) *) Updated the mm.pod manual page. *) Split README into README and LICENSE files *) Fixed becho problems *) Added a test suite summary *) Added INSTALL file *) Reduced mm_test's memory size from 1MB to 512KB *) Fixed unsigned long and %X related warnings Changes between 1.0b0 and 1.0b1 (11-Mar-1999 to 12-Mar-1999) *) Enhanced mm_test *) Added {MM,mm}_available() function *) Fixed MMZERO *) Fixed IPC Semaphore initialization *) Added --with-{sem,shm}=TYPE options *) Fixed "make test" and mm_memory_display() function *) Added mm_lib.c source with mm_lib_xx() functions Changes between 0.9.0 and 1.0b0 (10-Mar-1999 to 11-Mar-1999) *) Switched to GNU Autoconf and GNU Libtool Changes between GENESIS and 0.9.0 (Jan-1999 to 10-Mar-1999) *) Created initial version on FreeBSD *) Ported to Linux and Solaris