Back to home page

LXR

 
 

    


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

0001 /*
0002  *  linkcmds
0003  */
0004 
0005 /*
0006  * Declare some sizes.
0007  */
0008 RamBase = DEFINED(RamBase) ? RamBase : 0x80000000;
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   /* 0x80000000 - 0x8001FFFF used by PMON (with 0x80010000 - 0x8001FFFF as heap for symbol storage)
0019         0x80020000 - 0x8002FFFF reserved for shared memory
0020         0x80030000 beginning of text (code) section
0021    */
0022     .text 0x80030000 : 
0023     { 
0024        _ftext = . ;
0025        eprol  =  .;
0026       *(.text)
0027       *(.text.*)
0028       *(.gnu.linkonce.t*)
0029       *(.mips16.fn.*)
0030       *(.mips16.call.*)
0031       PROVIDE (__runtime_reloc_start = .);
0032       *(.rel.sdata)
0033       PROVIDE (__runtime_reloc_stop = .);
0034 
0035       /*
0036        * Special FreeBSD sysctl sections.
0037        */
0038       . = ALIGN (16);
0039       __start_set_sysctl_set = .;
0040       *(set_sysctl_*);
0041       __stop_set_sysctl_set = ABSOLUTE(.);
0042       *(set_domain_*);
0043       *(set_pseudo_*);
0044 
0045       *(.gcc_except_table*)
0046       *(.eh_frame_hdr)
0047       *(.eh_frame)
0048     }
0049 
0050   .init :
0051   {
0052         KEEP(*crti.o(.init))
0053         KEEP(*(.init))
0054         KEEP(*crtn.o(.init))
0055   }
0056 
0057   .fini :
0058   {
0059         KEEP(*crti.o(.fini))
0060         KEEP(*(.fini))
0061         KEEP(*crtn.o(.fini))
0062   }
0063 
0064   .ctors    :
0065   {
0066     /* gcc uses crtbegin.o to find the start of
0067        the constructors, so we make sure it is
0068        first.  Because this is a wildcard, it
0069        doesn't matter if the user does not
0070        actually link against crtbegin.o; the
0071        linker won't look for a file to match a
0072        wildcard.  The wildcard also means that it
0073        doesn't matter which directory crtbegin.o
0074        is in.  */
0075 
0076     KEEP (*crtbegin.o(.ctors))
0077 
0078     /* We don't want to include the .ctor section from
0079        from the crtend.o file until after the sorted ctors.
0080        The .ctor section from the crtend file contains the
0081        end of ctors marker and it must be last */
0082 
0083     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
0084     KEEP (*(SORT(.ctors.*)))
0085     KEEP (*(.ctors))
0086   }
0087 
0088   .dtors    :
0089   {
0090     KEEP (*crtbegin.o(.dtors))
0091     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
0092     KEEP (*(SORT(.dtors.*)))
0093     KEEP (*(.dtors))
0094 
0095     etext  =  .;
0096     _etext  =  .;
0097   }
0098 
0099   .rdata : {
0100     *(.rdata)
0101     *(.rodata)
0102     *(.rodata.*)
0103     KEEP (*(SORT(.rtemsroset.*)))
0104     *(.gnu.linkonce.r*)
0105   }
0106 
0107   .tdata : {
0108     _TLS_Data_begin = .;
0109     *(.tdata .tdata.* .gnu.linkonce.td.*)
0110     _TLS_Data_end = .;
0111   }
0112 
0113   .tbss : {
0114     _TLS_BSS_begin = .;
0115     *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0116     _TLS_BSS_end = .;
0117   }
0118 
0119   _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
0120   _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
0121   _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
0122   _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
0123   _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
0124   _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0125 
0126    _fdata = ALIGN(16);
0127 
0128   .data : {
0129     *(.data)
0130     *(.data.*)
0131     KEEP (*(SORT(.rtemsrwset.*)))
0132     *(.gnu.linkonce.d*)
0133     SORT(CONSTRUCTORS)
0134   }
0135   . = ALIGN(8);
0136 
0137   .jcr : {
0138         KEEP (*(.jcr))
0139   }
0140 
0141   _gp = ALIGN(16) + 0x8000;
0142   __global = _gp;
0143 
0144   .sdata : {
0145     *(.sdata)
0146     *(.sdata.*)
0147     *(.gnu.linkonce.s*)
0148   }
0149   .lit8 : {
0150     *(.lit8)
0151   }
0152   .lit4 : {
0153     *(.lit4)
0154   }
0155 
0156    edata  =  .;
0157    _edata  =  .;
0158    _fbss = .;
0159 
0160   .sbss : {
0161     *(.sbss)
0162     *(.scommon)
0163   }
0164   .bss : {
0165     _bss_start = . ;
0166     *(.bss)
0167     *(COMMON)
0168     . = ALIGN (64);
0169      end = .;
0170     _end = .;
0171   }
0172 
0173   .noinit (NOLOAD) : {
0174     *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0175   }
0176 
0177   .rtemsstack (NOLOAD) : {
0178     *(SORT(.rtemsstack.*))
0179     WorkAreaBase = .;
0180   }
0181 
0182   /* Debug sections.  These should never be loadable, but they must have
0183      zero addresses for the debuggers to work correctly.  */
0184   .line                 0 : { *(.line)                  }
0185   .debug                0 : { *(.debug)                 }
0186   .debug_sfnames        0 : { *(.debug_sfnames)         }
0187   .debug_srcinfo        0 : { *(.debug_srcinfo)         }
0188   .debug_macinfo        0 : { *(.debug_macinfo)         }
0189   .debug_pubnames       0 : { *(.debug_pubnames)        }
0190   .debug_aranges        0 : { *(.debug_aranges)         }
0191 
0192   /* Addition to let linker know about custom section for GDB pretty-printing support. */
0193   .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0194 }