Index: uspace/srv/loader/arch/abs32le/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/abs32le/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/abs32le/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -18,5 +18,5 @@
 	} :interp
 	
-	. = 0x70001000;
+	. = 0x70001000 + SIZEOF_HEADERS;
 	
 	.text : {
@@ -25,5 +25,7 @@
 	} :text
 	
-	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
+	. = . + 0x1000;
+	
+	.data : {
 		*(.data);
 		*(.data.rel*);
@@ -35,7 +37,4 @@
 		*(.gnu.linkonce.tb.*);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -43,5 +42,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.sbss : {
Index: uspace/srv/loader/arch/amd64/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/amd64/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/amd64/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -19,8 +19,7 @@
 	} :interp
 	
-	/* . = 0x0000700000001000; */
-	. = 0x70001000;
+	. = 0x70001000 + SIZEOF_HEADERS;
 	
-	.init ALIGN(0x1000) : SUBALIGN(0x1000) {
+	.init : {
 		*(.init);
 	} :text
@@ -31,5 +30,7 @@
 	} :text
 	
-	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
+	. = . + 0x1000;
+	
+	.data : {
 		*(.data);
 	} :data
@@ -39,7 +40,4 @@
 		*(.tdata);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -47,5 +45,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.bss : {
Index: uspace/srv/loader/arch/arm32/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/arm32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/arm32/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -18,7 +18,7 @@
 	} : interp
 	
-	. = 0x70001000;
+	. = 0x70001000 + SIZEOF_HEADERS;
 	
-	.init ALIGN(0x1000): SUBALIGN(0x1000) {
+	.init : {
 		*(.init);
 	} :text
@@ -29,5 +29,7 @@
 	} :text
 	
-	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
+	. = . + 0x1000;
+	
+	.data : {
 		*(.opd);
 		*(.data .data.*);
@@ -39,7 +41,4 @@
 		*(.tdata);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -47,5 +46,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.bss : {
Index: uspace/srv/loader/arch/ia32/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/ia32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/ia32/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -19,7 +19,7 @@
 	} :interp
 	
-	. = 0x70001000;
+	. = 0x70001000 + SIZEOF_HEADERS;
 	
-	.init ALIGN(0x1000) : SUBALIGN(0x1000) {
+	.init : {
 		*(.init);
 	} :text
@@ -30,5 +30,7 @@
 	} :text
 	
-	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
+	. = . + 0x1000;
+	
+	.data : {
 		*(.data);
 	} :data
@@ -39,7 +41,4 @@
 		*(.gnu.linkonce.tb.*);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -47,5 +46,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.bss : {
Index: uspace/srv/loader/arch/ia64/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/ia64/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/ia64/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -13,6 +13,5 @@
 	} :interp
 	
-	/* On Itanium code sections must be aligned to 16 bytes. */
-	. = ALIGN(0x800000000 + SIZEOF_HEADERS, 16);
+	. = 0x800000000 + SIZEOF_HEADERS;
 	
 	.init : {
@@ -43,7 +42,4 @@
 		*(.tdata);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -51,5 +47,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.bss : {
Index: uspace/srv/loader/arch/mips32/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/mips32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/mips32/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -18,7 +18,7 @@
 	} :interp
 	
-	. = 0x70004000;
+	. = 0x70004000 + SIZEOF_HEADERS;
 	
-	.init ALIGN(0x4000) : SUBALIGN(0x4000) {
+	.init : {
 		*(.init);
 	} :text
Index: uspace/srv/loader/arch/ppc32/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/ppc32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/ppc32/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -18,7 +18,7 @@
 	} :interp
 	
-	. = 0x70001000;
+	. = 0x70001000 + SIZEOF_HEADERS;
 	
-	.init ALIGN(0x1000) : SUBALIGN(0x1000) {
+	.init : {
 		*(.init);
 	} :text
@@ -29,5 +29,7 @@
 	} :text
 	
-	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
+	. = . + 0x1000;
+	
+	.data : {
 		*(.data);
 		*(.sdata);
@@ -38,7 +40,4 @@
 		*(.tdata);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -46,5 +45,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.bss : {
Index: uspace/srv/loader/arch/sparc64/_link.ld.in
===================================================================
--- uspace/srv/loader/arch/sparc64/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/srv/loader/arch/sparc64/_link.ld.in	(revision fcfd002df391f9e7b6107b57c54439dbfbe24af8)
@@ -40,7 +40,4 @@
 		*(.tdata);
 		_tdata_end = .;
-	} :data
-	
-	.tbss : {
 		_tbss_start = .;
 		*(.tbss);
@@ -48,5 +45,5 @@
 	} :data
 	
-	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
+	_tls_alignment = ALIGNOF(.tdata);
 	
 	.bss : {
