mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
2002-02-22 Ulrich Drepper <drepper@redhat.com> * elf/Versions: Add _dl_allocate_tls and _dl_deallocate_tls. * elf/rtld.c (dl_main): Use _dl_allocate_tls with INTUSE. * sysdeps/generic/dl-tls.c: Add INTDEF for _dl_allocate_tls. (_dl_deallocate_tls): New function. * sysdeps/generic/ldsodefs.h: Declare _dl_allocate_tls_internal and _dl_deallocate_tls.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-22 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* elf/Versions: Add _dl_allocate_tls and _dl_deallocate_tls.
|
||||||
|
* elf/rtld.c (dl_main): Use _dl_allocate_tls with INTUSE.
|
||||||
|
* sysdeps/generic/dl-tls.c: Add INTDEF for _dl_allocate_tls.
|
||||||
|
(_dl_deallocate_tls): New function.
|
||||||
|
* sysdeps/generic/ldsodefs.h: Declare _dl_allocate_tls_internal and
|
||||||
|
_dl_deallocate_tls.
|
||||||
|
|
||||||
2002-02-21 Jakub Jelinek <jakub@redhat.com>
|
2002-02-21 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* libio/fileops.c (_IO_file_seekoff_mmap): Fix fseek SEEK_END.
|
* libio/fileops.c (_IO_file_seekoff_mmap): Fix fseek SEEK_END.
|
||||||
|
@ -49,6 +49,6 @@ ld {
|
|||||||
_dl_map_object; _dl_map_object_deps; _dl_out_of_memory;
|
_dl_map_object; _dl_map_object_deps; _dl_out_of_memory;
|
||||||
_dl_relocate_object; _dl_signal_error; _dl_start_profile; _dl_starting_up;
|
_dl_relocate_object; _dl_signal_error; _dl_start_profile; _dl_starting_up;
|
||||||
_dl_unload_cache;
|
_dl_unload_cache;
|
||||||
_rtld_global; _dl_tls_symaddr;
|
_rtld_global; _dl_tls_symaddr; _dl_allocate_tls; _dl_deallocate_tls;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1240,7 +1240,7 @@ of this helper program; chances are you did not intend to run this program.\n\
|
|||||||
for the thread descriptor. The memory for the TLS block will
|
for the thread descriptor. The memory for the TLS block will
|
||||||
never be freed. It should be allocated accordingly. The dtv
|
never be freed. It should be allocated accordingly. The dtv
|
||||||
array can be changed if dynamic loading requires it. */
|
array can be changed if dynamic loading requires it. */
|
||||||
tcbp = _dl_allocate_tls ();
|
tcbp = INTUSE(_dl_allocate_tls) ();
|
||||||
if (tcbp == NULL)
|
if (tcbp == NULL)
|
||||||
_dl_fatal_printf ("\
|
_dl_fatal_printf ("\
|
||||||
cannot allocate TLS data structures for inital thread");
|
cannot allocate TLS data structures for inital thread");
|
||||||
|
@ -324,6 +324,21 @@ _dl_allocate_tls (void)
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
INTDEF(_dl_allocate_tls)
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
internal_function
|
||||||
|
_dl_deallocate_tls (void *tcb)
|
||||||
|
{
|
||||||
|
dtv_t *dtv = GET_DTV (tcb);
|
||||||
|
|
||||||
|
/* The array starts with dtv[-1]. */
|
||||||
|
free (dtv - 1);
|
||||||
|
|
||||||
|
munmap (tcb, GL(dl_tls_static_size));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ifdef SHARED
|
# ifdef SHARED
|
||||||
|
@ -688,6 +688,10 @@ extern void _dl_determine_tlsoffset (void) internal_function;
|
|||||||
|
|
||||||
/* Allocate memory for static TLS block and dtv. */
|
/* Allocate memory for static TLS block and dtv. */
|
||||||
extern void *_dl_allocate_tls (void) internal_function;
|
extern void *_dl_allocate_tls (void) internal_function;
|
||||||
|
extern void *_dl_allocate_tls_internal (void) internal_function;
|
||||||
|
|
||||||
|
/* Deallocate memory allocated with _dl_allocate_tls. */
|
||||||
|
extern void _dl_deallocate_tls (void *tcb) internal_function;
|
||||||
|
|
||||||
/* Return the symbol address given the map of the module it is in and
|
/* Return the symbol address given the map of the module it is in and
|
||||||
the symbol record. */
|
the symbol record. */
|
||||||
|
Reference in New Issue
Block a user