Home | History | Annotate | Line # | Download | only in scripttempl
ft32.sc revision 1.2.8.1
      1 TORS=".tors :
      2   {
      3     ___ctors = . ;
      4     *(.ctors)
      5     ___ctors_end = . ;
      6     ___dtors = . ;
      7     *(.dtors)
      8     ___dtors_end = . ;
      9     . = ALIGN(4);
     10   } > ram"
     11 
     12 cat <<EOF
     13 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
     14 OUTPUT_ARCH(${ARCH})
     15 ${LIB_SEARCH_DIRS}
     16 
     17 MEMORY
     18 {
     19   /* Note - we cannot use "PROVIDE(len)" ... "LENGTH = len" as
     20      PROVIDE statements are not evaluated inside MEMORY blocks.  */
     21   flash     (rx)   : ORIGIN = 0, LENGTH = 256K
     22   ram       (rw!x) : ORIGIN = 0x800000, LENGTH = 64K
     23 }
     24 SECTIONS
     25 {
     26   .text :
     27   {
     28     *(.text*)
     29     *(.strings)
     30     *(._pm*)
     31     *(.init)
     32     *(.fini)
     33     ${RELOCATING+ _etext = . ; }
     34     . = ALIGN(4);
     35   } ${RELOCATING+ > flash}
     36   ${CONSTRUCTING+${TORS}}
     37   .data	: ${RELOCATING+ AT (ADDR (.text) + SIZEOF (.text))}
     38   {
     39     *(.data)
     40     *(.rodata)
     41     *(.rodata*)
     42     ${RELOCATING+ _edata = . ; }
     43   } ${RELOCATING+ > ram}
     44   .bss  ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
     45   {
     46     ${RELOCATING+ _bss_start = . ; }
     47     *(.bss)
     48     *(COMMON)
     49     ${RELOCATING+ _end = . ;  }
     50   } ${RELOCATING+ > ram}
     51 
     52   ${RELOCATING+ __data_load_start = LOADADDR(.data); }
     53   ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); }
     54 
     55   .stab 0 ${RELOCATING+(NOLOAD)} :
     56   {
     57     *(.stab)
     58   }
     59   .stabstr 0 ${RELOCATING+(NOLOAD)} :
     60   {
     61     *(.stabstr)
     62   }
     63 EOF
     64 
     65 . $srcdir/scripttempl/DWARF.sc
     66 
     67 cat <<EOF
     68 }
     69 EOF
     70