[arm] fix problem with gcc 4.4 to ensure the boot code is in the binary

seems that gcc 4.4 or the newer binutils likes to put linker generated
shims first in link order. Tweak the boot code to use a special section
that is ordered first by the linker script.

Conflicts:

	arch/arm/crt0.S

Change-Id: Ib38697ce3de375965f607fd17c56bfc16b7774e1
diff --git a/arch/arm/system-onesegment.ld b/arch/arm/system-onesegment.ld
index 9f0e7fc..f2c62ac 100644
--- a/arch/arm/system-onesegment.ld
+++ b/arch/arm/system-onesegment.ld
@@ -6,6 +6,10 @@
 {
 	. = %MEMBASE%;
 
+	/* text/read-only data */
+	.text.boot : { *(.text.boot) }
+	.text :	{ *(.text .text.* .glue_7* .gnu.linkonce.t.*) } =0x9090
+
 	.interp : { *(.interp) }
 	.hash : { *(.hash) }
 	.dynsym : { *(.dynsym) }
@@ -33,9 +37,6 @@
 	.init : { *(.init) } =0x9090
 	.plt : { *(.plt) }
 
-	/* text/read-only data */
-	.text :	{ *(.text .text.* .glue_7* .gnu.linkonce.t.*) } =0x9090
-
 	.rodata : { 
 		*(.rodata .rodata.* .gnu.linkonce.r.*)
 		. = ALIGN(4);