Back to home page

LXR

 
 

    


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

0001 /*
0002  *  MIPS Malta Linker Script
0003  */
0004 
0005 /*
0006  * Declare some sizes.
0007  */
0008 RamBase = DEFINED(RamBase) ? RamBase : 0x80000000;
0009 RamSize = DEFINED(RamSize) ? RamSize : 128M;
0010 RamEnd = RamBase + RamSize;
0011 HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
0012 
0013 ENTRY(_start)
0014 STARTUP(start.o)
0015 
0016 SECTIONS
0017 { 
0018     . = 0x80010000;
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   .init :
0037   {
0038         KEEP(*(.init))
0039   }
0040 
0041   .fini :
0042   {
0043         KEEP(*(.fini))
0044   }
0045 
0046   .ctors    :
0047   {
0048     /* gcc uses crtbegin.o to find the start of
0049        the constructors, so we make sure it is
0050        first.  Because this is a wildcard, it
0051        doesn't matter if the user does not
0052        actually link against crtbegin.o; the
0053        linker won't look for a file to match a
0054        wildcard.  The wildcard also means that it
0055        doesn't matter which directory crtbegin.o
0056        is in.  */
0057 
0058     KEEP (*crtbegin.o(.ctors))
0059 
0060     /* We don't want to include the .ctor section from
0061        from the crtend.o file until after the sorted ctors.
0062        The .ctor section from the crtend file contains the
0063        end of ctors marker and it must be last */
0064 
0065     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
0066     KEEP (*(SORT(.ctors.*)))
0067     KEEP (*(.ctors))
0068   }
0069 
0070   .dtors    :
0071   {
0072     KEEP (*crtbegin.o(.dtors))
0073     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
0074     KEEP (*(SORT(.dtors.*)))
0075     KEEP (*(.dtors))
0076 
0077     etext  =  .;
0078     _etext  =  .;
0079   }
0080 
0081   .rtemsroset : {
0082     /* for pre rtems-libbsd FreeBSD code */
0083     __start_set_sysctl_set = .;
0084     *(set_sysctl_*);
0085     __stop_set_sysctl_set = .;
0086     *(set_domain_*);
0087     *(set_pseudo_*);
0088 
0089     KEEP (*(SORT(.rtemsroset.*)))
0090 
0091     . = ALIGN (16);
0092     _endtext = .;
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 
0134   . = ALIGN(8);
0135 
0136   .jcr : {
0137         KEEP (*(.jcr))
0138   }
0139 
0140   _gp = ALIGN(16) + 0x7440;
0141   __global = _gp;
0142 
0143   .sdata : {
0144     *(.sdata)
0145     *(.sdata.*)
0146     *(.gnu.linkonce.s*)
0147   }
0148   .lit8 : {
0149     *(.lit8)
0150   }
0151   .lit4 : {
0152     *(.lit4)
0153   }
0154 
0155    edata  =  .;
0156    _edata  =  .;
0157    _fbss = .;
0158 
0159   .sbss : {
0160     *(.sbss*)
0161     *(.scommon)
0162   }
0163   .bss : {
0164     _bss_start = . ;
0165     *(.bss*)
0166     *(COMMON)
0167     . = ALIGN (64);
0168     _clear_end = .;
0169   }
0170 
0171   .noinit (NOLOAD) : {
0172     *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0173   }
0174 
0175   .rtemsstack (NOLOAD) : {
0176     *(SORT(.rtemsstack.*))
0177     WorkAreaBase = .;
0178   }
0179 
0180   . = 0x88400000; /* reserve some memory for Work Area */
0181  end = .;
0182  _end = .;
0183 
0184 
0185   /* DWARF debug sections.
0186      Symbols in the DWARF debugging sections are relative to
0187      the beginning of the section so we begin them at 0.  */
0188 
0189   /* DWARF 1 */
0190   .debug          0 : { *(.debug) }
0191   .line           0 : { *(.line) }
0192 
0193   /* GNU DWARF 1 extensions */
0194   .debug_srcinfo  0 : { *(.debug_srcinfo) }
0195   .debug_sfnames  0 : { *(.debug_sfnames) }
0196 
0197   /* DWARF 1.1 and DWARF 2 */
0198   .debug_aranges  0 : { *(.debug_aranges) }
0199   .debug_pubnames 0 : { *(.debug_pubnames) }
0200 
0201   /* DWARF 2 */
0202   .debug_info     0 : { *(.debug_info) }
0203   .debug_abbrev   0 : { *(.debug_abbrev) }
0204   .debug_line     0 : { *(.debug_line) }
0205   .debug_frame    0 : { *(.debug_frame) }
0206   .debug_str      0 : { *(.debug_str) }
0207   .debug_loc      0 : { *(.debug_loc) }
0208   .debug_macinfo  0 : { *(.debug_macinfo) }
0209 
0210   /* SGI/MIPS DWARF 2 extensions */
0211   .debug_weaknames 0 : { *(.debug_weaknames) }
0212   .debug_funcnames 0 : { *(.debug_funcnames) }
0213   .debug_typenames 0 : { *(.debug_typenames) }
0214   .debug_varnames  0 : { *(.debug_varnames) }
0215 
0216   /* Addition to let linker know about custom section for GDB pretty-printing support. */
0217   .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0218 }