Index: uspace/lib/c/arch/abs32le/_link.ld.in
===================================================================
--- uspace/lib/c/arch/abs32le/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/abs32le/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 }
 
@@ -40,14 +41,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
+		*(.tbss);
+		*(.tbss.*);
 		*(.gnu.linkonce.tb.*);
-		_tdata_end = .;
-		_tbss_start = .;
-		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+	} :data :tls
 
 	.sbss : {
Index: uspace/lib/c/arch/amd64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/amd64/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/amd64/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 	debug PT_NOTE;
 }
@@ -45,13 +46,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		_tdata_end = .;
-		_tbss_start = .;
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
 		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.bss : {
Index: uspace/lib/c/arch/arm32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/arm32/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/arm32/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 }
 
@@ -45,13 +46,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		_tdata_end = .;
-		_tbss_start = .;
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
 		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.bss : {
Index: uspace/lib/c/arch/ia32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ia32/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/ia32/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -99,16 +99,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		*(.gnu.linkonce.tb.*);
-		_tdata_end = .;
-	} :data :tls
-	.tbss : {
-		_tbss_start = .;
-		*(.tbss);
-		_tbss_end = .;
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
 	} :data :tls
 
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	.tbss : {
+		*(.tbss);
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.bss : {
Index: uspace/lib/c/arch/ia64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ia64/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/ia64/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 }
 
@@ -54,13 +55,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		_tdata_end = .;
-		_tbss_start = .;
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
 		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.bss : {
Index: uspace/lib/c/arch/mips32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/mips32/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/mips32/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 }
 
@@ -49,16 +50,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		_tdata_end = .;
-	} :data
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
 
 	.tbss : {
-		_tbss_start = .;
 		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.sbss : {
Index: uspace/lib/c/arch/ppc32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ppc32/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/ppc32/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 	debug PT_NOTE;
 }
@@ -45,13 +46,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		_tdata_end = .;
-		_tbss_start = .;
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
 		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.bss : {
Index: uspace/lib/c/arch/riscv64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/riscv64/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/riscv64/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 	debug PT_NOTE;
 }
@@ -43,14 +44,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
+		*(.tbss);
+		*(.tbss.*);
 		*(.gnu.linkonce.tb.*);
-		_tdata_end = .;
-		_tbss_start = .;
-		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+	} :data :tls
 
 	.sbss : {
Index: uspace/lib/c/arch/sparc64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/sparc64/_link.ld.in	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/lib/c/arch/sparc64/_link.ld.in	(revision 231c770580f4400a6e0e7612723b1efb16fd5390)
@@ -8,4 +8,5 @@
 	text PT_LOAD FILEHDR PHDRS FLAGS(5);
 	data PT_LOAD FLAGS(6);
+	tls PT_TLS;
 	debug PT_NOTE;
 }
@@ -50,13 +51,14 @@
 
 	.tdata : {
-		_tdata_start = .;
 		*(.tdata);
-		_tdata_end = .;
-		_tbss_start = .;
+		*(.tdata.*);
+		*(.gnu.linkonce.td.*);
+	} :data :tls
+
+	.tbss : {
 		*(.tbss);
-		_tbss_end = .;
-	} :data
-
-	_tls_alignment = ALIGNOF(.tdata);
+		*(.tbss.*);
+		*(.gnu.linkonce.tb.*);
+	} :data :tls
 
 	.bss : {
