diff options
-rw-r--r-- | src/env/__init_tls.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/env/__init_tls.c b/src/env/__init_tls.c index 5c176811..dbfe62e7 100644 --- a/src/env/__init_tls.c +++ b/src/env/__init_tls.c @@ -5,6 +5,7 @@ #include "pthread_impl.h" #include "libc.h" #include "atomic.h" +#include "syscall.h" #ifndef SHARED @@ -87,8 +88,15 @@ void __init_tls(size_t *aux) libc.tls_size = 2*sizeof(void *)+T.size+T.align+sizeof(struct pthread); - mem = __mmap(0, libc.tls_size, PROT_READ|PROT_WRITE, + mem = (void *)__syscall( +#ifdef SYS_mmap2 + SYS_mmap2, +#else + SYS_mmap, +#endif + 0, libc.tls_size, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + if (!__install_initial_tls(__copy_tls(mem))) a_crash(); } #else |