source: arduino-1-6-7/trunk/fuentes/arduino-ide-amd64/hardware/tools/avr/avr/lib/ldscripts/avr6.xu @ 46

Last change on this file since 46 was 46, checked in by jrpelegrina, 4 years ago

First release to Xenial

File size: 5.7 KB
Line 
1/* Script for ld -Ur: link w/out relocation, do create constructors */
2OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")
3OUTPUT_ARCH(avr:6)
4MEMORY
5{
6  text   (rx)   : ORIGIN = 0, LENGTH = 1024K
7  data   (rw!x) : ORIGIN = 0x800200, LENGTH = 0xfe00
8  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
9  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
10  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
11  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
12}
13SECTIONS
14{
15  /* Read-only sections, merged into text segment: */
16  .hash        0 : { *(.hash)           }
17  .dynsym      0 : { *(.dynsym)         }
18  .dynstr      0 : { *(.dynstr)         }
19  .gnu.version 0 : { *(.gnu.version)    }
20  .gnu.version_d 0 : { *(.gnu.version_d)        }
21  .gnu.version_r 0 : { *(.gnu.version_r)        }
22  .rel.init    0 : { *(.rel.init)               }
23  .rela.init   0 : { *(.rela.init)      }
24  .rel.text    0 :
25    {
26      *(.rel.text)
27    }
28  .rela.text   0 :
29    {
30      *(.rela.text)
31    }
32  .rel.fini    0 : { *(.rel.fini)               }
33  .rela.fini   0 : { *(.rela.fini)      }
34  .rel.rodata  0 :
35    {
36      *(.rel.rodata)
37    }
38  .rela.rodata 0 :
39    {
40      *(.rela.rodata)
41    }
42  .rel.data    0 :
43    {
44      *(.rel.data)
45    }
46  .rela.data   0 :
47    {
48      *(.rela.data)
49    }
50  .rel.ctors   0 : { *(.rel.ctors)      }
51  .rela.ctors  0 : { *(.rela.ctors)     }
52  .rel.dtors   0 : { *(.rel.dtors)      }
53  .rela.dtors  0 : { *(.rela.dtors)     }
54  .rel.got     0 : { *(.rel.got)                }
55  .rela.got    0 : { *(.rela.got)               }
56  .rel.bss     0 : { *(.rel.bss)                }
57  .rela.bss    0 : { *(.rela.bss)               }
58  .rel.plt     0 : { *(.rel.plt)                }
59  .rela.plt    0 : { *(.rela.plt)               }
60  /* Internal text space or external memory.  */
61  .text 0 :
62  {
63    *(.vectors)
64    KEEP(*(.vectors))
65    /* For data that needs to reside in the lower 64k of progmem.  */
66    /* PR 13812: Placing the trampolines here gives a better chance
67       that they will be in range of the code that uses them.  */
68     __trampolines_start = . ;
69    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
70    *(.trampolines)
71     __trampolines_end = . ;
72    /* For future tablejump instruction arrays for 3 byte pc devices.
73       We don't relax jump/call instructions within these sections.  */
74    *(.jumptables)
75    /* For code that needs to reside in the lower 128k progmem.  */
76    *(.lowtext)
77     __ctors_start = . ;
78     *(.ctors)
79     __ctors_end = . ;
80     __dtors_start = . ;
81     *(.dtors)
82     __dtors_end = . ;
83    KEEP(SORT(*)(.ctors))
84    KEEP(SORT(*)(.dtors))
85    /* From this point on, we don't bother about wether the insns are
86       below or above the 16 bits boundary.  */
87    *(.init0)  /* Start here after reset.  */
88    KEEP (*(.init0))
89    *(.init1)
90    KEEP (*(.init1))
91    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
92    KEEP (*(.init2))
93    *(.init3)
94    KEEP (*(.init3))
95    *(.init4)  /* Initialize data and BSS.  */
96    KEEP (*(.init4))
97    *(.init5)
98    KEEP (*(.init5))
99    *(.init6)  /* C++ constructors.  */
100    KEEP (*(.init6))
101    *(.init7)
102    KEEP (*(.init7))
103    *(.init8)
104    KEEP (*(.init8))
105    *(.init9)  /* Call main().  */
106    KEEP (*(.init9))
107    *(.text)
108    *(.fini9)  /* _exit() starts here.  */
109    KEEP (*(.fini9))
110    *(.fini8)
111    KEEP (*(.fini8))
112    *(.fini7)
113    KEEP (*(.fini7))
114    *(.fini6)  /* C++ destructors.  */
115    KEEP (*(.fini6))
116    *(.fini5)
117    KEEP (*(.fini5))
118    *(.fini4)
119    KEEP (*(.fini4))
120    *(.fini3)
121    KEEP (*(.fini3))
122    *(.fini2)
123    KEEP (*(.fini2))
124    *(.fini1)
125    KEEP (*(.fini1))
126    *(.fini0)  /* Infinite loop after program termination.  */
127    KEEP (*(.fini0))
128  }
129  .data        0 :
130  {
131    /* --gc-sections will delete empty .data. This leads to wrong start
132       addresses for subsequent sections because -Tdata= from the command
133       line will have no effect, see PR13697.  Thus, keep .data  */
134    KEEP (*(.data))
135    *(.rodata)  /* We need to include .rodata here if gcc is used */
136     /* with -fdata-sections.  */
137    *(.gnu.linkonce.d*)
138  }
139  .bss 0 :
140  {
141    *(.bss)
142    *(COMMON)
143  }
144  /* Global data not cleared after reset.  */
145  .noinit 0:
146  {
147    *(.noinit*)
148  }
149  .eeprom 0:
150  {
151    /* See .data above...  */
152    KEEP(*(.eeprom*))
153  }
154  .fuse 0:
155  {
156    KEEP(*(.fuse))
157    KEEP(*(.lfuse))
158    KEEP(*(.hfuse))
159    KEEP(*(.efuse))
160  }
161  .lock 0:
162  {
163    KEEP(*(.lock*))
164  }
165  .signature 0:
166  {
167    KEEP(*(.signature*))
168  }
169  /* Stabs debugging sections.  */
170  .stab 0 : { *(.stab) }
171  .stabstr 0 : { *(.stabstr) }
172  .stab.excl 0 : { *(.stab.excl) }
173  .stab.exclstr 0 : { *(.stab.exclstr) }
174  .stab.index 0 : { *(.stab.index) }
175  .stab.indexstr 0 : { *(.stab.indexstr) }
176  .comment 0 : { *(.comment) }
177  .note.gnu.build-id : { *(.note.gnu.build-id) }
178  /* DWARF debug sections.
179     Symbols in the DWARF debugging sections are relative to the beginning
180     of the section so we begin them at 0.  */
181  /* DWARF 1 */
182  .debug          0 : { *(.debug) }
183  .line           0 : { *(.line) }
184  /* GNU DWARF 1 extensions */
185  .debug_srcinfo  0 : { *(.debug_srcinfo) }
186  .debug_sfnames  0 : { *(.debug_sfnames) }
187  /* DWARF 1.1 and DWARF 2 */
188  .debug_aranges  0 : { *(.debug_aranges) }
189  .debug_pubnames 0 : { *(.debug_pubnames) }
190  /* DWARF 2 */
191  .debug_info     0 : { *(.debug_info) }
192  .debug_abbrev   0 : { *(.debug_abbrev) }
193  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
194  .debug_frame    0 : { *(.debug_frame) }
195  .debug_str      0 : { *(.debug_str) }
196  .debug_loc      0 : { *(.debug_loc) }
197  .debug_macinfo  0 : { *(.debug_macinfo) }
198  /* SGI/MIPS DWARF 2 extensions */
199  .debug_weaknames 0 : { *(.debug_weaknames) }
200  .debug_funcnames 0 : { *(.debug_funcnames) }
201  .debug_typenames 0 : { *(.debug_typenames) }
202  .debug_varnames  0 : { *(.debug_varnames) }
203  /* DWARF 3 */
204  .debug_pubtypes 0 : { *(.debug_pubtypes) }
205  .debug_ranges   0 : { *(.debug_ranges) }
206  /* DWARF Extension.  */
207  .debug_macro    0 : { *(.debug_macro) }
208}
Note: See TracBrowser for help on using the repository browser.