summary refs log tree commit diff
path: root/all.h
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-09-09 17:40:31 +0200
committerQuentin Carbonneaux <quentin@c9x.me>2022-10-08 21:48:42 +0200
commit00a30954aca97004cb6f586bdeeabb488f1e3c3f (patch)
tree951dc4c0a5be04fe7d5aed13f4201eb90c60f841 /all.h
parent5cea0c20ee3573949a2c24e4b3dea65fcbf6e48b (diff)
downloadroux-00a30954aca97004cb6f586bdeeabb488f1e3c3f.tar.gz
add support for thread-local storage
The apple targets are not done yet.
Diffstat (limited to 'all.h')
-rw-r--r--all.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/all.h b/all.h
index 0d0bee6..14ebf68 100644
--- a/all.h
+++ b/all.h
@@ -324,8 +324,11 @@ struct Con {
 		double d;
 		float s;
 	} bits;
+	enum {
+		RelDef,
+		RelThr,
+	} rel;
 	char flt; /* 1 to print as s, 2 to print as d */
-	char local;
 };
 
 typedef struct Addr Addr;
@@ -339,6 +342,7 @@ struct Addr { /* amd64 addressing */
 
 struct Lnk {
 	char export;
+	char thread;
 	char align;
 	char *sec;
 	char *secf;
@@ -536,7 +540,7 @@ void spill(Fn *);
 void rega(Fn *);
 
 /* emit.c */
-void emitlnk(char *, Lnk *, char *, FILE *);
+void emitfnlnk(char *, Lnk *, FILE *);
 void emitdat(Dat *, FILE *);
 int stashbits(void *, int);
 void elf_emitfnfin(char *, FILE *);