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 }