From c7eaf61c307ee909eb2dcebb956e73776f1a0441 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 16 May 2012 14:30:09 -0400 Subject: [PATCH] Fix mremap wrapper for NetBSD 5 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit NetBSD 5 implements a mremap with a different semantic. Rename our wrapper symbol name so it does not clash with the NetBSD 5 symbol. Eventually, we could envision doing a special-case that uses the NetBSD 5 version instead of the fallback, but let's first get it working before going into optimization land. Suggested-by: Marek Vavruša Signed-off-by: Mathieu Desnoyers --- urcu-bp.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/urcu-bp.c b/urcu-bp.c index bb657d7..7c91e0a 100644 --- a/urcu-bp.c +++ b/urcu-bp.c @@ -51,7 +51,14 @@ #define MAP_ANONYMOUS MAP_ANON #endif -#ifndef __linux__ +#ifdef __linux__ +static +void *mremap_wrapper(void *old_address, size_t old_size, + size_t new_size, int flags) +{ + return mremap(old_address, old_size, new_size, flags); +} +#else #define MREMAP_MAYMOVE 1 #define MREMAP_FIXED 2 @@ -60,7 +67,9 @@ * mremap wrapper for non-Linux systems. Maps a RW, anonymous private mapping. * This is not generic. */ -void *mremap(void *old_address, size_t old_size, size_t new_size, int flags) +static +void *mremap_wrapper(void *old_address, size_t old_size, + size_t new_size, int flags) { void *new_address; @@ -284,8 +293,8 @@ static void resize_arena(struct registry_arena *arena, size_t len) MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); else - new_arena = mremap(arena->p, arena->len, - len, MREMAP_MAYMOVE); + new_arena = mremap_wrapper(arena->p, arena->len, + len, MREMAP_MAYMOVE); assert(new_arena != MAP_FAILED); /* -- 2.34.1