Back to home page

LXR

 
 

    


Warning, /bsps/v850/gdbv850sim/start/linkcmds is written in an unsupported language. File is not indexed.

0001 /*
0002  * Declare some sizes.
0003  */
0004 _RamBase = DEFINED(_RamBase) ? _RamBase : 0x100000; /* RAM starts at 1MB */
0005 _RamSize = DEFINED(_RamSize) ? _RamSize : 0x100000; /* default is 1MB */
0006 _RamEnd = _RamBase + _RamSize;
0007 _HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
0008 
0009 /* Default linker script, for normal executables */
0010 OUTPUT_FORMAT("elf32-v850-rh850", "elf32-v850-rh850",
0011               "elf32-v850-rh850")
0012 STARTUP(start.o)
0013 OUTPUT_ARCH(v850-rh850)
0014 ENTRY(_start)
0015 /* GROUP(-lc -lsim -lgcc) */
0016 SEARCH_DIR(.);
0017 EXTERN(__ctbp __ep __gp);
0018 SECTIONS
0019 {
0020   /* This saves a little space in the ELF file, since the zda starts
0021      at a higher location that the ELF headers take up.  */
0022   .zdata 0x160 :
0023   {
0024         *(.zdata)
0025         *(.zbss)
0026         *(reszdata)
0027         *(.zcommon)
0028   }
0029   /* This is the read only part of the zero data area.
0030      Having it as a seperate section prevents its
0031      attributes from being inherited by the zdata
0032      section.  Specifically it prevents the zdata
0033      section from being marked READONLY.  */
0034   .rozdata ALIGN (4) :
0035   {
0036         *(.rozdata)
0037         *(romzdata)
0038         *(romzbss)
0039   }
0040   /* Read-only sections, merged into text segment.  */
0041   . = 0x100000;
0042   .interp       : { *(.interp) }
0043   .hash         : { *(.hash) }
0044   .dynsym       : { *(.dynsym) }
0045   .dynstr       : { *(.dynstr) }
0046   .rel.text     : { *(.rel.text) }
0047   .rela.text    : { *(.rela.text) }
0048   .rel.data     : { *(.rel.data) }
0049   .rela.data    : { *(.rela.data) }
0050   .rel.rodata   : { *(.rel.rodata) }
0051   .rela.rodata  : { *(.rela.rodata) }
0052   .rel.gcc_except_table : { *(.rel.gcc_except_table) }
0053   .rela.gcc_except_table : { *(.rela.gcc_except_table) }
0054   .rel.got      : { *(.rel.got) }
0055   .rela.got     : { *(.rela.got) }
0056   .rel.ctors    : { *(.rel.ctors) }
0057   .rela.ctors   : { *(.rela.ctors) }
0058   .rel.dtors    : { *(.rel.dtors) }
0059   .rela.dtors   : { *(.rela.dtors) }
0060   .rel.init     : { *(.rel.init) }
0061   .rela.init    : { *(.rela.init) }
0062   .rel.fini     : { *(.rel.fini) }
0063   .rela.fini    : { *(.rela.fini) }
0064   .rel.bss      : { *(.rel.bss) }
0065   .rela.bss     : { *(.rela.bss) }
0066   .rel.plt      : { *(.rel.plt) }
0067   .rela.plt     : { *(.rela.plt) }
0068   .init         : { KEEP (*(.init)) } =0
0069   .plt          : { *(.plt) }
0070   .text         :
0071   {
0072     *(.text)
0073     *(.text.*)
0074     /* .gnu.warning sections are handled specially by elf32.em.  */
0075     *(.gnu.warning)
0076     *(.gnu.linkonce.t*)
0077   } =0
0078   _etext = .;
0079   PROVIDE (etext = .);
0080    /* This is special code area at the end of the normal text section.
0081       It contains a small lookup table at the start followed by the
0082       code pointed to by entries in the lookup table.  */
0083   .call_table_data ALIGN (4) :
0084   {
0085     PROVIDE(__ctbp = .);
0086     *(.call_table_data)
0087   } = 0xff   /* Fill gaps with 0xff.  */
0088   .call_table_text :
0089   {
0090     *(.call_table_text)
0091   }
0092   .fini         : { KEEP (*(.fini)) } =0
0093   .rodata       : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
0094   .rodata1      : { *(.rodata1) }
0095   .rtemsroset : {
0096     /* for pre rtems-libbsd FreeBSD code */
0097     ___start_set_sysctl_set = .;
0098     *(set_sysctl_*);
0099     ___stop_set_sysctl_set = .;
0100     *(set_domain_*);
0101     *(set_pseudo_*);
0102 
0103     KEEP (*(SORT(.rtemsroset.*)))
0104   } =0xff
0105   .tdata : {
0106     __TLS_Data_begin = .;
0107     *(.tdata .tdata.* .gnu.linkonce.td.*)
0108     __TLS_Data_end = .;
0109   }
0110   .tbss : {
0111     __TLS_BSS_begin = .;
0112     *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0113     __TLS_BSS_end = .;
0114   }
0115   __TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
0116   __TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
0117   __TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
0118   __TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
0119   __TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
0120   __TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0121   .data         :
0122   {
0123     *(.data)
0124     *(.data.*)
0125     KEEP (*(SORT(.rtemsrwset.*)))
0126     *(.gnu.linkonce.d*)
0127     CONSTRUCTORS
0128   }
0129   .data1        : { *(.data1) }
0130   .ctors        :
0131   {
0132     ___ctors = .;
0133     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
0134     KEEP (*(SORT(.ctors.*)))
0135     KEEP (*crtend(.ctors))
0136     ___ctors_end = .;
0137   }
0138   .dtors        :
0139   {
0140     ___dtors = .;
0141     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
0142     KEEP (*(SORT(.dtors.*)))
0143     KEEP (*crtend.o(.dtors))
0144     ___dtors_end = .;
0145   }
0146   .jcr          :
0147   {
0148     KEEP (*(.jcr))
0149   }
0150   .gcc_except_table : { *(.gcc_except_table) }
0151   .got          : { *(.got.plt) *(.got) }
0152   .dynamic      : { *(.dynamic) }
0153   .tdata ALIGN (4) :
0154   {
0155         PROVIDE (__ep = .);
0156         *(.tbyte)
0157         *(.tcommon_byte)
0158         *(.tdata)
0159         *(.tbss)
0160         *(.tcommon)
0161   }
0162   /* We want the small data sections together, so single-instruction offsets
0163      can access them all, and initialized data all before uninitialized, so
0164      we can shorten the on-disk segment size.  */
0165   .sdata ALIGN (4) :
0166   {
0167         PROVIDE (__gp = . + 0x8000);
0168         *(.sdata)
0169    }
0170   /* See comment about .rozdata. */
0171   .rosdata ALIGN (4) :
0172   {
0173         *(.rosdata)
0174   }
0175   /* We place the .sbss data section AFTER the .rosdata section, so that
0176      it can directly preceed the .bss section.  This allows runtime startup
0177      code to initialise all the zero-data sections by simply taking the
0178      value of '_edata' and zeroing until it reaches '_end'.  */
0179   .sbss :
0180   {
0181         __sbss_start = .;
0182         *(.sbss)
0183         *(.scommon)
0184   }
0185   _edata  = DEFINED (__sbss_start) ? __sbss_start : . ;
0186   PROVIDE (edata = _edata);
0187   .bss       :
0188   {
0189         __bss_start = DEFINED (__sbss_start) ? __sbss_start : . ;
0190         __real_bss_start = . ;
0191         *(.dynbss)
0192         *(.bss)
0193         *(COMMON)
0194   }
0195   .noinit (NOLOAD) : {
0196     *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0197   }
0198   .rtemsstack (NOLOAD) : {
0199     *(SORT(.rtemsstack.*))
0200   }
0201   _WorkAreaBase = .;
0202   _end = . ;
0203   PROVIDE (end = .);
0204   /* Stabs debugging sections.  */
0205   .stab 0               : { *(.stab) }
0206   .stabstr 0            : { *(.stabstr) }
0207   .stab.excl 0          : { *(.stab.excl) }
0208   .stab.exclstr 0       : { *(.stab.exclstr) }
0209   .stab.index 0         : { *(.stab.index) }
0210   .stab.indexstr 0      : { *(.stab.indexstr) }
0211   .comment 0            : { *(.comment) }
0212   /* DWARF debug sections.
0213      Symbols in the DWARF debugging sections are relative to the beginning
0214      of the section so we begin them at 0.  */
0215   /* DWARF 1 */
0216   .debug          0     : { *(.debug) }
0217   .line           0     : { *(.line) }
0218   /* GNU DWARF 1 extensions */
0219   .debug_srcinfo  0     : { *(.debug_srcinfo) }
0220   .debug_sfnames  0     : { *(.debug_sfnames) }
0221   /* DWARF 1.1 and DWARF 2 */
0222   .debug_aranges  0     : { *(.debug_aranges) }
0223   .debug_pubnames 0     : { *(.debug_pubnames) }
0224   /* DWARF 2 */
0225   .debug_info     0     : { *(.debug_info) *(.gnu.linkonce.wi.*) }
0226   .debug_abbrev   0     : { *(.debug_abbrev) }
0227   .debug_line     0     : { *(.debug_line) }
0228   .debug_frame    0     : { *(.debug_frame) }
0229   .debug_str      0     : { *(.debug_str) }
0230   .debug_loc      0     : { *(.debug_loc) }
0231   .debug_macinfo  0     : { *(.debug_macinfo) }
0232   /* SGI/MIPS DWARF 2 extensions.  */
0233   .debug_weaknames 0    : { *(.debug_weaknames) }
0234   .debug_funcnames 0    : { *(.debug_funcnames) }
0235   .debug_typenames 0    : { *(.debug_typenames) }
0236   .debug_varnames  0    : { *(.debug_varnames) }
0237 }
0238