X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b04c56f57e40cf69d1b3fd0982ebaf2bbf27df40..9e568a13c5bf3fea2a09bb4418f2465fa759af3b:/src/xbt/mmalloc/mm_legacy.c?ds=sidebyside diff --git a/src/xbt/mmalloc/mm_legacy.c b/src/xbt/mmalloc/mm_legacy.c index 1652eb4cbd..790ead6c56 100644 --- a/src/xbt/mmalloc/mm_legacy.c +++ b/src/xbt/mmalloc/mm_legacy.c @@ -123,10 +123,17 @@ static void __attribute__((constructor(101))) mm_legacy_constructor() if (__malloc_use_mmalloc) { __mmalloc_current_heap = mmalloc_preinit(); } else { +#if HAVE_DLFUNC + mm_real_realloc = (void *(*)(void *, size_t))dlfunc(RTLD_NEXT, "realloc"); + mm_real_malloc = (void *(*)(size_t))dlfunc(RTLD_NEXT, "malloc"); + mm_real_free = (void (*)(void *))dlfunc(RTLD_NEXT, "free"); + mm_real_calloc = (void *(*)(size_t, size_t))dlfunc(RTLD_NEXT, "calloc"); +#else mm_real_realloc = dlsym(RTLD_NEXT, "realloc"); mm_real_malloc = dlsym(RTLD_NEXT, "malloc"); mm_real_free = dlsym(RTLD_NEXT, "free"); mm_real_calloc = dlsym(RTLD_NEXT, "calloc"); +#endif } mm_initializing = 0; mm_initialized = 1;