From: Carlos O'Donell <carlos@redhat.com>
To: Siddhesh Poyarekar <siddhesh@sourceware.org>, libc-alpha@sourceware.org
Cc: dj@redhat.com, fweimer@redhat.com
Subject: Re: [PATCH v10 09/11] Move malloc_{g,s}et_state to libc_malloc_debug
Date: Thu, 22 Jul 2021 08:25:37 -0400 [thread overview]
Message-ID: <584e618b-adfd-1b98-17bb-f73c7f89f502@redhat.com> (raw)
In-Reply-To: <20210719184637.1225275-10-siddhesh@sourceware.org>
On 7/19/21 2:46 PM, Siddhesh Poyarekar wrote:
> These deprecated functions are only safe to call from
> __malloc_initialize_hook and as a result, are not useful in the
> general case. Move the implementations to libc_malloc_debug so that
> existing binaries that need it will now have to preload the debug DSO
> to work correctly.
>
> This also allows simplification of the core malloc implementation by
> dropping all the undumping support code that was added to make
> malloc_set_state work.
>
> One known breakage is that of ancient emacs binaries that depend on
> this. They will now crash when running with this libc. With
> LD_BIND_NOW=1, it will terminate immediately because of not being able
> to find malloc_set_state but with lazy binding it will crash in
> unpredictable ways. It will need a preloaded libc_malloc_debug.so so
> that its initialization hook is executed to allow its malloc
> implementation to work properly.
OK for 2.34.
Tested without regression for x86_64 and i686.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
> ---
> NEWS | 5 +
> malloc/Makefile | 5 +
> malloc/Versions | 4 +-
> malloc/hooks.c | 114 -----------
> malloc/malloc-debug.c | 182 +++++++++++++++++-
> malloc/malloc.c | 55 +-----
> sysdeps/mach/hurd/i386/libc.abilist | 2 -
> .../mach/hurd/i386/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 -
> .../linux/aarch64/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 -
> .../linux/alpha/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 -
> .../linux/arm/be/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 -
> .../linux/arm/le/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 -
> .../sysv/linux/hppa/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 -
> .../sysv/linux/i386/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 -
> .../sysv/linux/ia64/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 -
> .../m68k/coldfire/libc_malloc_debug.abilist | 2 +
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 -
> .../m68k/m680x0/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/microblaze/be/libc.abilist | 2 -
> .../microblaze/be/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/microblaze/le/libc.abilist | 2 -
> .../microblaze/le/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 -
> .../mips/mips32/fpu/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 -
> .../mips32/nofpu/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 -
> .../mips/mips64/n32/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 -
> .../mips/mips64/n64/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 -
> .../linux/nios2/libc_malloc_debug.abilist | 2 +
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 -
> .../powerpc32/fpu/libc_malloc_debug.abilist | 2 +
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 -
> .../powerpc32/nofpu/libc_malloc_debug.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 -
> .../powerpc64/be/libc_malloc_debug.abilist | 2 +
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 -
> .../powerpc64/le/libc_malloc_debug.abilist | 2 +
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 -
> .../s390/s390-32/libc_malloc_debug.abilist | 2 +
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 -
> .../s390/s390-64/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 -
> .../linux/sh/be/libc_malloc_debug.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 -
> .../linux/sh/le/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 -
> .../sparc/sparc32/libc_malloc_debug.abilist | 2 +
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 -
> .../sparc/sparc64/libc_malloc_debug.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 -
> .../linux/x86_64/64/libc_malloc_debug.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 -
> .../x86_64/x32/libc_malloc_debug.abilist | 2 +
> 64 files changed, 256 insertions(+), 225 deletions(-)
>
> diff --git a/NEWS b/NEWS
> index fa80c9685b..e26a9e2c17 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -138,6 +138,11 @@ Deprecated and removed features, and other changes affecting compatibility:
> features now need to preload a new debugging DSO libc_malloc_debug.so to get
> this functionality back.
>
> +* The deprecated functions malloc_get_state and malloc_set_state have been
> + moved from the core C library into libc_malloc_debug.so. Legacy applications
> + that still use these functions will now need to preload libc_malloc_debug.so
> + in their environment using the LD_PRELOAD environment variable.
> +
> Changes to build and runtime requirements:
>
> * On Linux, the shm_open, sem_open, and related functions now expect the
> diff --git a/malloc/Makefile b/malloc/Makefile
> index 4099d63a2a..a2b4383b68 100644
> --- a/malloc/Makefile
> +++ b/malloc/Makefile
> @@ -330,3 +330,8 @@ tst-compathooks-on-malloc-check-ENV = \
> LD_PRELOAD=$(objpfx)libc_malloc_debug.so
> tst-mallocstate-ENV = LD_PRELOAD=$(objpfx)libc_malloc_debug.so
> tst-mallocstate-malloc-check-ENV = LD_PRELOAD=$(objpfx)libc_malloc_debug.so
> +
> +# The test needs malloc_get_state/malloc_set_state which is in
> +# libc_malloc_debug.so.
> +$(objpfx)tst-mallocstate: $(objpfx)libc_malloc_debug.so
> +$(objpfx)tst-mallocstate-malloc-check: $(objpfx)libc_malloc_debug.so
> diff --git a/malloc/Versions b/malloc/Versions
> index cbb73d18c1..0a0bcf4bb5 100644
> --- a/malloc/Versions
> +++ b/malloc/Versions
> @@ -25,7 +25,7 @@ libc {
> free;
>
> # m*
> - mallinfo; malloc; malloc_get_state; malloc_set_state; malloc_stats;
> + mallinfo; malloc; malloc_stats;
> malloc_trim; malloc_usable_size; mallopt; mcheck; memalign; mprobe; mtrace;
> muntrace;
>
> @@ -121,6 +121,8 @@ libc_malloc_debug {
> muntrace;
>
> mallinfo;
> + malloc_get_state;
> + malloc_set_state;
> malloc_stats;
> malloc_trim;
> malloc_usable_size;
> diff --git a/malloc/hooks.c b/malloc/hooks.c
> index 6c212fbc21..8e1afe55e5 100644
> --- a/malloc/hooks.c
> +++ b/malloc/hooks.c
> @@ -39,120 +39,6 @@ void *weak_variable (*__malloc_hook) (size_t, const void *) = NULL;
> void *weak_variable (*__realloc_hook) (void *, size_t, const void *) = NULL;
> void *weak_variable (*__memalign_hook) (size_t, size_t, const void *) = NULL;
>
> -#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_25)
> -
> -/* Support for restoring dumped heaps contained in historic Emacs
> - executables. The heap saving feature (malloc_get_state) is no
> - longer implemented in this version of glibc, but we have a heap
> - rewriter in malloc_set_state which transforms the heap into a
> - version compatible with current malloc. */
> -
> -#define MALLOC_STATE_MAGIC 0x444c4541l
> -#define MALLOC_STATE_VERSION (0 * 0x100l + 5l) /* major*0x100 + minor */
> -
> -struct malloc_save_state
> -{
> - long magic;
> - long version;
> - mbinptr av[NBINS * 2 + 2];
> - char *sbrk_base;
> - int sbrked_mem_bytes;
> - unsigned long trim_threshold;
> - unsigned long top_pad;
> - unsigned int n_mmaps_max;
> - unsigned long mmap_threshold;
> - int check_action;
> - unsigned long max_sbrked_mem;
> - unsigned long max_total_mem; /* Always 0, for backwards compatibility. */
> - unsigned int n_mmaps;
> - unsigned int max_n_mmaps;
> - unsigned long mmapped_mem;
> - unsigned long max_mmapped_mem;
> - int using_malloc_checking;
> - unsigned long max_fast;
> - unsigned long arena_test;
> - unsigned long arena_max;
> - unsigned long narenas;
> -};
> -
> -/* Dummy implementation which always fails. We need to provide this
> - symbol so that existing Emacs binaries continue to work with
> - BIND_NOW. */
> -void *
> -attribute_compat_text_section
> -malloc_get_state (void)
> -{
> - __set_errno (ENOSYS);
> - return NULL;
> -}
> -compat_symbol (libc, malloc_get_state, malloc_get_state, GLIBC_2_0);
> -
> -int
> -attribute_compat_text_section
> -malloc_set_state (void *msptr)
> -{
> - struct malloc_save_state *ms = (struct malloc_save_state *) msptr;
> -
> - if (ms->magic != MALLOC_STATE_MAGIC)
> - return -1;
> -
> - /* Must fail if the major version is too high. */
> - if ((ms->version & ~0xffl) > (MALLOC_STATE_VERSION & ~0xffl))
> - return -2;
> -
> - /* We do not need to perform locking here because malloc_set_state
> - must be called before the first call into the malloc subsytem
> - (usually via __malloc_initialize_hook). pthread_create always
> - calls calloc and thus must be called only afterwards, so there
> - cannot be more than one thread when we reach this point. */
> -
> - /* Patch the dumped heap. We no longer try to integrate into the
> - existing heap. Instead, we mark the existing chunks as mmapped.
> - Together with the update to dumped_main_arena_start and
> - dumped_main_arena_end, realloc and free will recognize these
> - chunks as dumped fake mmapped chunks and never free them. */
> -
> - /* Find the chunk with the lowest address with the heap. */
> - mchunkptr chunk = NULL;
> - {
> - size_t *candidate = (size_t *) ms->sbrk_base;
> - size_t *end = (size_t *) (ms->sbrk_base + ms->sbrked_mem_bytes);
> - while (candidate < end)
> - if (*candidate != 0)
> - {
> - chunk = mem2chunk ((void *) (candidate + 1));
> - break;
> - }
> - else
> - ++candidate;
> - }
> - if (chunk == NULL)
> - return 0;
> -
> - /* Iterate over the dumped heap and patch the chunks so that they
> - are treated as fake mmapped chunks. */
> - mchunkptr top = ms->av[2];
> - while (chunk < top)
> - {
> - if (inuse (chunk))
> - {
> - /* Mark chunk as mmapped, to trigger the fallback path. */
> - size_t size = chunksize (chunk);
> - set_head (chunk, size | IS_MMAPPED);
> - }
> - chunk = next_chunk (chunk);
> - }
> -
> - /* The dumped fake mmapped chunks all lie in this address range. */
> - dumped_main_arena_start = (mchunkptr) ms->sbrk_base;
> - dumped_main_arena_end = top;
> -
> - return 0;
> -}
> -compat_symbol (libc, malloc_set_state, malloc_set_state, GLIBC_2_0);
> -
> -#endif /* SHLIB_COMPAT */
> -
> /*
> * Local variables:
> * c-basic-offset: 2
> diff --git a/malloc/malloc-debug.c b/malloc/malloc-debug.c
> index f5290aaa6d..b7744460e9 100644
> --- a/malloc/malloc-debug.c
> +++ b/malloc/malloc-debug.c
> @@ -145,6 +145,19 @@ memalign_hook_ini (size_t alignment, size_t sz, const void *caller)
>
> static size_t pagesize;
>
> +/* These variables are used for undumping support. Chunked are marked
> + as using mmap, but we leave them alone if they fall into this
> + range. NB: The chunk size for these chunks only includes the
> + initial size field (of SIZE_SZ bytes), there is no trailing size
> + field (unlike with regular mmapped chunks). */
> +static mchunkptr dumped_main_arena_start; /* Inclusive. */
> +static mchunkptr dumped_main_arena_end; /* Exclusive. */
> +
> +/* True if the pointer falls into the dumped arena. Use this after
> + chunk_is_mmapped indicates a chunk is mmapped. */
> +#define DUMPED_MAIN_ARENA_CHUNK(p) \
> + ((p) >= dumped_main_arena_start && (p) < dumped_main_arena_end)
> +
> /* The allocator functions. */
>
> static void *
> @@ -184,7 +197,9 @@ __debug_free (void *mem)
> if (__is_malloc_debug_enabled (MALLOC_MCHECK_HOOK))
> mem = free_mcheck (mem);
>
> - if (__is_malloc_debug_enabled (MALLOC_CHECK_HOOK))
> + if (DUMPED_MAIN_ARENA_CHUNK (mem2chunk (mem)))
> + /* Do nothing. */;
> + else if (__is_malloc_debug_enabled (MALLOC_CHECK_HOOK))
> free_check (mem);
> else
> __libc_free (mem);
> @@ -207,7 +222,32 @@ __debug_realloc (void *oldmem, size_t bytes)
> if ((!__is_malloc_debug_enabled (MALLOC_MCHECK_HOOK)
> || !realloc_mcheck_before (&oldmem, &bytes, &oldsize, &victim)))
> {
> - if (__is_malloc_debug_enabled (MALLOC_CHECK_HOOK))
> + mchunkptr oldp = mem2chunk (oldmem);
> +
> + /* If this is a faked mmapped chunk from the dumped main arena,
> + always make a copy (and do not free the old chunk). */
> + if (DUMPED_MAIN_ARENA_CHUNK (oldp))
> + {
> + if (bytes == 0 && oldmem != NULL)
> + victim = NULL;
> + else
> + {
> + const INTERNAL_SIZE_T osize = chunksize (oldp);
> + /* Must alloc, copy, free. */
> + victim = __debug_malloc (bytes);
> + /* Copy as many bytes as are available from the old chunk
> + and fit into the new size. NB: The overhead for faked
> + mmapped chunks is only SIZE_SZ, not CHUNK_HDR_SZ as for
> + regular mmapped chunks. */
> + if (victim != NULL)
> + {
> + if (bytes > osize - SIZE_SZ)
> + bytes = osize - SIZE_SZ;
> + memcpy (victim, oldmem, bytes);
> + }
> + }
> + }
> + else if (__is_malloc_debug_enabled (MALLOC_CHECK_HOOK))
> victim = realloc_check (oldmem, bytes);
> else
> victim = __libc_realloc (oldmem, bytes);
> @@ -357,6 +397,13 @@ malloc_usable_size (void *mem)
> if (__is_malloc_debug_enabled (MALLOC_CHECK_HOOK))
> return malloc_check_get_size (mem);
>
> + if (mem != NULL)
> + {
> + mchunkptr p = mem2chunk (mem);
> + if (DUMPED_MAIN_ARENA_CHUNK (p))
> + return chunksize (p) - SIZE_SZ;
> + }
> +
> return musable (mem);
> }
>
> @@ -453,3 +500,134 @@ malloc_trim (size_t s)
>
> return LIBC_SYMBOL (malloc_trim) (s);
> }
> +
> +#if SHLIB_COMPAT (libc_malloc_debug, GLIBC_2_0, GLIBC_2_25)
> +
> +/* Support for restoring dumped heaps contained in historic Emacs
> + executables. The heap saving feature (malloc_get_state) is no
> + longer implemented in this version of glibc, but we have a heap
> + rewriter in malloc_set_state which transforms the heap into a
> + version compatible with current malloc. */
> +
> +#define MALLOC_STATE_MAGIC 0x444c4541l
> +#define MALLOC_STATE_VERSION (0 * 0x100l + 5l) /* major*0x100 + minor */
> +
> +struct malloc_save_state
> +{
> + long magic;
> + long version;
> + mbinptr av[NBINS * 2 + 2];
> + char *sbrk_base;
> + int sbrked_mem_bytes;
> + unsigned long trim_threshold;
> + unsigned long top_pad;
> + unsigned int n_mmaps_max;
> + unsigned long mmap_threshold;
> + int check_action;
> + unsigned long max_sbrked_mem;
> + unsigned long max_total_mem; /* Always 0, for backwards compatibility. */
> + unsigned int n_mmaps;
> + unsigned int max_n_mmaps;
> + unsigned long mmapped_mem;
> + unsigned long max_mmapped_mem;
> + int using_malloc_checking;
> + unsigned long max_fast;
> + unsigned long arena_test;
> + unsigned long arena_max;
> + unsigned long narenas;
> +};
> +
> +/* Dummy implementation which always fails. We need to provide this
> + symbol so that existing Emacs binaries continue to work with
> + BIND_NOW. */
> +void *
> +malloc_get_state (void)
> +{
> + __set_errno (ENOSYS);
> + return NULL;
> +}
> +compat_symbol (libc_malloc_debug, malloc_get_state, malloc_get_state,
> + GLIBC_2_0);
> +
> +int
> +malloc_set_state (void *msptr)
> +{
> + struct malloc_save_state *ms = (struct malloc_save_state *) msptr;
> +
> + if (ms->magic != MALLOC_STATE_MAGIC)
> + return -1;
> +
> + /* Must fail if the major version is too high. */
> + if ((ms->version & ~0xffl) > (MALLOC_STATE_VERSION & ~0xffl))
> + return -2;
> +
> + if (debug_initialized == 1)
> + return -1;
> +
> + bool check_was_enabled = __is_malloc_debug_enabled (MALLOC_CHECK_HOOK);
> +
> + /* It's not too late, so disable MALLOC_CHECK_ and all of the hooks. */
> + __malloc_hook = NULL;
> + __realloc_hook = NULL;
> + __free_hook = NULL;
> + __memalign_hook = NULL;
> + __malloc_debug_disable (MALLOC_CHECK_HOOK);
> +
> + /* We do not need to perform locking here because malloc_set_state
> + must be called before the first call into the malloc subsytem (usually via
> + __malloc_initialize_hook). pthread_create always calls calloc and thus
> + must be called only afterwards, so there cannot be more than one thread
> + when we reach this point. Also handle initialization if either we ended
> + up being called before the first malloc or through the hook when
> + malloc-check was enabled. */
> + if (debug_initialized < 0)
> + generic_hook_ini ();
> + else if (check_was_enabled)
> + __libc_free (__libc_malloc (0));
> +
> + /* Patch the dumped heap. We no longer try to integrate into the
> + existing heap. Instead, we mark the existing chunks as mmapped.
> + Together with the update to dumped_main_arena_start and
> + dumped_main_arena_end, realloc and free will recognize these
> + chunks as dumped fake mmapped chunks and never free them. */
> +
> + /* Find the chunk with the lowest address with the heap. */
> + mchunkptr chunk = NULL;
> + {
> + size_t *candidate = (size_t *) ms->sbrk_base;
> + size_t *end = (size_t *) (ms->sbrk_base + ms->sbrked_mem_bytes);
> + while (candidate < end)
> + if (*candidate != 0)
> + {
> + chunk = mem2chunk ((void *) (candidate + 1));
> + break;
> + }
> + else
> + ++candidate;
> + }
> + if (chunk == NULL)
> + return 0;
> +
> + /* Iterate over the dumped heap and patch the chunks so that they
> + are treated as fake mmapped chunks. */
> + mchunkptr top = ms->av[2];
> + while (chunk < top)
> + {
> + if (inuse (chunk))
> + {
> + /* Mark chunk as mmapped, to trigger the fallback path. */
> + size_t size = chunksize (chunk);
> + set_head (chunk, size | IS_MMAPPED);
> + }
> + chunk = next_chunk (chunk);
> + }
> +
> + /* The dumped fake mmapped chunks all lie in this address range. */
> + dumped_main_arena_start = (mchunkptr) ms->sbrk_base;
> + dumped_main_arena_end = top;
> +
> + return 0;
> +}
> +compat_symbol (libc_malloc_debug, malloc_set_state, malloc_set_state,
> + GLIBC_2_0);
> +#endif
> diff --git a/malloc/malloc.c b/malloc/malloc.c
> index b8fcb2f2d3..38b649fcba 100644
> --- a/malloc/malloc.c
> +++ b/malloc/malloc.c
> @@ -1921,19 +1921,6 @@ static struct malloc_state main_arena =
> .attached_threads = 1
> };
>
> -/* These variables are used for undumping support. Chunked are marked
> - as using mmap, but we leave them alone if they fall into this
> - range. NB: The chunk size for these chunks only includes the
> - initial size field (of SIZE_SZ bytes), there is no trailing size
> - field (unlike with regular mmapped chunks). */
> -static mchunkptr dumped_main_arena_start; /* Inclusive. */
> -static mchunkptr dumped_main_arena_end; /* Exclusive. */
> -
> -/* True if the pointer falls into the dumped arena. Use this after
> - chunk_is_mmapped indicates a chunk is mmapped. */
> -#define DUMPED_MAIN_ARENA_CHUNK(p) \
> - ((p) >= dumped_main_arena_start && (p) < dumped_main_arena_end)
> -
> /* There is only one instance of the malloc parameters. */
>
> static struct malloc_par mp_ =
> @@ -2083,7 +2070,7 @@ do_check_chunk (mstate av, mchunkptr p)
> assert (prev_inuse (p));
> }
> }
> - else if (!DUMPED_MAIN_ARENA_CHUNK (p))
> + else
> {
> /* address is outside main heap */
> if (contiguous (av) && av->top != initial_top (av))
> @@ -2948,11 +2935,6 @@ munmap_chunk (mchunkptr p)
>
> assert (chunk_is_mmapped (p));
>
> - /* Do nothing if the chunk is a faked mmapped chunk in the dumped
> - main arena. We never free this memory. */
> - if (DUMPED_MAIN_ARENA_CHUNK (p))
> - return;
> -
> uintptr_t mem = (uintptr_t) chunk2mem (p);
> uintptr_t block = (uintptr_t) p - prev_size (p);
> size_t total_size = prev_size (p) + size;
> @@ -3275,8 +3257,7 @@ __libc_free (void *mem)
> Dumped fake mmapped chunks do not affect the threshold. */
> if (!mp_.no_dyn_threshold
> && chunksize_nomask (p) > mp_.mmap_threshold
> - && chunksize_nomask (p) <= DEFAULT_MMAP_THRESHOLD_MAX
> - && !DUMPED_MAIN_ARENA_CHUNK (p))
> + && chunksize_nomask (p) <= DEFAULT_MMAP_THRESHOLD_MAX)
> {
> mp_.mmap_threshold = chunksize (p);
> mp_.trim_threshold = 2 * mp_.mmap_threshold;
> @@ -3343,12 +3324,9 @@ __libc_realloc (void *oldmem, size_t bytes)
> /* Little security check which won't hurt performance: the allocator
> never wrapps around at the end of the address space. Therefore
> we can exclude some size values which might appear here by
> - accident or by "design" from some intruder. We need to bypass
> - this check for dumped fake mmap chunks from the old main arena
> - because the new malloc may provide additional alignment. */
> + accident or by "design" from some intruder. */
> if ((__builtin_expect ((uintptr_t) oldp > (uintptr_t) -oldsize, 0)
> - || __builtin_expect (misaligned_chunk (oldp), 0))
> - && !DUMPED_MAIN_ARENA_CHUNK (oldp))
> + || __builtin_expect (misaligned_chunk (oldp), 0)))
> malloc_printerr ("realloc(): invalid pointer");
>
> if (!checked_request2size (bytes, &nb))
> @@ -3359,24 +3337,6 @@ __libc_realloc (void *oldmem, size_t bytes)
>
> if (chunk_is_mmapped (oldp))
> {
> - /* If this is a faked mmapped chunk from the dumped main arena,
> - always make a copy (and do not free the old chunk). */
> - if (DUMPED_MAIN_ARENA_CHUNK (oldp))
> - {
> - /* Must alloc, copy, free. */
> - void *newmem = __libc_malloc (bytes);
> - if (newmem == 0)
> - return NULL;
> - /* Copy as many bytes as are available from the old chunk
> - and fit into the new size. NB: The overhead for faked
> - mmapped chunks is only SIZE_SZ, not CHUNK_HDR_SZ as for
> - regular mmapped chunks. */
> - if (bytes > oldsize - SIZE_SZ)
> - bytes = oldsize - SIZE_SZ;
> - memcpy (newmem, oldmem, bytes);
> - return newmem;
> - }
> -
> void *newmem;
>
> #if HAVE_MREMAP
> @@ -5056,12 +5016,7 @@ musable (void *mem)
> p = mem2chunk (mem);
>
> if (chunk_is_mmapped (p))
> - {
> - if (DUMPED_MAIN_ARENA_CHUNK (p))
> - result = chunksize (p) - SIZE_SZ;
> - else
> - result = chunksize (p) - CHUNK_HDR_SZ;
> - }
> + result = chunksize (p) - CHUNK_HDR_SZ;
> else if (inuse (p))
> result = memsize (p);
>
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index b337d0d45b..c5da10a0cd 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -1267,8 +1267,6 @@ GLIBC_2.2.6 madvise F
> GLIBC_2.2.6 makecontext F
> GLIBC_2.2.6 mallinfo F
> GLIBC_2.2.6 malloc F
> -GLIBC_2.2.6 malloc_get_state F
> -GLIBC_2.2.6 malloc_set_state F
> GLIBC_2.2.6 malloc_stats F
> GLIBC_2.2.6 malloc_trim F
> GLIBC_2.2.6 malloc_usable_size F
> diff --git a/sysdeps/mach/hurd/i386/libc_malloc_debug.abilist b/sysdeps/mach/hurd/i386/libc_malloc_debug.abilist
> index c1ff86dfbd..e1d9b10b22 100644
> --- a/sysdeps/mach/hurd/i386/libc_malloc_debug.abilist
> +++ b/sysdeps/mach/hurd/i386/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2.6 calloc F
> GLIBC_2.2.6 free F
> GLIBC_2.2.6 mallinfo F
> GLIBC_2.2.6 malloc F
> +GLIBC_2.2.6 malloc_get_state F
> +GLIBC_2.2.6 malloc_set_state F
> GLIBC_2.2.6 malloc_stats F
> GLIBC_2.2.6 malloc_trim F
> GLIBC_2.2.6 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 8d49fc0835..21a2e50a88 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1324,9 +1324,7 @@ GLIBC_2.17 madvise F
> GLIBC_2.17 makecontext F
> GLIBC_2.17 mallinfo F
> GLIBC_2.17 malloc F
> -GLIBC_2.17 malloc_get_state F
> GLIBC_2.17 malloc_info F
> -GLIBC_2.17 malloc_set_state F
> GLIBC_2.17 malloc_stats F
> GLIBC_2.17 malloc_trim F
> GLIBC_2.17 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/aarch64/libc_malloc_debug.abilist
> index 65fb5036bd..c82c88dcf7 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc_malloc_debug.abilist
> @@ -7,7 +7,9 @@ GLIBC_2.17 calloc F
> GLIBC_2.17 free F
> GLIBC_2.17 mallinfo F
> GLIBC_2.17 malloc F
> +GLIBC_2.17 malloc_get_state F
> GLIBC_2.17 malloc_info F
> +GLIBC_2.17 malloc_set_state F
> GLIBC_2.17 malloc_stats F
> GLIBC_2.17 malloc_trim F
> GLIBC_2.17 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index db496e108f..a201fd69ba 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -792,8 +792,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/alpha/libc_malloc_debug.abilist
> index bdf3541c24..15b3293b03 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 1e73617837..eb3207400c 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -1757,8 +1757,6 @@ GLIBC_2.4 madvise F
> GLIBC_2.4 makecontext F
> GLIBC_2.4 mallinfo F
> GLIBC_2.4 malloc F
> -GLIBC_2.4 malloc_get_state F
> -GLIBC_2.4 malloc_set_state F
> GLIBC_2.4 malloc_stats F
> GLIBC_2.4 malloc_trim F
> GLIBC_2.4 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/arm/be/libc_malloc_debug.abilist
> index 81be491d53..e505469154 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc_malloc_debug.abilist
> @@ -9,6 +9,8 @@ GLIBC_2.4 calloc F
> GLIBC_2.4 free F
> GLIBC_2.4 mallinfo F
> GLIBC_2.4 malloc F
> +GLIBC_2.4 malloc_get_state F
> +GLIBC_2.4 malloc_set_state F
> GLIBC_2.4 malloc_stats F
> GLIBC_2.4 malloc_trim F
> GLIBC_2.4 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 2bd1f4a0f4..cdf37e5a3b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -1754,8 +1754,6 @@ GLIBC_2.4 madvise F
> GLIBC_2.4 makecontext F
> GLIBC_2.4 mallinfo F
> GLIBC_2.4 malloc F
> -GLIBC_2.4 malloc_get_state F
> -GLIBC_2.4 malloc_set_state F
> GLIBC_2.4 malloc_stats F
> GLIBC_2.4 malloc_trim F
> GLIBC_2.4 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/arm/le/libc_malloc_debug.abilist
> index 81be491d53..e505469154 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc_malloc_debug.abilist
> @@ -9,6 +9,8 @@ GLIBC_2.4 calloc F
> GLIBC_2.4 free F
> GLIBC_2.4 mallinfo F
> GLIBC_2.4 malloc F
> +GLIBC_2.4 malloc_get_state F
> +GLIBC_2.4 malloc_set_state F
> GLIBC_2.4 malloc_stats F
> GLIBC_2.4 malloc_trim F
> GLIBC_2.4 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 230eb0c85a..7003962fe2 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1181,8 +1181,6 @@ GLIBC_2.2 madvise F
> GLIBC_2.2 makecontext F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> -GLIBC_2.2 malloc_get_state F
> -GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/hppa/libc_malloc_debug.abilist
> index 22d0bf2d8a..8798ca8653 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2 calloc F
> GLIBC_2.2 free F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> +GLIBC_2.2 malloc_get_state F
> +GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index d58620d817..89f8e13f50 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -774,8 +774,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/i386/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 5b78b61d4c..dd3a56d3fe 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1197,8 +1197,6 @@ GLIBC_2.2 madvise F
> GLIBC_2.2 makecontext F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> -GLIBC_2.2 malloc_get_state F
> -GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/ia64/libc_malloc_debug.abilist
> index 6d5574a760..554567ab85 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2 calloc F
> GLIBC_2.2 free F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> +GLIBC_2.2 malloc_get_state F
> +GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 9b9d0dff9d..f0f25b9feb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -1741,8 +1741,6 @@ GLIBC_2.4 madvise F
> GLIBC_2.4 makecontext F
> GLIBC_2.4 mallinfo F
> GLIBC_2.4 malloc F
> -GLIBC_2.4 malloc_get_state F
> -GLIBC_2.4 malloc_set_state F
> GLIBC_2.4 malloc_stats F
> GLIBC_2.4 malloc_trim F
> GLIBC_2.4 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc_malloc_debug.abilist
> index 81be491d53..e505469154 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc_malloc_debug.abilist
> @@ -9,6 +9,8 @@ GLIBC_2.4 calloc F
> GLIBC_2.4 free F
> GLIBC_2.4 mallinfo F
> GLIBC_2.4 malloc F
> +GLIBC_2.4 malloc_get_state F
> +GLIBC_2.4 malloc_set_state F
> GLIBC_2.4 malloc_stats F
> GLIBC_2.4 malloc_trim F
> GLIBC_2.4 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 6d48dc726c..ac70103870 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -773,8 +773,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 6abbed158e..e917e90c03 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1326,9 +1326,7 @@ GLIBC_2.18 madvise F
> GLIBC_2.18 makecontext F
> GLIBC_2.18 mallinfo F
> GLIBC_2.18 malloc F
> -GLIBC_2.18 malloc_get_state F
> GLIBC_2.18 malloc_info F
> -GLIBC_2.18 malloc_set_state F
> GLIBC_2.18 malloc_stats F
> GLIBC_2.18 malloc_trim F
> GLIBC_2.18 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc_malloc_debug.abilist
> index daa80c4772..a082e71f94 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc_malloc_debug.abilist
> @@ -7,7 +7,9 @@ GLIBC_2.18 calloc F
> GLIBC_2.18 free F
> GLIBC_2.18 mallinfo F
> GLIBC_2.18 malloc F
> +GLIBC_2.18 malloc_get_state F
> GLIBC_2.18 malloc_info F
> +GLIBC_2.18 malloc_set_state F
> GLIBC_2.18 malloc_stats F
> GLIBC_2.18 malloc_trim F
> GLIBC_2.18 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 8b9ae1f072..c2e722596b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1326,9 +1326,7 @@ GLIBC_2.18 madvise F
> GLIBC_2.18 makecontext F
> GLIBC_2.18 mallinfo F
> GLIBC_2.18 malloc F
> -GLIBC_2.18 malloc_get_state F
> GLIBC_2.18 malloc_info F
> -GLIBC_2.18 malloc_set_state F
> GLIBC_2.18 malloc_stats F
> GLIBC_2.18 malloc_trim F
> GLIBC_2.18 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc_malloc_debug.abilist
> index daa80c4772..a082e71f94 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc_malloc_debug.abilist
> @@ -7,7 +7,9 @@ GLIBC_2.18 calloc F
> GLIBC_2.18 free F
> GLIBC_2.18 mallinfo F
> GLIBC_2.18 malloc F
> +GLIBC_2.18 malloc_get_state F
> GLIBC_2.18 malloc_info F
> +GLIBC_2.18 malloc_set_state F
> GLIBC_2.18 malloc_stats F
> GLIBC_2.18 malloc_trim F
> GLIBC_2.18 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 095c2ea5da..153528de6d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -771,8 +771,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index bc1a353726..e36d47bd32 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -771,8 +771,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 63db2192c9..e57dfb4165 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -771,8 +771,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 35372f6c1a..c68f7e3c6c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -769,8 +769,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist
> index bdf3541c24..15b3293b03 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 2303e12935..451a7a4eb2 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1369,9 +1369,7 @@ GLIBC_2.21 madvise F
> GLIBC_2.21 makecontext F
> GLIBC_2.21 mallinfo F
> GLIBC_2.21 malloc F
> -GLIBC_2.21 malloc_get_state F
> GLIBC_2.21 malloc_info F
> -GLIBC_2.21 malloc_set_state F
> GLIBC_2.21 malloc_stats F
> GLIBC_2.21 malloc_trim F
> GLIBC_2.21 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
> index ce6c5f7631..de9a79a6dd 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
> @@ -7,7 +7,9 @@ GLIBC_2.21 calloc F
> GLIBC_2.21 free F
> GLIBC_2.21 mallinfo F
> GLIBC_2.21 malloc F
> +GLIBC_2.21 malloc_get_state F
> GLIBC_2.21 malloc_info F
> +GLIBC_2.21 malloc_set_state F
> GLIBC_2.21 malloc_stats F
> GLIBC_2.21 malloc_trim F
> GLIBC_2.21 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index b51067a81f..84607fa77f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -782,8 +782,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index c5112da9e5..7c5f03520a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -782,8 +782,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 0b7700cb84..cf864632d0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1301,8 +1301,6 @@ GLIBC_2.3 madvise F
> GLIBC_2.3 makecontext F
> GLIBC_2.3 mallinfo F
> GLIBC_2.3 malloc F
> -GLIBC_2.3 malloc_get_state F
> -GLIBC_2.3 malloc_set_state F
> GLIBC_2.3 malloc_stats F
> GLIBC_2.3 malloc_trim F
> GLIBC_2.3 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc_malloc_debug.abilist
> index 7f134f9b48..9f54dfd562 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.3 calloc F
> GLIBC_2.3 free F
> GLIBC_2.3 mallinfo F
> GLIBC_2.3 malloc F
> +GLIBC_2.3 malloc_get_state F
> +GLIBC_2.3 malloc_set_state F
> GLIBC_2.3 malloc_stats F
> GLIBC_2.3 malloc_trim F
> GLIBC_2.3 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 47e5a5aa79..d566d675d0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1412,9 +1412,7 @@ GLIBC_2.17 madvise F
> GLIBC_2.17 makecontext F
> GLIBC_2.17 mallinfo F
> GLIBC_2.17 malloc F
> -GLIBC_2.17 malloc_get_state F
> GLIBC_2.17 malloc_info F
> -GLIBC_2.17 malloc_set_state F
> GLIBC_2.17 malloc_stats F
> GLIBC_2.17 malloc_trim F
> GLIBC_2.17 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc_malloc_debug.abilist
> index 65fb5036bd..c82c88dcf7 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc_malloc_debug.abilist
> @@ -7,7 +7,9 @@ GLIBC_2.17 calloc F
> GLIBC_2.17 free F
> GLIBC_2.17 mallinfo F
> GLIBC_2.17 malloc F
> +GLIBC_2.17 malloc_get_state F
> GLIBC_2.17 malloc_info F
> +GLIBC_2.17 malloc_set_state F
> GLIBC_2.17 malloc_stats F
> GLIBC_2.17 malloc_trim F
> GLIBC_2.17 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index f803a1093c..6d9e7c1463 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -772,8 +772,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 3ec521cf52..83e542aa8c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1191,8 +1191,6 @@ GLIBC_2.2 madvise F
> GLIBC_2.2 makecontext F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> -GLIBC_2.2 malloc_get_state F
> -GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist
> index 6d5574a760..554567ab85 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2 calloc F
> GLIBC_2.2 free F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> +GLIBC_2.2 malloc_get_state F
> +GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index fcb9c99713..ebe10d06ed 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1184,8 +1184,6 @@ GLIBC_2.2 madvise F
> GLIBC_2.2 makecontext F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> -GLIBC_2.2 malloc_get_state F
> -GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/sh/be/libc_malloc_debug.abilist
> index 22d0bf2d8a..8798ca8653 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2 calloc F
> GLIBC_2.2 free F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> +GLIBC_2.2 malloc_get_state F
> +GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index aa294c7685..c5dfc4045a 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1184,8 +1184,6 @@ GLIBC_2.2 madvise F
> GLIBC_2.2 makecontext F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> -GLIBC_2.2 malloc_get_state F
> -GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/sh/le/libc_malloc_debug.abilist
> index 22d0bf2d8a..8798ca8653 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2 calloc F
> GLIBC_2.2 free F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> +GLIBC_2.2 malloc_get_state F
> +GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index f5f6bf24fd..e2c658d091 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -774,8 +774,6 @@ GLIBC_2.0 lseek F
> GLIBC_2.0 madvise F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> -GLIBC_2.0 malloc_get_state F
> -GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc_malloc_debug.abilist
> index 6b3c5bfd0b..55ef952885 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc_malloc_debug.abilist
> @@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
> GLIBC_2.0 free F
> GLIBC_2.0 mallinfo F
> GLIBC_2.0 malloc F
> +GLIBC_2.0 malloc_get_state F
> +GLIBC_2.0 malloc_set_state F
> GLIBC_2.0 malloc_stats F
> GLIBC_2.0 malloc_trim F
> GLIBC_2.0 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index e16b738b22..6268875ba3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1226,8 +1226,6 @@ GLIBC_2.2 madvise F
> GLIBC_2.2 makecontext F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> -GLIBC_2.2 malloc_get_state F
> -GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc_malloc_debug.abilist
> index 6d5574a760..554567ab85 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2 calloc F
> GLIBC_2.2 free F
> GLIBC_2.2 mallinfo F
> GLIBC_2.2 malloc F
> +GLIBC_2.2 malloc_get_state F
> +GLIBC_2.2 malloc_set_state F
> GLIBC_2.2 malloc_stats F
> GLIBC_2.2 malloc_trim F
> GLIBC_2.2 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 12cabf3f88..095e914b73 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1188,8 +1188,6 @@ GLIBC_2.2.5 madvise F
> GLIBC_2.2.5 makecontext F
> GLIBC_2.2.5 mallinfo F
> GLIBC_2.2.5 malloc F
> -GLIBC_2.2.5 malloc_get_state F
> -GLIBC_2.2.5 malloc_set_state F
> GLIBC_2.2.5 malloc_stats F
> GLIBC_2.2.5 malloc_trim F
> GLIBC_2.2.5 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc_malloc_debug.abilist
> index 3b7b729d64..45dfcd31c5 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc_malloc_debug.abilist
> @@ -8,6 +8,8 @@ GLIBC_2.2.5 calloc F
> GLIBC_2.2.5 free F
> GLIBC_2.2.5 mallinfo F
> GLIBC_2.2.5 malloc F
> +GLIBC_2.2.5 malloc_get_state F
> +GLIBC_2.2.5 malloc_set_state F
> GLIBC_2.2.5 malloc_stats F
> GLIBC_2.2.5 malloc_trim F
> GLIBC_2.2.5 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 545af5a689..dd910f7fe9 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1329,9 +1329,7 @@ GLIBC_2.16 madvise F
> GLIBC_2.16 makecontext F
> GLIBC_2.16 mallinfo F
> GLIBC_2.16 malloc F
> -GLIBC_2.16 malloc_get_state F
> GLIBC_2.16 malloc_info F
> -GLIBC_2.16 malloc_set_state F
> GLIBC_2.16 malloc_stats F
> GLIBC_2.16 malloc_trim F
> GLIBC_2.16 malloc_usable_size F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc_malloc_debug.abilist
> index 91d737a7f8..821525018b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc_malloc_debug.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc_malloc_debug.abilist
> @@ -7,7 +7,9 @@ GLIBC_2.16 calloc F
> GLIBC_2.16 free F
> GLIBC_2.16 mallinfo F
> GLIBC_2.16 malloc F
> +GLIBC_2.16 malloc_get_state F
> GLIBC_2.16 malloc_info F
> +GLIBC_2.16 malloc_set_state F
> GLIBC_2.16 malloc_stats F
> GLIBC_2.16 malloc_trim F
> GLIBC_2.16 malloc_usable_size F
>
--
Cheers,
Carlos.
next prev parent reply other threads:[~2021-07-22 12:25 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-19 18:46 [PATCH v10 00/11] malloc hooks removal Siddhesh Poyarekar
2021-07-19 18:46 ` [PATCH v10 01/11] Make mcheck tests conditional on GLIBC_2.23 or earlier Siddhesh Poyarekar
2021-07-22 12:26 ` Carlos O'Donell
2021-07-19 18:46 ` [PATCH v10 02/11] Remove __after_morecore_hook Siddhesh Poyarekar
2021-07-19 18:46 ` [PATCH v10 03/11] Remove __morecore and __default_morecore Siddhesh Poyarekar
2021-07-19 18:46 ` [PATCH v10 04/11] Move malloc hooks into a compat DSO Siddhesh Poyarekar
2021-07-22 12:25 ` Carlos O'Donell
2021-07-19 18:46 ` [PATCH v10 05/11] mcheck: Wean away from malloc hooks [BZ #23489] Siddhesh Poyarekar
2021-07-22 19:57 ` Matheus Castanho
2021-07-23 2:25 ` [PATCH] Fix build and tests with --disable-tunables Siddhesh Poyarekar
2021-07-23 4:55 ` Carlos O'Donell
2021-07-19 18:46 ` [PATCH v10 06/11] Simplify __malloc_initialized Siddhesh Poyarekar
2021-07-19 18:46 ` [PATCH v10 07/11] mtrace: Wean away from malloc hooks Siddhesh Poyarekar
2021-07-19 18:46 ` [PATCH v10 08/11] glibc.malloc.check: " Siddhesh Poyarekar
2021-07-22 12:25 ` Carlos O'Donell
2021-07-19 18:46 ` [PATCH v10 09/11] Move malloc_{g,s}et_state to libc_malloc_debug Siddhesh Poyarekar
2021-07-22 12:25 ` Carlos O'Donell [this message]
2021-07-19 18:46 ` [PATCH v10 10/11] Remove malloc hooks [BZ #23328] Siddhesh Poyarekar
2021-07-19 18:46 ` [PATCH v10 11/11] mcheck Fix malloc_usable_size [BZ #22057] Siddhesh Poyarekar
2021-07-21 9:45 ` [PATCH v10 00/11] malloc hooks removal Siddhesh Poyarekar
2021-10-08 21:47 ` Stafford Horne
2021-10-08 22:22 ` DJ Delorie
2021-10-08 23:18 ` Stafford Horne
2021-10-08 23:24 ` DJ Delorie
2021-10-08 23:29 ` Stafford Horne
2021-10-08 23:48 ` Stafford Horne
2021-10-11 2:40 ` Siddhesh Poyarekar
2021-10-11 1:55 ` Siddhesh Poyarekar
2021-10-11 2:19 ` Siddhesh Poyarekar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=584e618b-adfd-1b98-17bb-f73c7f89f502@redhat.com \
--to=carlos@redhat.com \
--cc=dj@redhat.com \
--cc=fweimer@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=siddhesh@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).