Remove unused function _dl_tls_setup

Commit 7a5e3d9d63 (elf: Assume TLS is
initialized in _dl_map_object_from_fd) removed the last call of
_dl_tls_setup, but did not remove the function itself.
This commit is contained in:
Florian Weimer 2016-12-21 14:30:56 +01:00
parent fcd942370f
commit d08ab9ced7
5 changed files with 9 additions and 59 deletions

View File

@ -1,3 +1,10 @@
2016-12-21 Florian Weimer <fweimer@redhat.com>
* csu/libc-tls.c (_dl_tls_setup): Remove.
* elf/dl-tls.c (_dl_tls_setup): Likewise.
* elf/Versions (GLIBC_PRIVATE): Remove _dl_tls_setup.
* sysdeps/generic/ldsodefs.h (_dl_tls_setup): Remove declaration.
2016-12-21 Nick Alcock <nick.alcock@oracle.com>
[BZ #7065]

View File

@ -216,25 +216,6 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign)
init_static_tls (memsz, MAX (TLS_TCB_ALIGN, max_align));
}
/* This is called only when the data structure setup was skipped at startup,
when there was no need for it then. Now we have dynamically loaded
something needing TLS, or libpthread needs it. */
int
internal_function
_dl_tls_setup (void)
{
init_slotinfo ();
init_static_tls (
#if TLS_TCB_AT_TP
TLS_TCB_SIZE,
#else
0,
#endif
TLS_TCB_ALIGN);
return 0;
}
/* This is the minimal initialization function used when libpthread is
not used. */
void

View File

@ -59,7 +59,7 @@ ld {
_dl_allocate_tls; _dl_allocate_tls_init;
_dl_argv; _dl_find_dso_for_object; _dl_get_tls_static_info;
_dl_deallocate_tls; _dl_make_stack_executable; _dl_out_of_memory;
_dl_rtld_di_serinfo; _dl_starting_up; _dl_tls_setup;
_dl_rtld_di_serinfo; _dl_starting_up;
_rtld_global; _rtld_global_ro;
# Only here for gdb while a better method is developed.

View File

@ -274,39 +274,7 @@ _dl_determine_tlsoffset (void)
/* The alignment requirement for the static TLS block. */
GL(dl_tls_static_align) = max_align;
}
/* This is called only when the data structure setup was skipped at startup,
when there was no need for it then. Now we have dynamically loaded
something needing TLS, or libpthread needs it. */
int
internal_function
_dl_tls_setup (void)
{
assert (GL(dl_tls_dtv_slotinfo_list) == NULL);
assert (GL(dl_tls_max_dtv_idx) == 0);
const size_t nelem = 2 + TLS_SLOTINFO_SURPLUS;
GL(dl_tls_dtv_slotinfo_list)
= calloc (1, (sizeof (struct dtv_slotinfo_list)
+ nelem * sizeof (struct dtv_slotinfo)));
if (GL(dl_tls_dtv_slotinfo_list) == NULL)
return -1;
GL(dl_tls_dtv_slotinfo_list)->len = nelem;
/* Number of elements in the static TLS block. It can't be zero
because of various assumptions. The one element is null. */
GL(dl_tls_static_nelem) = GL(dl_tls_max_dtv_idx) = 1;
/* This initializes more variables for us. */
_dl_determine_tlsoffset ();
return 0;
}
rtld_hidden_def (_dl_tls_setup)
#endif
#endif /* SHARED */
static void *
internal_function

View File

@ -994,12 +994,6 @@ extern size_t _dl_count_modids (void) internal_function attribute_hidden;
/* Calculate offset of the TLS blocks in the static TLS block. */
extern void _dl_determine_tlsoffset (void) internal_function attribute_hidden;
/* Set up the data structures for TLS, when they were not set up at startup.
Returns nonzero on malloc failure.
This is called from _dl_map_object_from_fd or by libpthread. */
extern int _dl_tls_setup (void) internal_function;
rtld_hidden_proto (_dl_tls_setup)
/* Allocate memory for static TLS block (unless MEM is nonzero) and dtv. */
extern void *_dl_allocate_tls (void *mem) internal_function;
rtld_hidden_proto (_dl_allocate_tls)