mq_timedsend, mq_timedreceive: add time64, decouple 32-bit time_t
[musl] / src / env / __init_tls.c
index f1874f2..772baba 100644 (file)
@@ -1,3 +1,4 @@
+#define SYSCALL_NO_TLS 1
 #include <elf.h>
 #include <limits.h>
 #include <sys/mman.h>
@@ -21,6 +22,7 @@ int __init_tp(void *p)
        td->tid = __syscall(SYS_set_tid_address, &__thread_list_lock);
        td->locale = &libc.global_locale;
        td->robust_list.head = &td->robust_list.head;
+       td->sysinfo = __sysinfo;
        td->next = td->prev = td;
        return 0;
 }
@@ -113,7 +115,8 @@ static void static_init_tls(size_t *aux)
                & (main_tls.align-1);
 #ifdef TLS_ABOVE_TP
        main_tls.offset = GAP_ABOVE_TP;
-       main_tls.offset += -GAP_ABOVE_TP & (main_tls.align-1);
+       main_tls.offset += (-GAP_ABOVE_TP + (uintptr_t)main_tls.image)
+               & (main_tls.align-1);
 #else
        main_tls.offset = main_tls.size;
 #endif