mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-17 13:00:43 +08:00
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>
130 lines
2.5 KiB
Plaintext
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;
|
|
}
|
|
}
|