1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-08 17:42:12 +03:00

Patch 2/4 of the effort to make TLS access async-signal-safe.

Add a signal-safe malloc replacement.

2013-12-18  Andrew Hunter  <ahh@google.com>

	* sysdeps/generic/ldsodefs.h (__signal_safe_memalign): New prototype.
	(__signal_safe_malloc, __signal_safe_free): Likewise.
	(__signal_safe_realloc, __signal_safe_calloc): Likewise.
	* elf/dl-misc.c (__signal_safe_allocator_header): New struct.
	(__signal_safe_memalign, __signal_safe_malloc): New function.
	(__signal_safe_free, __signal_safe_realloc): Likewise.
	(__signal_safe_calloc): Likewise.
	* elf/dl-tls.c (allocate_dtv, _dl_clear_dtv): Call signal-safe
	functions.
	(_dl_deallocate_tls, _dl_update_slotinfo): Likewise.
This commit is contained in:
Paul Pluzhnikov
2013-12-18 16:46:18 -08:00
parent 35e8f7ab94
commit 1f33d36a8a
4 changed files with 169 additions and 16 deletions

View File

@@ -994,6 +994,12 @@ rtld_hidden_proto (_dl_allocate_tls_init)
extern void _dl_clear_dtv (dtv_t *dtv) internal_function;
rtld_hidden_proto (_dl_clear_dtv)
extern void *__signal_safe_memalign (size_t boundary, size_t size);
extern void *__signal_safe_malloc (size_t size);
extern void __signal_safe_free (void *ptr);
extern void *__signal_safe_realloc (void *ptr, size_t size);
extern void *__signal_safe_calloc (size_t nmemb, size_t size);
/* Deallocate memory allocated with _dl_allocate_tls. */
extern void _dl_deallocate_tls (void *tcb, bool dealloc_tcb) internal_function;
rtld_hidden_proto (_dl_deallocate_tls)