diff --git a/ChangeLog b/ChangeLog index 1899b666fc..d816d28c70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,10 @@ Changes in version 0.2.1.1-alpha - 2008-??-?? - 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. o Minor features: - Allow separate log levels to be configured for different logging diff --git a/src/common/OpenBSD_malloc_Linux.c b/src/common/OpenBSD_malloc_Linux.c index da240c8e7e..7252ead784 100644 --- a/src/common/OpenBSD_malloc_Linux.c +++ b/src/common/OpenBSD_malloc_Linux.c @@ -96,7 +96,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__ */ @@ -787,6 +787,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);