]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/cpu/u-boot.lds
Merge branch 'u-boot-samsung/master' into 'u-boot-arm/master'
[u-boot] / arch / x86 / cpu / u-boot.lds
index a1ecefafc64326bce747cfab1138c545651a35a8..2d6911aa4196b58278eedbab54b833ba3e38d976 100644 (file)
@@ -36,7 +36,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
@@ -45,9 +45,6 @@ SECTIONS
        . = ALIGN(4);
        .data : { *(.data*) }
 
-       . = ALIGN(4);
-       .dynsym : { *(.dynsym*) }
-
        . = ALIGN(4);
        .hash : { *(.hash*) }
 
@@ -56,17 +53,25 @@ SECTIONS
 
        . = ALIGN(4);
        __data_end = .;
+       __init_end = .;
 
        . = ALIGN(4);
-       __bss_start = ABSOLUTE(.);
-       .bss (NOLOAD) : { *(.bss) }
-       . = ALIGN(4);
-       __bss_end = ABSOLUTE(.);
+       .dynsym : { *(.dynsym*) }
 
        . = ALIGN(4);
        __rel_dyn_start = .;
        .rel.dyn : { *(.rel.dyn) }
        __rel_dyn_end = .;
+       . = ALIGN(4);
+       _end = .;
+
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss)
+               *(COM*)
+               . = ALIGN(4);
+               __bss_end = .;
+       }
 
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
@@ -86,6 +91,8 @@ SECTIONS
        __bios_start = LOADADDR(.bios);
        __bios_size = SIZEOF(.bios);
 
+#ifdef CONFIG_X86_RESET_VECTOR
+
        /*
         * The following expressions place the 16-bit Real-Mode code and
         * Reset Vector at the end of the Flash ROM
@@ -95,4 +102,5 @@ SECTIONS
 
        . = RESET_VEC_LOC;
        .resetvec : AT (CONFIG_SYS_TEXT_BASE + (CONFIG_SYS_MONITOR_LEN - RESET_SEG_SIZE + RESET_VEC_LOC)) { KEEP(*(.resetvec)); }
+#endif
 }