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

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

Adding new version

File size: 6.5 KB
Line 
1/* Script for ld -r: link without relocation */
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:4)
8__TEXT_REGION_LENGTH__ = DEFINED(__TEXT_REGION_LENGTH__) ? __TEXT_REGION_LENGTH__ : 8K;
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    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
81    *(.trampolines)
82    /* avr-libc expects these data to reside in lower 64K. */
83    /* For future tablejump instruction arrays for 3 byte pc devices.
84       We don't relax jump/call instructions within these sections.  */
85    *(.jumptables)
86    /* For code that needs to reside in the lower 128k progmem.  */
87    *(.lowtext)
88    KEEP(SORT(*)(.ctors))
89    KEEP(SORT(*)(.dtors))
90    /* From this point on, we don't bother about wether the insns are
91       below or above the 16 bits boundary.  */
92    *(.init0)  /* Start here after reset.  */
93    KEEP (*(.init0))
94    *(.init1)
95    KEEP (*(.init1))
96    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
97    KEEP (*(.init2))
98    *(.init3)
99    KEEP (*(.init3))
100    *(.init4)  /* Initialize data and BSS.  */
101    KEEP (*(.init4))
102    *(.init5)
103    KEEP (*(.init5))
104    *(.init6)  /* C++ constructors.  */
105    KEEP (*(.init6))
106    *(.init7)
107    KEEP (*(.init7))
108    *(.init8)
109    KEEP (*(.init8))
110    *(.init9)  /* Call main().  */
111    KEEP (*(.init9))
112    *(.text)
113    *(.fini9)  /* _exit() starts here.  */
114    KEEP (*(.fini9))
115    *(.fini8)
116    KEEP (*(.fini8))
117    *(.fini7)
118    KEEP (*(.fini7))
119    *(.fini6)  /* C++ destructors.  */
120    KEEP (*(.fini6))
121    *(.fini5)
122    KEEP (*(.fini5))
123    *(.fini4)
124    KEEP (*(.fini4))
125    *(.fini3)
126    KEEP (*(.fini3))
127    *(.fini2)
128    KEEP (*(.fini2))
129    *(.fini1)
130    KEEP (*(.fini1))
131    *(.fini0)  /* Infinite loop after program termination.  */
132    KEEP (*(.fini0))
133  }
134  .data        0 :
135  {
136    *(.data)
137    *(.rodata)  /* We need to include .rodata here if gcc is used */
138     /* with -fdata-sections.  */
139    *(.gnu.linkonce.d*)
140  }
141  .bss  0 :
142  {
143    *(.bss)
144    *(COMMON)
145  }
146  /* Global data not cleared after reset.  */
147  .noinit  0:
148  {
149    *(.noinit*)
150  }
151  .eeprom 0:
152  {
153    /* See .data above...  */
154    KEEP(*(.eeprom*))
155  }
156  .fuse 0:
157  {
158    KEEP(*(.fuse))
159    KEEP(*(.lfuse))
160    KEEP(*(.hfuse))
161    KEEP(*(.efuse))
162  }
163  .lock 0:
164  {
165    KEEP(*(.lock*))
166  }
167  .signature 0:
168  {
169    KEEP(*(.signature*))
170  }
171  .user_signatures 0:
172  {
173    KEEP(*(.user_signatures*))
174  }
175  /* Stabs debugging sections.  */
176  .stab 0 : { *(.stab) }
177  .stabstr 0 : { *(.stabstr) }
178  .stab.excl 0 : { *(.stab.excl) }
179  .stab.exclstr 0 : { *(.stab.exclstr) }
180  .stab.index 0 : { *(.stab.index) }
181  .stab.indexstr 0 : { *(.stab.indexstr) }
182  .comment 0 : { *(.comment) }
183  .note.gnu.build-id : { *(.note.gnu.build-id) }
184  /* DWARF debug sections.
185     Symbols in the DWARF debugging sections are relative to the beginning
186     of the section so we begin them at 0.  */
187  /* DWARF 1 */
188  .debug          0 : { *(.debug) }
189  .line           0 : { *(.line) }
190  /* GNU DWARF 1 extensions */
191  .debug_srcinfo  0 : { *(.debug_srcinfo) }
192  .debug_sfnames  0 : { *(.debug_sfnames) }
193  /* DWARF 1.1 and DWARF 2 */
194  .debug_aranges  0 : { *(.debug_aranges) }
195  .debug_pubnames 0 : { *(.debug_pubnames) }
196  /* DWARF 2 */
197  .debug_info     0 : { *(.debug_info) }
198  .debug_abbrev   0 : { *(.debug_abbrev) }
199  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
200  .debug_frame    0 : { *(.debug_frame) }
201  .debug_str      0 : { *(.debug_str) }
202  .debug_loc      0 : { *(.debug_loc) }
203  .debug_macinfo  0 : { *(.debug_macinfo) }
204  /* SGI/MIPS DWARF 2 extensions */
205  .debug_weaknames 0 : { *(.debug_weaknames) }
206  .debug_funcnames 0 : { *(.debug_funcnames) }
207  .debug_typenames 0 : { *(.debug_typenames) }
208  .debug_varnames  0 : { *(.debug_varnames) }
209  /* DWARF 3 */
210  .debug_pubtypes 0 : { *(.debug_pubtypes) }
211  .debug_ranges   0 : { *(.debug_ranges) }
212  /* DWARF Extension.  */
213  .debug_macro    0 : { *(.debug_macro) }
214}
Note: See TracBrowser for help on using the repository browser.