]> rtime.felk.cvut.cz Git - arc.git/blobdiff - arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf
Merge with 6c0406457e55f82d7a30afd3b7cec1c458993ef4
[arc.git] / arch / ppc / mpc55xx / scripts / linkscript_gcc.ldf
index 945bbbcc46eb7bd8353febd8b63936824f3776f1..146e6443623f39474eea496f10557ebb7b0fc8ce 100644 (file)
@@ -45,6 +45,8 @@ MEMORY
 \r
 SECTIONS\r
 {\r
+\r
+#if 0\r
 /* __CALIB_RAM_START, __CALIB_RAM_END, __CALIB_ROM_START are needed by the a2l and the rte generator. \r
   CALIBRATION_ENABLED, CALIBRATION_INITIALIZED_RAM, CALIBRATION_FLS_START are generated by rte \r
 */\r
@@ -93,11 +95,13 @@ __FLS_PROG_START__ = 0x20000;       /* Must be aligned to a sector start. */
 __FLS_PROG_START__ = 0;        /* Must be aligned to a sector start. */\r
 #endif\r
 \r
+#if !defined(CFG_BOOT)\r
        .rcw __FLS_PROG_START__ : { *(.rcw) } > flash\r
-\r
-\r
+#endif\r
+#endif\r
     .text :\r
        {\r
+           crt0.o(.text);\r
        *(.text .text.* .init .fini* .eini* .gnu.linkonce* .gnu.warning);\r
        PROVIDE( btask_sup_matrix = .);\r
        SORT(*)(.test_btask);\r
@@ -120,21 +124,23 @@ __FLS_PROG_START__ = 0;   /* Must be aligned to a sector start. */
     } > flash\r
 \r
        /* Read-only data section. */\r
-       .rodata :       { *(.rodata .rodata.* .gnu.linkonce.r.*) } > flash\r
+       .rodata :       { \r
+               *(.rodata .rodata.* .gnu.linkonce.r.*);\r
+               *(.got.plt) *(.got)\r
+       } > flash\r
 \r
        /* initialized read-only small data section. */\r
        .sdata2 :       {\r
                _SDA2_BASE_ = .; /* r2 */\r
                *(.sdata2 .sdata2.* .gnu.linkonce.s2.*);\r
                *(PPC.EMB.sdata2 .PPC.EMB.sbss2)\r
+               . = ALIGN(0x10); \r
        } > flash\r
 \r
-\r
        /* uninitialized read-only small data section. */\r
        .sbss2 : {\r
                *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*);\r
                __TEXT_END = .;\r
-               . = . + ALIGN(8);\r
        } > flash\r
 \r
 #if defined(CFG_MPC5516)\r
@@ -148,18 +154,16 @@ __FLS_PROG_START__ = 0;   /* Must be aligned to a sector start. */
        \r
 \r
        .data : {\r
-               . = . + ALIGN(4);\r
                __DATA_RAM = .; \r
                *(.data .data.* .gnu.linkonce.d.* .gnu.linkonce.r.* .eh_frame)\r
+               . = ALIGN(0x10);\r
        } > ram AT> flash\r
 \r
        .sdata : {\r
-               . = . + ALIGN(4);\r
                __SDATA_START__ = .;\r
                _SDA_BASE_ = .;         /* r13 */\r
                *(.sdata .sdata.* .gnu.linkonce.s.*)\r
                *(PPC.EMB.sdata2 .PPC.EMB.sbss2)\r
-               . = . + ALIGN(8);\r
                __DATA_END = .;\r
        } > ram AT> flash\r
 \r
@@ -171,33 +175,19 @@ __FLS_PROG_START__ = 0;   /* Must be aligned to a sector start. */
                _end = .;\r
        } > ram\r
 \r
-    .got2 ALIGN(0x10): \r
-    {\r
-       . = . + ALIGN(16);\r
-       *(.got2);       \r
-       . = . + ALIGN(8); \r
-    } > ram\r
-    .fixup : \r
-    { \r
-       . = . + ALIGN(16);\r
-       *(.fixup);\r
-       . = . + ALIGN(8); \r
-    }          > ram\r
        .t32_outport ALIGN(0x10): \r
        { \r
                *(.t32_outport); \r
        }                       > ram\r
-       \r
-       .got : AT(ALIGN(LOADADDR(.sdata)+SIZEOF(.sdata),4)) \r
-       { \r
-               *(.got.plt) *(.got) \r
-       } > ram\r
-       \r
-       .bss : AT(ADDR(.bss)) \r
-       { \r
+               \r
+       .bss (NOLOAD) :  \r
+       {\r
+               *(.got2);\r
+               *(.fixup);\r
                *(.bss .bss.* COMMON .gnu.linkonce.b.*);\r
                __BSS_END       = .; \r
        }       > ram\r
+       \r
        .init_stack ALIGN(16) (NOLOAD) : \r
        {       \r
                __SP_END        = .;\r
@@ -215,7 +205,7 @@ __FLS_PROG_START__ = 0;     /* Must be aligned to a sector start. */
     KEEP (*(SORT(.ctors.*)))\r
   }\r
 \r
-.uninit ALIGN(0x10): { *(.winidea_port .ramlog .dem_eventmemory_pri) ; }                       > ram\r
+.uninit ALIGN(0x10) (NOLOAD) : { *(.winidea_port .ramlog .dem_eventmemory_pri) ; }                     > ram\r
 \r
        /* Always place last in RAM */\r
        .heap ALIGN(0x4): {\r
@@ -280,12 +270,12 @@ __BSS_START               = ADDR(.sbss);
 /* __SBSS_END__                = ADDR(.sbss) + SIZEOF(.sbss); */\r
  __SDATA2_START__      = ADDR(.sdata2);\r
  __SBSS2_END__         = ADDR(.sbss2) + SIZEOF(.sbss2);\r
-__GOT_START__          = ADDR(.got);\r
-__GOT_END__                    = ADDR(.got) + SIZEOF(.got);\r
-__GOT2_START__         = ADDR(.got2);\r
-__GOT2_END__           = ADDR(.got2) + SIZEOF(.got2);\r
-__FIXUP_START__                = ADDR(.fixup);\r
-__FIXUP_END__          = ADDR(.fixup) + SIZEOF(.fixup);\r
+//__GOT_START__                = ADDR(.got);\r
+//__GOT_END__                  = ADDR(.got) + SIZEOF(.got);\r
+//__GOT2_START__               = ADDR(.got2);\r
+//__GOT2_END__         = ADDR(.got2) + SIZEOF(.got2);\r
+//__FIXUP_START__              = ADDR(.fixup);\r
+//__FIXUP_END__                = ADDR(.fixup) + SIZEOF(.fixup);\r
 \r
 __EXCEPT_START__       = 0x0;\r
 __EXCEPT_END__         = 0x0;\r