diff options
| author | Kacper <kacper@mail.openlinux.dev> | 2025-12-16 17:02:05 +0100 |
|---|---|---|
| committer | Kacper <kacper@mail.openlinux.dev> | 2025-12-16 17:02:05 +0100 |
| commit | 90dad97fc07f049383903a166631e2c257f9b8c1 (patch) | |
| tree | 096cd247ecfda9e46598215a4f32aecedeedda90 /lib/libc/internal/init/init.c | |
| parent | 0e832a9329cc4d4647e1ce529846073f21e66991 (diff) | |
Add support for TLS in the libc
Diffstat (limited to 'lib/libc/internal/init/init.c')
| -rw-r--r-- | lib/libc/internal/init/init.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libc/internal/init/init.c b/lib/libc/internal/init/init.c index 36e66ee4..b2dd8487 100644 --- a/lib/libc/internal/init/init.c +++ b/lib/libc/internal/init/init.c @@ -5,13 +5,14 @@ #include <sys/cdefs.h> extern void __init_vdso(void); +extern void __init_tls(void); + +extern int main(int, char **, char **); struct libc __libc = { 0 }; char **environ; char *__progname; -extern int main(int, char **, char **); - __used void __init(uintptr_t *rsp) { char **argv; @@ -34,6 +35,7 @@ __used void __init(uintptr_t *rsp) for (size_t i = 0; auxv[i]; i += 2) __libc.auxv[auxv[i]] = auxv[i + 1]; + __init_tls(); __init_vdso(); exit(main(argc, argv, environ)); |
