Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE

This allows userspace to use both registers
This commit is contained in:
2025-11-10 21:48:38 +02:00
parent 7a68ce7e94
commit 89c0ff1a9d
17 changed files with 165 additions and 46 deletions

View File

@@ -1366,7 +1366,13 @@ static void initialize_tls(MasterTLS master_tls)
uthread.dtv[elf.tls_module] = reinterpret_cast<uintptr_t>(tls_addr) + uthread.master_tls_size - elf.tls_offset;
}
syscall(SYS_SET_TLS, &uthread);
#if defined(__x86_64__)
syscall(SYS_SET_FSBASE, &uthread);
#elif defined(__i686__)
syscall(SYS_SET_GSBASE, &uthread);
#else
#error
#endif
}
static void initialize_environ(char** envp)