aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--malloc/Makefile5
-rw-r--r--malloc/Versions4
-rw-r--r--malloc/hooks.c114
-rw-r--r--malloc/malloc-debug.c182
-rw-r--r--malloc/malloc.c55
-rw-r--r--sysdeps/mach/hurd/i386/libc.abilist2
-rw-r--r--sysdeps/mach/hurd/i386/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc_malloc_debug.abilist2
64 files changed, 256 insertions, 225 deletions
diff --git a/NEWS b/NEWS
index fa80c96..e26a9e2 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 b89af21..96328da 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -331,3 +331,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 cbb73d1..0a0bcf4 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 6c212fb..8e1afe5 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 f5290aa..b774446 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 b8fcb2f..38b649f 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 b337d0d..c5da10a 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 c1ff86d..e1d9b10 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 8d49fc0..21a2e50 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 65fb503..c82c88d 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 db496e1..a201fd6 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 bdf3541..15b3293 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 c3c96f2..a542ad2 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -1763,8 +1763,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 81be491..e505469 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 2786afa..ea22919 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -1760,8 +1760,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 81be491..e505469 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 47d376f..91922bd 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 22d0bf2..8798ca8 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 d6b038b..9e4937c 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 6b3c5bf..55ef952 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 5b78b61..dd3a56d 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 6d5574a..554567a 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 ab9e095..af2e09d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -1747,8 +1747,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 81be491..e505469 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 479d17b..6f416da 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 6b3c5bf..55ef952 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 9030284..3accefd 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 daa80c4..a082e71 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 dcfd52e..d21f917 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 daa80c4..a082e71 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 c72c2a7..2ff1582 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 6b3c5bf..55ef952 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 6725735..b58f607 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 6b3c5bf..55ef952 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 5c2e228..ae93342 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 6b3c5bf..55ef952 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 35372f6..c68f7e3 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 bdf3541..15b3293 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 e0ffbb5..91c103f 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 ce6c5f7..de9a79a 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 105dda5..7961a99 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 6b3c5bf..55ef952 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 b079847..146e27a 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 6b3c5bf..55ef952 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 0b7700c..cf86463 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 7f134f9..9f54dfd 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 47e5a5a..d566d67 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 65fb503..c82c88d 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 b3b55c9..35c59b5 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 6b3c5bf..55ef952 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 3ec521c..83e542a 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 6d5574a..554567a 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 54174a2..9e2c2fb 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 22d0bf2..8798ca8 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 3028f6c..f2dd40b 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 22d0bf2..8798ca8 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 8b0ae53..567a7d8 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 6b3c5bf..55ef952 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 e16b738..6268875 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 6d5574a..554567a 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 12cabf3..095e914 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 3b7b729..45dfcd3 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 545af5a..dd910f7 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 91d737a..8215250 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