From: Mathieu Desnoyers Date: Wed, 16 May 2012 18:30:09 +0000 (-0400) Subject: Fix mremap wrapper for NetBSD 5 X-Git-Tag: v0.7.0~4 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=c7eaf61c307ee909eb2dcebb956e73776f1a0441 Fix mremap wrapper for NetBSD 5 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 --- 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); /*