public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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.


  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).