Index: uspace/lib/c/arch/abs32le/_link.ld.in
===================================================================
--- uspace/lib/c/arch/abs32le/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/abs32le/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,11 +3,23 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 }
 
 SECTIONS {
+#ifdef LOADER
+	.interp : {
+		*(.interp);
+	} :interp
+	
+	. = 0x70001000 + SIZEOF_HEADERS;
+#else
 	. = 0x1000 + SIZEOF_HEADERS;
-	
+#endif
 	.text : {
 		*(.text .text.*);
Index: uspace/lib/c/arch/amd64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/amd64/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/amd64/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,5 +3,10 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 	debug PT_NOTE;
@@ -9,6 +14,13 @@
 
 SECTIONS {
+#ifdef LOADER
+	.interp : {
+		*(.interp);
+	} :interp
+	
+	. = 0x70001000 + SIZEOF_HEADERS;
+#else
 	. = 0x1000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
Index: uspace/lib/c/arch/arm32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/arm32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/arm32/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,11 +3,23 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 }
 
 SECTIONS {
+#ifdef LOADER
+	.interp : {
+		*(.interp);
+	} :interp
+	
+	. = 0x70001000 + SIZEOF_HEADERS;
+#else
 	. = 0x1000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
Index: uspace/lib/c/arch/ia32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ia32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/ia32/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,5 +3,10 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 	debug PT_NOTE;
@@ -9,6 +14,13 @@
 
 SECTIONS {
+#ifdef LOADER
+	.interp : {
+		*(.interp);
+	} :interp
+
+	. = 0x70001000 + SIZEOF_HEADERS;
+#else
 	. = 0x1000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
Index: uspace/lib/c/arch/ia64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ia64/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/ia64/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,11 +3,23 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
 	text PT_LOAD FLAGS(5);
+#else
+	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 }
 
 SECTIONS {
+#ifdef LOADER
+	.interp : {
+		*(.interp);
+	} :interp
+	
+	. = 0x800000000 + SIZEOF_HEADERS;
+#else
 	. = 0x4000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
Index: uspace/lib/c/arch/mips32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/mips32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/mips32/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,11 +3,23 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 }
 
 SECTIONS {
+#ifdef LOADER
+	.interp: {
+		*(.interp);
+	} :interp
+	
+	. = 0x70001000 + SIZEOF_HEADERS;
+#else
 	. = 0x4000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
Index: uspace/lib/c/arch/ppc32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ppc32/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/ppc32/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,11 +3,23 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 }
 
 SECTIONS {
+#ifdef LOADER
+	.itnerp : {
+		*(.interp);
+	} :interp
+	
+	. = 0x70001000 + SIZEOF_HEADERS;
+#else
 	. = 0x1000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
Index: uspace/lib/c/arch/sparc64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/sparc64/_link.ld.in	(revision bae7bdce0a7ec22e0c314f46b0603c9c28fd6337)
+++ uspace/lib/c/arch/sparc64/_link.ld.in	(revision c53d90624940aafb20634e3c830f61e7551afe43)
@@ -3,11 +3,23 @@
 
 PHDRS {
+#ifdef LOADER
+	interp PT_INTERP;
+	text PT_LOAD FILEHDR PHDRS FLAGS(5);
+#else
 	text PT_LOAD FLAGS(5);
+#endif
 	data PT_LOAD FLAGS(6);
 }
 
 SECTIONS {
+#ifdef LOADER
+	.interp : {
+		*(.interp);
+	} :interp
+	
+	. = 0x70004000 + SIZEOF_HEADERS;
+#else
 	. = 0x4000 + SIZEOF_HEADERS;
-	
+#endif
 	.init : {
 		*(.init);
