summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-16 17:02:05 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-16 17:02:05 +0100
commit90dad97fc07f049383903a166631e2c257f9b8c1 (patch)
tree096cd247ecfda9e46598215a4f32aecedeedda90 /include
parent0e832a9329cc4d4647e1ce529846073f21e66991 (diff)
Add support for TLS in the libc
Diffstat (limited to 'include')
-rw-r--r--include/elf.h10
-rw-r--r--include/errno.h3
-rw-r--r--include/sys/cdefs.h3
3 files changed, 10 insertions, 6 deletions
diff --git a/include/elf.h b/include/elf.h
index 8317c9ca..ea2014a6 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -16,6 +16,7 @@
#define PT_NOTE 4
#define PT_SHLIB 5
#define PT_PHDR 6
+#define PT_TLS 7
#define PT_LOOS 0x60000000
#define PT_HIOS 0x6fffffff
#define PT_LOPROC 0x70000000
@@ -101,12 +102,13 @@
#define SHT_LOUSER 0x80000000
#define SHT_HIUSER 0xffffffff
-#define SHF_WRITE 0x1
-#define SHF_ALLOC 0x2
-#define SHF_EXECINSTR 0x4
+#define SHF_WRITE 0x00000001
+#define SHF_ALLOC 0x00000002
+#define SHF_EXECINSTR 0x00000004
+#define SHF_TLS 0x00000400
#define SHF_MASKPROC 0xf0000000
-#define SHN_UNDEF 0
+#define SHN_UNDEF 0x0000
#define SHN_LORESERVE 0xff00
#define SHN_LOPROC 0xff00
#define SHN_HIPROC 0xff1f
diff --git a/include/errno.h b/include/errno.h
index 86ef7047..800f9a9b 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -1,8 +1,7 @@
#ifndef __ERRNO_H
#define __ERRNO_H
-#define errno (*__errno())
-extern int *__errno(void) __attribute__((const));
+extern _Thread_local int errno;
#define EPERM 1
#define ENOENT 2
diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h
index 00e85014..cd490d6b 100644
--- a/include/sys/cdefs.h
+++ b/include/sys/cdefs.h
@@ -9,6 +9,9 @@
#define __END_DECLS
#endif
+#define ___STRING(x) #x
+#define __STRING(x) ___STRING(x)
+
#define __dead __attribute__((__noreturn__))
#define __used __attribute__((__used__))
#define __unused __attribute__((__unused__))