Back to home page

LXR

 
 

    


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

0001 /*
0002  *  Based on jmr3904app-dram.ld from newlib 1.8.2
0003  */
0004 
0005 /*
0006  * Declare some sizes.
0007  */
0008 RamBase = DEFINED(RamBase) ? RamBase : 0x88000000;
0009 RamSize = DEFINED(RamSize) ? RamSize : 4M;
0010 RamEnd = RamBase + RamSize;
0011 HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
0012 
0013 ENTRY(_start)
0014 STARTUP(start.o)
0015 
0016 SECTIONS
0017 { 
0018     . = 0x88000000;
0019     .text : 
0020     { 
0021        _ftext = . ;
0022        eprol  =  .;
0023       *(.text*)
0024       *(.gnu.linkonce.t*)
0025       *(.mips16.fn.*)
0026       *(.mips16.call.*)
0027       PROVIDE (__runtime_reloc_start = .);
0028       *(.rel.sdata)
0029       PROVIDE (__runtime_reloc_stop = .);
0030 
0031       *(.gcc_except_table*)
0032       *(.eh_frame_hdr)
0033       *(.eh_frame)
0034     }
0035 
0036   .rtemsroset : {
0037     /* for pre rtems-libbsd FreeBSD code */
0038     __start_set_sysctl_set = .;
0039     *(set_sysctl_*);
0040     __stop_set_sysctl_set = .;
0041     *(set_domain_*);
0042     *(set_pseudo_*);
0043 
0044     KEEP (*(SORT(.rtemsroset.*)))
0045 
0046     . = ALIGN (16);
0047     _endtext = .;
0048   }
0049 
0050   .init :
0051   {
0052         KEEP(*(.init))
0053   }
0054 
0055   .fini :
0056   {
0057         KEEP(*(.fini))
0058   }
0059 
0060   .ctors    :
0061   {
0062     /* gcc uses crtbegin.o to find the start of
0063        the constructors, so we make sure it is
0064        first.  Because this is a wildcard, it
0065        doesn't matter if the user does not
0066        actually link against crtbegin.o; the
0067        linker won't look for a file to match a
0068        wildcard.  The wildcard also means that it
0069        doesn't matter which directory crtbegin.o
0070        is in.  */
0071 
0072     KEEP (*crtbegin.o(.ctors))
0073 
0074     /* We don't want to include the .ctor section from
0075        from the crtend.o file until after the sorted ctors.
0076        The .ctor section from the crtend file contains the
0077        end of ctors marker and it must be last */
0078 
0079     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
0080     KEEP (*(SORT(.ctors.*)))
0081     KEEP (*(.ctors))
0082   }
0083 
0084   .dtors    :
0085   {
0086     KEEP (*crtbegin.o(.dtors))
0087     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
0088     KEEP (*(SORT(.dtors.*)))
0089     KEEP (*(.dtors))
0090 
0091     etext  =  .;
0092     _etext  =  .;
0093   }
0094 
0095   .rdata : {
0096     *(.rdata)
0097     *(.rodata)
0098     *(.rodata.*)
0099     *(.gnu.linkonce.r*)
0100   }
0101 
0102   .tdata : {
0103     _TLS_Data_begin = .;
0104     *(.tdata .tdata.* .gnu.linkonce.td.*)
0105     _TLS_Data_end = .;
0106   }
0107 
0108   .tbss : {
0109     _TLS_BSS_begin = .;
0110     *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0111     _TLS_BSS_end = .;
0112   }
0113 
0114   _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
0115   _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
0116   _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
0117   _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
0118   _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
0119   _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0120 
0121    _fdata = ALIGN(16);
0122 
0123   .data : {
0124     *(.data)
0125     *(.data.*)
0126     *(.gnu.linkonce.d*)
0127     SORT(CONSTRUCTORS)
0128   }
0129 
0130   .rtemsrwset : {
0131     KEEP (*(SORT(.rtemsrwset.*)))
0132   }
0133   . = ALIGN(8);
0134 
0135   .jcr : {
0136         KEEP (*(.jcr))
0137   }
0138 
0139   _gp = ALIGN(16) + 0x7440;
0140   __global = _gp;
0141 
0142   .sdata : {
0143     *(.sdata)
0144     *(.sdata.*)
0145     *(.gnu.linkonce.s*)
0146   }
0147   .lit8 : {
0148     *(.lit8)
0149   }
0150   .lit4 : {
0151     *(.lit4)
0152   }
0153 
0154    edata  =  .;
0155    _edata  =  .;
0156    _fbss = .;
0157 
0158   .sbss : {
0159     *(.sbss*)
0160     *(.scommon)
0161   }
0162   .bss : {
0163     _bss_start = . ;
0164     *(.bss*)
0165     *(COMMON)
0166     . = ALIGN (64);
0167     _clear_end = .;
0168   }
0169 
0170   .noinit (NOLOAD) : {
0171     *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0172   }
0173 
0174   .rtemsstack (NOLOAD) : {
0175     *(SORT(.rtemsstack.*))
0176     WorkAreaBase = .;
0177   }
0178 
0179   . = 0x88400000; /* reserve some memory for Work Area */
0180  end = .;
0181  _end = .;
0182 
0183 
0184   /* DWARF debug sections.
0185      Symbols in the DWARF debugging sections are relative to
0186      the beginning of the section so we begin them at 0.  */
0187 
0188   /* DWARF 1 */
0189   .debug          0 : { *(.debug) }
0190   .line           0 : { *(.line) }
0191 
0192   /* GNU DWARF 1 extensions */
0193   .debug_srcinfo  0 : { *(.debug_srcinfo) }
0194   .debug_sfnames  0 : { *(.debug_sfnames) }
0195 
0196   /* DWARF 1.1 and DWARF 2 */
0197   .debug_aranges  0 : { *(.debug_aranges) }
0198   .debug_pubnames 0 : { *(.debug_pubnames) }
0199 
0200   /* DWARF 2 */
0201   .debug_info     0 : { *(.debug_info) }
0202   .debug_abbrev   0 : { *(.debug_abbrev) }
0203   .debug_line     0 : { *(.debug_line) }
0204   .debug_frame    0 : { *(.debug_frame) }
0205   .debug_str      0 : { *(.debug_str) }
0206   .debug_loc      0 : { *(.debug_loc) }
0207   .debug_macinfo  0 : { *(.debug_macinfo) }
0208 
0209   /* SGI/MIPS DWARF 2 extensions */
0210   .debug_weaknames 0 : { *(.debug_weaknames) }
0211   .debug_funcnames 0 : { *(.debug_funcnames) }
0212   .debug_typenames 0 : { *(.debug_typenames) }
0213   .debug_varnames  0 : { *(.debug_varnames) }
0214 
0215   /* Addition to let linker know about custom section for GDB pretty-printing support. */
0216   .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0217 }