Message ID | 20210713073845.504356-7-siddhesh@sourceware.org |
---|---|
State | New |
Headers | show |
Series | malloc hooks removal | expand |
On 7/13/21 3:38 AM, Siddhesh Poyarekar wrote: > Now that mcheck no longer needs to check __malloc_initialized (and no > other third party hook can since the symbol is not exported), make the > variable boolean and static so that it is used strictly within malloc. OK for 2.34. Tested without regression on x86_64 and i686. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com> > --- > include/malloc.h | 6 ------ > malloc/arena.c | 12 ++++++------ > malloc/malloc.c | 24 ++++++++++++------------ > 3 files changed, 18 insertions(+), 24 deletions(-) > > diff --git a/include/malloc.h b/include/malloc.h > index b77761f74d..f9c9610548 100644 > --- a/include/malloc.h > +++ b/include/malloc.h > @@ -5,12 +5,6 @@ > # ifndef _ISOMAC > # include <rtld-malloc.h> > > -/* In the GNU libc we rename the global variable > - `__malloc_initialized' to `__libc_malloc_initialized'. */ > -#define __malloc_initialized __libc_malloc_initialized > -/* Nonzero if the malloc is already initialized. */ > -extern int __malloc_initialized attribute_hidden; OK. > - > struct malloc_state; > typedef struct malloc_state *mstate; > > diff --git a/malloc/arena.c b/malloc/arena.c > index 9111b49589..840426f9fb 100644 > --- a/malloc/arena.c > +++ b/malloc/arena.c > @@ -97,7 +97,7 @@ static mstate free_list; > __libc_lock_define_initialized (static, list_lock); > > /* Already initialized? */ > -int __malloc_initialized = -1; > +static bool __malloc_initialized = false; OK. > > /**************************************************************************/ > > @@ -143,7 +143,7 @@ int __malloc_initialized = -1; > void > __malloc_fork_lock_parent (void) > { > - if (__malloc_initialized < 1) > + if (!__malloc_initialized) OK. > return; > > /* We do not acquire free_list_lock here because we completely > @@ -163,7 +163,7 @@ __malloc_fork_lock_parent (void) > void > __malloc_fork_unlock_parent (void) > { > - if (__malloc_initialized < 1) > + if (!__malloc_initialized) > return; > > for (mstate ar_ptr = &main_arena;; ) > @@ -179,7 +179,7 @@ __malloc_fork_unlock_parent (void) > void > __malloc_fork_unlock_child (void) > { > - if (__malloc_initialized < 1) > + if (!__malloc_initialized) > return; > > /* Push all arenas to the free list, except thread_arena, which is > @@ -286,10 +286,10 @@ static void tcache_key_initialize (void); > static void > ptmalloc_init (void) > { > - if (__malloc_initialized >= 0) > + if (__malloc_initialized) > return; > > - __malloc_initialized = 0; > + __malloc_initialized = true; > > #if USE_TCACHE > tcache_key_initialize (); > diff --git a/malloc/malloc.c b/malloc/malloc.c > index cf71314b2b..ed0316e690 100644 > --- a/malloc/malloc.c > +++ b/malloc/malloc.c > @@ -3195,7 +3195,7 @@ __libc_malloc (size_t bytes) > _Static_assert (PTRDIFF_MAX <= SIZE_MAX / 2, > "PTRDIFF_MAX is not more than half of SIZE_MAX"); > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > #if USE_TCACHE > /* int_free also calls request2size, be careful to not pad twice. */ > @@ -3308,7 +3308,7 @@ __libc_realloc (void *oldmem, size_t bytes) > > void *newp; /* chunk to return */ > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > #if REALLOC_ZERO_BYTES_FREES > @@ -3444,7 +3444,7 @@ libc_hidden_def (__libc_realloc) > void * > __libc_memalign (size_t alignment, size_t bytes) > { > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > void *address = RETURN_ADDRESS (0); > @@ -3515,7 +3515,7 @@ libc_hidden_def (__libc_memalign) > void * > __libc_valloc (size_t bytes) > { > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > void *address = RETURN_ADDRESS (0); > @@ -3526,7 +3526,7 @@ __libc_valloc (size_t bytes) > void * > __libc_pvalloc (size_t bytes) > { > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > void *address = RETURN_ADDRESS (0); > @@ -3565,7 +3565,7 @@ __libc_calloc (size_t n, size_t elem_size) > > sz = bytes; > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > MAYBE_INIT_TCACHE (); > @@ -5022,7 +5022,7 @@ __malloc_trim (size_t s) > { > int result = 0; > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > mstate ar_ptr = &main_arena; > @@ -5157,7 +5157,7 @@ __libc_mallinfo2 (void) > struct mallinfo2 m; > mstate ar_ptr; > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > memset (&m, 0, sizeof (m)); > @@ -5208,7 +5208,7 @@ __malloc_stats (void) > mstate ar_ptr; > unsigned int in_use_b = mp_.mmapped_mem, system_b = in_use_b; > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > _IO_flockfile (stderr); > int old_flags2 = stderr->_flags2; > @@ -5377,7 +5377,7 @@ __libc_mallopt (int param_number, int value) > mstate av = &main_arena; > int res = 1; > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > __libc_lock_lock (av->mutex); > > @@ -5595,7 +5595,7 @@ __posix_memalign (void **memptr, size_t alignment, size_t size) > { > void *mem; > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > /* Test whether the SIZE argument is valid. It must be a power of > @@ -5639,7 +5639,7 @@ __malloc_info (int options, FILE *fp) > > > > - if (__malloc_initialized < 0) > + if (!__malloc_initialized) > ptmalloc_init (); > > fputs ("<malloc version=\"1\">\n", fp); > OK.
diff --git a/include/malloc.h b/include/malloc.h index b77761f74d..f9c9610548 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -5,12 +5,6 @@ # ifndef _ISOMAC # include <rtld-malloc.h> -/* In the GNU libc we rename the global variable - `__malloc_initialized' to `__libc_malloc_initialized'. */ -#define __malloc_initialized __libc_malloc_initialized -/* Nonzero if the malloc is already initialized. */ -extern int __malloc_initialized attribute_hidden; - struct malloc_state; typedef struct malloc_state *mstate; diff --git a/malloc/arena.c b/malloc/arena.c index 9111b49589..840426f9fb 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -97,7 +97,7 @@ static mstate free_list; __libc_lock_define_initialized (static, list_lock); /* Already initialized? */ -int __malloc_initialized = -1; +static bool __malloc_initialized = false; /**************************************************************************/ @@ -143,7 +143,7 @@ int __malloc_initialized = -1; void __malloc_fork_lock_parent (void) { - if (__malloc_initialized < 1) + if (!__malloc_initialized) return; /* We do not acquire free_list_lock here because we completely @@ -163,7 +163,7 @@ __malloc_fork_lock_parent (void) void __malloc_fork_unlock_parent (void) { - if (__malloc_initialized < 1) + if (!__malloc_initialized) return; for (mstate ar_ptr = &main_arena;; ) @@ -179,7 +179,7 @@ __malloc_fork_unlock_parent (void) void __malloc_fork_unlock_child (void) { - if (__malloc_initialized < 1) + if (!__malloc_initialized) return; /* Push all arenas to the free list, except thread_arena, which is @@ -286,10 +286,10 @@ static void tcache_key_initialize (void); static void ptmalloc_init (void) { - if (__malloc_initialized >= 0) + if (__malloc_initialized) return; - __malloc_initialized = 0; + __malloc_initialized = true; #if USE_TCACHE tcache_key_initialize (); diff --git a/malloc/malloc.c b/malloc/malloc.c index cf71314b2b..ed0316e690 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -3195,7 +3195,7 @@ __libc_malloc (size_t bytes) _Static_assert (PTRDIFF_MAX <= SIZE_MAX / 2, "PTRDIFF_MAX is not more than half of SIZE_MAX"); - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); #if USE_TCACHE /* int_free also calls request2size, be careful to not pad twice. */ @@ -3308,7 +3308,7 @@ __libc_realloc (void *oldmem, size_t bytes) void *newp; /* chunk to return */ - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); #if REALLOC_ZERO_BYTES_FREES @@ -3444,7 +3444,7 @@ libc_hidden_def (__libc_realloc) void * __libc_memalign (size_t alignment, size_t bytes) { - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); void *address = RETURN_ADDRESS (0); @@ -3515,7 +3515,7 @@ libc_hidden_def (__libc_memalign) void * __libc_valloc (size_t bytes) { - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); void *address = RETURN_ADDRESS (0); @@ -3526,7 +3526,7 @@ __libc_valloc (size_t bytes) void * __libc_pvalloc (size_t bytes) { - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); void *address = RETURN_ADDRESS (0); @@ -3565,7 +3565,7 @@ __libc_calloc (size_t n, size_t elem_size) sz = bytes; - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); MAYBE_INIT_TCACHE (); @@ -5022,7 +5022,7 @@ __malloc_trim (size_t s) { int result = 0; - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); mstate ar_ptr = &main_arena; @@ -5157,7 +5157,7 @@ __libc_mallinfo2 (void) struct mallinfo2 m; mstate ar_ptr; - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); memset (&m, 0, sizeof (m)); @@ -5208,7 +5208,7 @@ __malloc_stats (void) mstate ar_ptr; unsigned int in_use_b = mp_.mmapped_mem, system_b = in_use_b; - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); _IO_flockfile (stderr); int old_flags2 = stderr->_flags2; @@ -5377,7 +5377,7 @@ __libc_mallopt (int param_number, int value) mstate av = &main_arena; int res = 1; - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); __libc_lock_lock (av->mutex); @@ -5595,7 +5595,7 @@ __posix_memalign (void **memptr, size_t alignment, size_t size) { void *mem; - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); /* Test whether the SIZE argument is valid. It must be a power of @@ -5639,7 +5639,7 @@ __malloc_info (int options, FILE *fp) - if (__malloc_initialized < 0) + if (!__malloc_initialized) ptmalloc_init (); fputs ("<malloc version=\"1\">\n", fp);