83xx: Cleanup for partial linking and --gc-sections
authorWolfgang Denk <wd@denx.de>
Thu, 25 Nov 2010 11:15:34 +0000 (12:15 +0100)
committerWolfgang Denk <wd@denx.de>
Sat, 27 Nov 2010 22:35:09 +0000 (23:35 +0100)
Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Kim Phillips <kim.phillips@freescale.com>
Cc: Haiying Wang <r54964@freescale.com>
arch/powerpc/cpu/mpc83xx/u-boot.lds
nand_spl/board/freescale/mpc8313erdb/u-boot.lds
nand_spl/board/freescale/mpc8315erdb/u-boot.lds

index 0b74a13fb1dc8c5110765f1bae893a41133c1871..81a7ace64c2392ee572165f973522bd17fbaf407 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2006
+ * (C) Copyright 2006-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -25,41 +25,13 @@ OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)          }
-  .dynsym        : { *(.dynsym)                }
-  .dynstr        : { *(.dynstr)                }
-  .rel.text      : { *(.rel.text)              }
-  .rela.text     : { *(.rela.text)     }
-  .rel.data      : { *(.rel.data)              }
-  .rela.data     : { *(.rela.data)     }
-  .rel.rodata    : { *(.rel.rodata)    }
-  .rela.rodata   : { *(.rela.rodata)   }
-  .rel.got       : { *(.rel.got)               }
-  .rela.got      : { *(.rela.got)              }
-  .rel.ctors     : { *(.rel.ctors)     }
-  .rela.ctors    : { *(.rela.ctors)    }
-  .rel.dtors     : { *(.rel.dtors)     }
-  .rela.dtors    : { *(.rela.dtors)    }
-  .rel.bss       : { *(.rel.bss)               }
-  .rela.bss      : { *(.rela.bss)              }
-  .rel.plt       : { *(.rel.plt)               }
-  .rela.plt      : { *(.rela.plt)              }
-  .init          : { *(.init)  }
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc83xx/start.o   (.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc83xx/start.o   (.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -67,23 +39,19 @@ SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -109,9 +77,8 @@ SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }
index ad8258957bb81a89c3e0d179415b413bab900494..138e42765f1cd3da89381101e5a2f87feb82e242 100644 (file)
@@ -30,7 +30,6 @@ SECTIONS
        .text : {
                *(.text*)
                . = ALIGN(16);
-               *(.eh_frame)
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
        }
 
@@ -39,13 +38,15 @@ SECTIONS
                *(.data*)
                *(.sdata*)
                _GOT2_TABLE_ = .;
-               *(.got2)
+               KEEP(*(.got2))
                __got2_entries = (. - _GOT2_TABLE_) >> 2;
        }
 
        . = ALIGN(8);
        __bss_start = .;
-       .bss (NOLOAD) : { *(.*bss) }
+       .bss (NOLOAD) : {
+               *(.*bss)
+       }
        _end = .;
 }
 ENTRY(_start)
index ad8258957bb81a89c3e0d179415b413bab900494..138e42765f1cd3da89381101e5a2f87feb82e242 100644 (file)
@@ -30,7 +30,6 @@ SECTIONS
        .text : {
                *(.text*)
                . = ALIGN(16);
-               *(.eh_frame)
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
        }
 
@@ -39,13 +38,15 @@ SECTIONS
                *(.data*)
                *(.sdata*)
                _GOT2_TABLE_ = .;
-               *(.got2)
+               KEEP(*(.got2))
                __got2_entries = (. - _GOT2_TABLE_) >> 2;
        }
 
        . = ALIGN(8);
        __bss_start = .;
-       .bss (NOLOAD) : { *(.*bss) }
+       .bss (NOLOAD) : {
+               *(.*bss)
+       }
        _end = .;
 }
 ENTRY(_start)