Index: libc/arch/amd64/_link.ld.in
===================================================================
--- libc/arch/amd64/_link.ld.in	(revision 0ef54d33723d26f17492e548fb3870a77b889935)
+++ libc/arch/amd64/_link.ld.in	(revision 8286c3baa7ed9a56bfa0b25632208c2a0724d8a4)
@@ -1,8 +1,25 @@
-OUTPUT_FORMAT(binary)
 STARTUP(../libc/arch/ARCH/src/entry.o)
 ENTRY(__entry)
 
+PHDRS {
+	image PT_LOAD AT (0x1000);
+}
+
 SECTIONS {
- .text 0x00001000 : {
- }
+	. = 0x1000;
+	.image ALIGN(0x1000) : {
+		*(.text);
+		*(.data);               /* initialized data */
+		*(.rodata*);            /* string literals */
+		*(COMMON);              /* global variables */
+		*(.eh_frame);
+		*(.bss);                /* uninitialized static variables */
+	} :image
+
+
+	/DISCARD/ : {
+		*(.note.GNU-stack);
+		*(.comment);
+	}
+
 }
Index: libc/arch/ia32/_link.ld.in
===================================================================
--- libc/arch/ia32/_link.ld.in	(revision 0ef54d33723d26f17492e548fb3870a77b889935)
+++ libc/arch/ia32/_link.ld.in	(revision 8286c3baa7ed9a56bfa0b25632208c2a0724d8a4)
@@ -1,8 +1,24 @@
-OUTPUT_FORMAT(binary)
 STARTUP(../libc/arch/ARCH/src/entry.o)
 ENTRY(__entry)
 
+PHDRS {
+        image PT_LOAD AT (0x1000);
+}
+
 SECTIONS {
- .text 0x00001000 : {
- }
+	
+	. = 0x1000;
+	.image 0x00001000 : {
+		*(.text);
+                *(.data);                       /* initialized data */
+                *(.rodata*);                    /* string literals */
+                *(COMMON);                      /* global variables */
+                *(.bss);                        /* uninitialized static variables */
+	} :image
+	
+	/DISCARD/ : {
+		*(.note.GNU-stack);
+		*(.comment);
+	}
+
 }
Index: libc/arch/mips32/Makefile.inc
===================================================================
--- libc/arch/mips32/Makefile.inc	(revision 0ef54d33723d26f17492e548fb3870a77b889935)
+++ libc/arch/mips32/Makefile.inc	(revision 8286c3baa7ed9a56bfa0b25632208c2a0724d8a4)
@@ -35,2 +35,5 @@
 
 ARCH_SOURCES += arch/$(ARCH)/src/syscall.c
+
+LFLAGS += -N
+
Index: libc/arch/mips32/_link.ld.in
===================================================================
--- libc/arch/mips32/_link.ld.in	(revision 0ef54d33723d26f17492e548fb3870a77b889935)
+++ libc/arch/mips32/_link.ld.in	(revision 8286c3baa7ed9a56bfa0b25632208c2a0724d8a4)
@@ -1,8 +1,9 @@
-OUTPUT_FORMAT(binary)
 STARTUP(../libc/arch/ARCH/src/entry.o)
 ENTRY(__entry)
 
 SECTIONS {
- .text 0x00004000 : {
- }
+	. = 0x4000;
+	.image : SUBALIGN(0x4000) {
+		*(*);
+	}
 }
Index: libc/arch/mips32eb/Makefile.inc
===================================================================
--- libc/arch/mips32eb/Makefile.inc	(revision 0ef54d33723d26f17492e548fb3870a77b889935)
+++ libc/arch/mips32eb/Makefile.inc	(revision 8286c3baa7ed9a56bfa0b25632208c2a0724d8a4)
@@ -35,2 +35,5 @@
 
 ARCH_SOURCES += arch/$(ARCH)/src/syscall.c
+
+LFLAGS += -N
+
