From 7d17596c198f11fa85cbcf9587443f262e63b616 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 29 May 2011 21:10:23 -0400 Subject: [PATCH] Mark malloc hook variables as deprecated --- ChangeLog | 2 ++ NEWS | 5 +++++ malloc/malloc.h | 20 ++++++++++++++------ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5fb62a630b..796646e1c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2011-05-29 Ulrich Drepper + * malloc/malloc.h: Mark malloc hook variables as deprecated. + [BZ #11781] * malloc/malloc.h: Declare malloc hook variables as volatile. diff --git a/NEWS b/NEWS index f95fcd2bea..a3e4464061 100644 --- a/NEWS +++ b/NEWS @@ -39,6 +39,11 @@ Version 2.14 * New program sotruss to trace calls through PLTs Implemented by Ulrich Drepper. + +* The malloc hook implementation is marked deprecated and will be removed + from the default implementation in the next version. The design never + worked ever since the introduction of threads. Even programs which do + not create threads themselves can use multiple threads created internally. Version 2.13 diff --git a/malloc/malloc.h b/malloc/malloc.h index e8f6068c1f..3a43f7cfdb 100644 --- a/malloc/malloc.h +++ b/malloc/malloc.h @@ -39,8 +39,10 @@ # ifdef _LIBC # define __MALLOC_HOOK_VOLATILE +# define __MALLOC_DEPRECATED # else # define __MALLOC_HOOK_VOLATILE __volatile +# define __MALLOC_DEPRECATED __attribute_deprecated__ # endif #else /* Not GCC. */ @@ -48,6 +50,7 @@ # define __MALLOC_P(args) args # define __MALLOC_PMT(args) args # define __MALLOC_HOOK_VOLATILE +# define __MALLOC_DEPRECATED __attribute_deprecated__ #endif /* GCC. */ @@ -164,22 +167,27 @@ extern int malloc_set_state (void *__ptr) __THROW; /* Called once when malloc is initialized; redefining this variable in the application provides the preferred way to set up the hook pointers. */ -extern void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void); +extern void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void) + __MALLOC_DEPRECATED; /* Hooks for debugging and user-defined versions. */ extern void (*__MALLOC_HOOK_VOLATILE __free_hook) (void *__ptr, - __const __malloc_ptr_t); + __const __malloc_ptr_t) + __MALLOC_DEPRECATED; extern void *(*__MALLOC_HOOK_VOLATILE __malloc_hook) (size_t __size, - __const __malloc_ptr_t); + __const __malloc_ptr_t) + __MALLOC_DEPRECATED; extern void *(*__MALLOC_HOOK_VOLATILE __realloc_hook) (void *__ptr, size_t __size, - __const __malloc_ptr_t); + __const __malloc_ptr_t) + __MALLOC_DEPRECATED; extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook) (size_t __alignment, size_t __size, - __const __malloc_ptr_t); + __const __malloc_ptr_t) + __MALLOC_DEPRECATED; extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); /* Activate a standard set of debugging hooks. */ -extern void __malloc_check_init (void) __THROW; +extern void __malloc_check_init (void) __THROW __MALLOC_DEPRECATED; __END_DECLS