From 57b07bede12635bd6d6aa0e488824bb510bbeca4 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Thu, 22 Jul 2021 18:37:54 +0530 Subject: [PATCH] Remove __after_morecore_hook Remove __after_morecore_hook from the API and finalize the symbol so that it can no longer be used in new applications. Old applications using __after_morecore_hook will find that their hook is no longer called. Reviewed-by: Carlos O'Donell Tested-by: Carlos O'Donell --- malloc/hooks.c | 5 +++++ malloc/malloc.c | 22 +--------------------- malloc/malloc.h | 3 --- 3 files changed, 6 insertions(+), 24 deletions(-) diff --git a/malloc/hooks.c b/malloc/hooks.c index daa5c7cfae..45c91d6502 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -17,6 +17,11 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34) +void weak_variable (*__after_morecore_hook) (void) = NULL; +compat_symbol (libc, __after_morecore_hook, __after_morecore_hook, GLIBC_2_0); +#endif + /* Hooks for debugging versions. The initial hooks just call the initialization routine, then do the normal work. */ diff --git a/malloc/malloc.c b/malloc/malloc.c index 154f6b460c..24e7854a0e 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -2041,8 +2041,6 @@ void *weak_variable (*__realloc_hook) void *weak_variable (*__memalign_hook) (size_t __alignment, size_t __size, const void *) = memalign_hook_ini; -void weak_variable (*__after_morecore_hook) (void) = NULL; - /* This function is called from the arena shutdown hook, to free the thread cache (if it exists). */ static void tcache_thread_shutdown (void); @@ -2668,14 +2666,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) LIBC_PROBE (memory_sbrk_more, 2, brk, size); } - if (brk != (char *) (MORECORE_FAILURE)) - { - /* Call the `morecore' hook if necessary. */ - void (*hook) (void) = atomic_forced_read (__after_morecore_hook); - if (__builtin_expect (hook != NULL, 0)) - (*hook)(); - } - else + if (brk == (char *) (MORECORE_FAILURE)) { /* If have mmap, try using it as a backup when MORECORE fails or @@ -2814,13 +2805,6 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) correction = 0; snd_brk = (char *) (MORECORE (0)); } - else - { - /* Call the `morecore' hook if necessary. */ - void (*hook) (void) = atomic_forced_read (__after_morecore_hook); - if (__builtin_expect (hook != NULL, 0)) - (*hook)(); - } } /* handle non-contiguous cases */ @@ -2979,10 +2963,6 @@ systrim (size_t pad, mstate av) */ MORECORE (-extra); - /* Call the `morecore' hook if necessary. */ - void (*hook) (void) = atomic_forced_read (__after_morecore_hook); - if (__builtin_expect (hook != NULL, 0)) - (*hook)(); new_brk = (char *) (MORECORE (0)); LIBC_PROBE (memory_sbrk_less, 2, new_brk, extra); diff --git a/malloc/malloc.h b/malloc/malloc.h index c1c0896d29..634b7db868 100644 --- a/malloc/malloc.h +++ b/malloc/malloc.h @@ -179,9 +179,6 @@ extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t __alignment, size_t __size, const void *) __MALLOC_DEPRECATED; -extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void) - __MALLOC_DEPRECATED; - __END_DECLS #endif /* malloc.h */