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