Warning, /bsps/v850/gdbv850sim/start/linkcmds is written in an unsupported language. File is not indexed.
0001 /*
0002 * Declare some sizes.
0003 */
0004 _RamBase = DEFINED(_RamBase) ? _RamBase : 0x100000; /* RAM starts at 1MB */
0005 _RamSize = DEFINED(_RamSize) ? _RamSize : 0x100000; /* default is 1MB */
0006 _RamEnd = _RamBase + _RamSize;
0007 _HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
0008
0009 /* Default linker script, for normal executables */
0010 OUTPUT_FORMAT("elf32-v850-rh850", "elf32-v850-rh850",
0011 "elf32-v850-rh850")
0012 STARTUP(start.o)
0013 OUTPUT_ARCH(v850-rh850)
0014 ENTRY(_start)
0015 /* GROUP(-lc -lsim -lgcc) */
0016 SEARCH_DIR(.);
0017 EXTERN(__ctbp __ep __gp);
0018 SECTIONS
0019 {
0020 /* This saves a little space in the ELF file, since the zda starts
0021 at a higher location that the ELF headers take up. */
0022 .zdata 0x160 :
0023 {
0024 *(.zdata)
0025 *(.zbss)
0026 *(reszdata)
0027 *(.zcommon)
0028 }
0029 /* This is the read only part of the zero data area.
0030 Having it as a seperate section prevents its
0031 attributes from being inherited by the zdata
0032 section. Specifically it prevents the zdata
0033 section from being marked READONLY. */
0034 .rozdata ALIGN (4) :
0035 {
0036 *(.rozdata)
0037 *(romzdata)
0038 *(romzbss)
0039 }
0040 /* Read-only sections, merged into text segment. */
0041 . = 0x100000;
0042 .interp : { *(.interp) }
0043 .hash : { *(.hash) }
0044 .dynsym : { *(.dynsym) }
0045 .dynstr : { *(.dynstr) }
0046 .rel.text : { *(.rel.text) }
0047 .rela.text : { *(.rela.text) }
0048 .rel.data : { *(.rel.data) }
0049 .rela.data : { *(.rela.data) }
0050 .rel.rodata : { *(.rel.rodata) }
0051 .rela.rodata : { *(.rela.rodata) }
0052 .rel.gcc_except_table : { *(.rel.gcc_except_table) }
0053 .rela.gcc_except_table : { *(.rela.gcc_except_table) }
0054 .rel.got : { *(.rel.got) }
0055 .rela.got : { *(.rela.got) }
0056 .rel.ctors : { *(.rel.ctors) }
0057 .rela.ctors : { *(.rela.ctors) }
0058 .rel.dtors : { *(.rel.dtors) }
0059 .rela.dtors : { *(.rela.dtors) }
0060 .rel.init : { *(.rel.init) }
0061 .rela.init : { *(.rela.init) }
0062 .rel.fini : { *(.rel.fini) }
0063 .rela.fini : { *(.rela.fini) }
0064 .rel.bss : { *(.rel.bss) }
0065 .rela.bss : { *(.rela.bss) }
0066 .rel.plt : { *(.rel.plt) }
0067 .rela.plt : { *(.rela.plt) }
0068 .init : { KEEP (*(.init)) } =0
0069 .plt : { *(.plt) }
0070 .text :
0071 {
0072 *(.text)
0073 *(.text.*)
0074 /* .gnu.warning sections are handled specially by elf32.em. */
0075 *(.gnu.warning)
0076 *(.gnu.linkonce.t*)
0077 } =0
0078 _etext = .;
0079 PROVIDE (etext = .);
0080 /* This is special code area at the end of the normal text section.
0081 It contains a small lookup table at the start followed by the
0082 code pointed to by entries in the lookup table. */
0083 .call_table_data ALIGN (4) :
0084 {
0085 PROVIDE(__ctbp = .);
0086 *(.call_table_data)
0087 } = 0xff /* Fill gaps with 0xff. */
0088 .call_table_text :
0089 {
0090 *(.call_table_text)
0091 }
0092 .fini : { KEEP (*(.fini)) } =0
0093 .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
0094 .rodata1 : { *(.rodata1) }
0095 .rtemsroset : {
0096 /* for pre rtems-libbsd FreeBSD code */
0097 ___start_set_sysctl_set = .;
0098 *(set_sysctl_*);
0099 ___stop_set_sysctl_set = .;
0100 *(set_domain_*);
0101 *(set_pseudo_*);
0102
0103 KEEP (*(SORT(.rtemsroset.*)))
0104 } =0xff
0105 .tdata : {
0106 __TLS_Data_begin = .;
0107 *(.tdata .tdata.* .gnu.linkonce.td.*)
0108 __TLS_Data_end = .;
0109 }
0110 .tbss : {
0111 __TLS_BSS_begin = .;
0112 *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0113 __TLS_BSS_end = .;
0114 }
0115 __TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
0116 __TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
0117 __TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
0118 __TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
0119 __TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
0120 __TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0121 .data :
0122 {
0123 *(.data)
0124 *(.data.*)
0125 KEEP (*(SORT(.rtemsrwset.*)))
0126 *(.gnu.linkonce.d*)
0127 CONSTRUCTORS
0128 }
0129 .data1 : { *(.data1) }
0130 .ctors :
0131 {
0132 ___ctors = .;
0133 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
0134 KEEP (*(SORT(.ctors.*)))
0135 KEEP (*crtend(.ctors))
0136 ___ctors_end = .;
0137 }
0138 .dtors :
0139 {
0140 ___dtors = .;
0141 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
0142 KEEP (*(SORT(.dtors.*)))
0143 KEEP (*crtend.o(.dtors))
0144 ___dtors_end = .;
0145 }
0146 .jcr :
0147 {
0148 KEEP (*(.jcr))
0149 }
0150 .gcc_except_table : { *(.gcc_except_table) }
0151 .got : { *(.got.plt) *(.got) }
0152 .dynamic : { *(.dynamic) }
0153 .tdata ALIGN (4) :
0154 {
0155 PROVIDE (__ep = .);
0156 *(.tbyte)
0157 *(.tcommon_byte)
0158 *(.tdata)
0159 *(.tbss)
0160 *(.tcommon)
0161 }
0162 /* We want the small data sections together, so single-instruction offsets
0163 can access them all, and initialized data all before uninitialized, so
0164 we can shorten the on-disk segment size. */
0165 .sdata ALIGN (4) :
0166 {
0167 PROVIDE (__gp = . + 0x8000);
0168 *(.sdata)
0169 }
0170 /* See comment about .rozdata. */
0171 .rosdata ALIGN (4) :
0172 {
0173 *(.rosdata)
0174 }
0175 /* We place the .sbss data section AFTER the .rosdata section, so that
0176 it can directly preceed the .bss section. This allows runtime startup
0177 code to initialise all the zero-data sections by simply taking the
0178 value of '_edata' and zeroing until it reaches '_end'. */
0179 .sbss :
0180 {
0181 __sbss_start = .;
0182 *(.sbss)
0183 *(.scommon)
0184 }
0185 _edata = DEFINED (__sbss_start) ? __sbss_start : . ;
0186 PROVIDE (edata = _edata);
0187 .bss :
0188 {
0189 __bss_start = DEFINED (__sbss_start) ? __sbss_start : . ;
0190 __real_bss_start = . ;
0191 *(.dynbss)
0192 *(.bss)
0193 *(COMMON)
0194 }
0195 .noinit (NOLOAD) : {
0196 *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0197 }
0198 .rtemsstack (NOLOAD) : {
0199 *(SORT(.rtemsstack.*))
0200 }
0201 _WorkAreaBase = .;
0202 _end = . ;
0203 PROVIDE (end = .);
0204 /* Stabs debugging sections. */
0205 .stab 0 : { *(.stab) }
0206 .stabstr 0 : { *(.stabstr) }
0207 .stab.excl 0 : { *(.stab.excl) }
0208 .stab.exclstr 0 : { *(.stab.exclstr) }
0209 .stab.index 0 : { *(.stab.index) }
0210 .stab.indexstr 0 : { *(.stab.indexstr) }
0211 .comment 0 : { *(.comment) }
0212 /* DWARF debug sections.
0213 Symbols in the DWARF debugging sections are relative to the beginning
0214 of the section so we begin them at 0. */
0215 /* DWARF 1 */
0216 .debug 0 : { *(.debug) }
0217 .line 0 : { *(.line) }
0218 /* GNU DWARF 1 extensions */
0219 .debug_srcinfo 0 : { *(.debug_srcinfo) }
0220 .debug_sfnames 0 : { *(.debug_sfnames) }
0221 /* DWARF 1.1 and DWARF 2 */
0222 .debug_aranges 0 : { *(.debug_aranges) }
0223 .debug_pubnames 0 : { *(.debug_pubnames) }
0224 /* DWARF 2 */
0225 .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
0226 .debug_abbrev 0 : { *(.debug_abbrev) }
0227 .debug_line 0 : { *(.debug_line) }
0228 .debug_frame 0 : { *(.debug_frame) }
0229 .debug_str 0 : { *(.debug_str) }
0230 .debug_loc 0 : { *(.debug_loc) }
0231 .debug_macinfo 0 : { *(.debug_macinfo) }
0232 /* SGI/MIPS DWARF 2 extensions. */
0233 .debug_weaknames 0 : { *(.debug_weaknames) }
0234 .debug_funcnames 0 : { *(.debug_funcnames) }
0235 .debug_typenames 0 : { *(.debug_typenames) }
0236 .debug_varnames 0 : { *(.debug_varnames) }
0237 }
0238