+int __init_tp(void *p)
+{
+ pthread_t td = p;
+ td->self = td;
+ int r = __set_thread_area(TP_ADJ(p));
+ if (r < 0) return -1;
+ if (!r) libc.can_do_threads = 1;
+ td->detach_state = DT_JOINABLE;
+ td->tid = __syscall(SYS_set_tid_address, &__thread_list_lock);
+ td->locale = &libc.global_locale;
+ td->robust_list.head = &td->robust_list.head;
+ td->next = td->prev = td;
+ return 0;
+}
+
+static struct builtin_tls {
+ char c;
+ struct pthread pt;
+ void *space[16];
+} builtin_tls[1];
+#define MIN_TLS_ALIGN offsetof(struct builtin_tls, pt)
+
+static struct tls_module main_tls;