glibc/malloc/Versions
Siddhesh Poyarekar c142eb253f mcheck: Wean away from malloc hooks [BZ #23489]
Split the mcheck implementation into the debugging hooks and API so
that the API can be replicated in libc and libc_malloc_debug.so.  The
libc APIs always result in failure.

The mcheck implementation has also been moved entirely into
libc_malloc_debug.so and with it, all of the hook initialization code
can now be moved into the debug library.  Now the initialization can
be done independently of libc internals.

With this patch, libc_malloc_debug.so can no longer be used with older
libcs, which is not its goal anyway.  tst-vfork3 breaks due to this
since it spawns shell scripts, which in turn execute using the system
glibc.  Move the test to tests-container so that only the built glibc
is used.

This move also fixes bugs in the mcheck version of memalign and
realloc, thus allowing removal of the tests from tests-mcheck
exclusion list.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22 18:38:02 +05:30

130 lines
2.5 KiB
Plaintext

libc {
GLIBC_2.0 {
# global variables
_obstack;
# interface of malloc functions
__libc_calloc; __libc_free; __libc_mallinfo; __libc_malloc;
__libc_mallopt; __libc_memalign; __libc_pvalloc; __libc_realloc;
__libc_valloc;
__malloc_initialize_hook; __free_hook; __malloc_hook; __realloc_hook;
__memalign_hook; __after_morecore_hook;
__default_morecore; __morecore;
# functions used in inline functions or macros
_obstack_allocated_p; _obstack_begin; _obstack_begin_1;
_obstack_free; _obstack_memory_used; _obstack_newchunk;
# variables in normal name space
mallwatch; obstack_alloc_failed_handler; obstack_exit_failure;
# c*
calloc; cfree;
# f*
free;
# m*
mallinfo; malloc; malloc_get_state; malloc_set_state; malloc_stats;
malloc_trim; malloc_usable_size; mallopt; mcheck; memalign; mprobe; mtrace;
muntrace;
# o*
obstack_free;
# p*
pvalloc;
# r*
realloc;
# t*
tr_break;
# v*
valloc;
}
GLIBC_2.1 {
# Special functions.
__libc_freeres;
}
GLIBC_2.2 {
# m*
mcheck_check_all; mcheck_pedantic;
# p*
posix_memalign;
}
GLIBC_2.10 {
malloc_info;
}
GLIBC_2.16 {
aligned_alloc;
}
GLIBC_2.26 {
reallocarray;
}
GLIBC_2.33 {
mallinfo2;
}
GLIBC_PRIVATE {
# Internal startup hook for libpthread.
__libc_malloc_pthread_startup;
# Internal destructor hook for libpthread.
__libc_thread_freeres;
# struct scratch_buffer support
__libc_scratch_buffer_dupfree;
__libc_scratch_buffer_grow;
__libc_scratch_buffer_grow_preserve;
__libc_scratch_buffer_set_array_size;
# Internal name for reallocarray
__libc_reallocarray;
# dynarray support
__libc_dynarray_at_failure;
__libc_dynarray_emplace_enlarge;
__libc_dynarray_finalize;
__libc_dynarray_resize;
__libc_dynarray_resize_clear;
# struct alloc_buffer support
__libc_alloc_buffer_alloc_array;
__libc_alloc_buffer_allocate;
__libc_alloc_buffer_copy_bytes;
__libc_alloc_buffer_copy_string;
__libc_alloc_buffer_create_failure;
}
}
# Keep in sync with symbols in libc.
libc_malloc_debug {
GLIBC_2.0 {
calloc;
free;
malloc;
memalign;
pvalloc;
realloc;
valloc;
__free_hook;
__malloc_hook;
__memalign_hook;
__realloc_hook;
mcheck;
mprobe;
}
GLIBC_2.2 {
mcheck_check_all;
mcheck_pedantic;
posix_memalign;
}
GLIBC_2.16 {
aligned_alloc;
}
}