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 }