diff --git a/ChangeLog b/ChangeLog index c8392b779f..85ec25c971 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,10 @@ Changes in version 0.2.0.22-rc - 2008-03-?? - Use proper log levels in the testsuite call of get_interface_address6(). - When using a nonstandard malloc, do not use the platform values for HAVE_MALLOC_GOOD_SIZE or HAVE_MALLOC_USABLE_SIZE. + - Make the openbsd malloc code use 8k pages on alpha CPUs. Bugfix on + 0.2.0.x. + - Detect mismatched page sizes when using --enable-openbsd-malloc. + Bugfix on 0.2.0.x. Changes in version 0.2.0.21-rc - 2008-03-02 diff --git a/src/common/OpenBSD_malloc_Linux.c b/src/common/OpenBSD_malloc_Linux.c index 802517654a..7773c70ef0 100644 --- a/src/common/OpenBSD_malloc_Linux.c +++ b/src/common/OpenBSD_malloc_Linux.c @@ -95,7 +95,7 @@ static pthread_mutex_t gen_mutex = PTHREAD_MUTEX_INITIALIZER; #define _MALLOC_LOCK() {pthread_mutex_lock(&gen_mutex);} #define _MALLOC_UNLOCK() {pthread_mutex_unlock(&gen_mutex);} -#if defined(__sparc__) +#if defined(__sparc__) || defined(__alpha__) #define malloc_pageshift 13U #endif /* __sparc__ */ @@ -786,6 +786,13 @@ malloc_init(void) " Will not be able to dump malloc stats on exit"); #endif /* MALLOC_STATS */ + if (malloc_pagesize != getpagesize()) { + wrterror("malloc() replacement compiled with a different " + "page size from what we're running with. Failing."); + errno = ENOMEM; + return; + } + /* Allocate one page for the page directory. */ page_dir = (struct pginfo **)MMAP(malloc_pagesize);