Przeglądaj źródła

add support for the rest of the glibc hooks

Ioannis Koutras 11 lat temu
rodzic
commit
d838e80e31
2 zmienionych plików z 9 dodań i 4 usunięć
  1. 2 3
      src/CMakeLists.txt
  2. 7 1
      src/glibc_hooks.c

+ 2 - 3
src/CMakeLists.txt

@@ -227,10 +227,9 @@ if(PARSE_ENV)
   set(dmmlib_SRCS ${dmmlib_SRCS} parse_env.c)
 endif(PARSE_ENV)
 
-if(WITH_GLIBC_HOOKS AND WITH_MEMALIGN)
-# Currently there is a hook on memalign only
+if(WITH_GLIBC_HOOKS)
   set(dmmlib_SRCS ${dmmlib_SRCS} glibc_hooks.c)
-endif(WITH_GLIBC_HOOKS AND WITH_MEMALIGN)
+endif(WITH_GLIBC_HOOKS)
 
 include_directories(
   ${DMMLIB_PUBLIC_INCLUDE_DIRS}

+ 7 - 1
src/glibc_hooks.c

@@ -28,7 +28,7 @@
 #if (defined(__GLIBC__) && !defined(__UCLIBC__))
 
 #include <stddef.h>
-#include <dmmlib/memalign.h>
+#include <dmmlib/dmmlib.h>
 
 /*
  * glibc provides the RTLD_DEEPBIND flag for dlopen which can make it possible
@@ -39,6 +39,12 @@
  * passed an extra argument for the caller return address, which will be
  * ignored.
  */
+
+void (* __free_hook)(void *ptr) = free;
+void *(* __malloc_hook)(size_t size) = malloc;
+void *(* __realloc_hook)(void *ptr, size_t size) = realloc;
+#ifdef WITH_MEMALIGN
 void *(* __memalign_hook)(size_t alignment, size_t size) = memalign;
+#endif /* WITH_MEMALIGN */
 
 #endif /* __GLIBC__ && !__UCLIBC__ */