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

Last change on this file since 4837 was 4837, checked in by daduve, 2 years ago

Adding new version

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