Warning, /bsps/mips/hurricane/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 }