Mercurial > flash_v2
annotate packages/hal/mips/tx49/current/src/mips_tx49.ld @ 1777:c16341b1bac6 default tip
* Added execute permissions to files missed in conversion from CVS
| author | alexs |
|---|---|
| date | Mon, 12 Oct 2009 02:26:09 +0100 |
| parents | 46ec92b4d31c |
| children |
| rev | line source |
|---|---|
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
1 //=========================================================================== |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
2 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
3 // MLT linker script for MIPS TX49 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
4 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
5 //=========================================================================== |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
6 //####ECOSGPLCOPYRIGHTBEGIN#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
7 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
8 // This file is part of eCos, the Embedded Configurable Operating System. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
9 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
10 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
11 // eCos is free software; you can redistribute it and/or modify it under |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
12 // the terms of the GNU General Public License as published by the Free |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
13 // Software Foundation; either version 2 or (at your option) any later version. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
14 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
15 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
16 // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
17 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
18 // for more details. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
19 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
20 // You should have received a copy of the GNU General Public License along |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
21 // with eCos; if not, write to the Free Software Foundation, Inc., |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
22 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
23 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
24 // As a special exception, if other files instantiate templates or use macros |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
25 // or inline functions from this file, or you compile this file and link it |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
26 // with other works to produce a work based on this file, this file does not |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
27 // by itself cause the resulting work to be covered by the GNU General Public |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
28 // License. However the source code for this file must still be made available |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
29 // in accordance with section (3) of the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
30 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
31 // This exception does not invalidate any other reasons why a work based on |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
32 // this file might be covered by the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
33 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
34 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
210
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
35 // at http://sources.redhat.com/ecos/ecos-license/ |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
36 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
134
diff
changeset
|
37 //####ECOSGPLCOPYRIGHTEND#### |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
38 //=========================================================================== |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
39 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
40 #include <pkgconf/system.h> |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
41 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
42 OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
43 "elf32-littlemips") |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
44 /* The preprocessor defines mips, but we know we're mips :-) */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
45 #undef mips |
| 1159 | 46 OUTPUT_ARCH(mips:4000) |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
47 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
48 STARTUP(vectors.o) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
49 ENTRY(reset_vector) |
| 1159 | 50 #if defined(EXTRAS) |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
51 INPUT(extras.o) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
52 #endif |
| 928 | 53 #if (__GNUC__ >= 3) |
| 54 GROUP(libtarget.a libgcc.a libsupc++.a) | |
| 55 #else | |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
56 GROUP(libtarget.a libgcc.a) |
| 928 | 57 #endif |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
58 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
59 /* FIXME: The MLT should pass in the required alignment since it must be |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
60 * the same as the VMA's alignment. As a result of this bug, all the REF4955 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
61 * ROM mlt files have alignment 8, when some should have alignment 4 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
62 * (902557-CR) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
63 */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
64 #define ALIGN_LMA 8 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
65 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1)) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
66 #define LMA_EQ_VMA |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
67 #define FORCE_OUTPUT . = . |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
68 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
69 #define SECTIONS_BEGIN |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
70 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
71 #if defined(CYG_HAL_STARTUP_RAM) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
72 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
73 /* this version for RAM startup */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
74 #define SECTION_rom_vectors(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
75 .rom_vectors _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
76 { KEEP (*(.utlb_vector)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
77 . = ALIGN(0x80); KEEP(*(.other_vector)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
78 /* debug and reset vector not used in RAM version */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
79 KEEP(*(.debug_vector)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
80 KEEP (*(.reset_vector)) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
81 > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
82 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
83 #elif defined(CYG_HAL_STARTUP_ROM) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
84 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
85 /* this version for ROM startup */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
86 #define SECTION_rom_vectors(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
87 .rom_vectors _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
88 { KEEP (*(.reset_vector)) \ |
| 1159 | 89 . = ALIGN(0x200); KEEP (*(.utlb_vector)) \ |
| 90 . = ALIGN(0x100); . = . + 4; \ | |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
91 . = ALIGN(0x80); KEEP(*(.other_vector)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
92 . = ALIGN(0x100); KEEP(*(.debug_vector)) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
93 > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
94 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
95 #endif /* ROM startup version of ROM vectors */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
96 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
97 #define SECTION_ROMISC(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
98 .interp _vma_ : _lma_ { *(.interp) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
99 .hash : FOLLOWING(.interp) { *(.hash) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
100 .dynsym : FOLLOWING(.hash) { *(.dynsym) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
101 .dynstr : FOLLOWING(.dynsym) { *(.dynstr) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
102 .gnu.version : FOLLOWING(.dynstr) { *(.gnu.version) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
103 .gnu.version_d : FOLLOWING(.gnu.version) { *(.gnu.version_d) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
104 .gnu.version_r : FOLLOWING(.gnu.version_d) { *(.gnu.version_r) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
105 .plt : FOLLOWING(.gnu.version_r) { *(.plt) } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
106 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
107 #define SECTION_RELOCS(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
108 .rel.text : \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
109 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
110 *(.rel.text) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
111 *(.rel.text.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
112 *(.rel.gnu.linkonce.t*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
113 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
114 .rela.text : \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
115 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
116 *(.rela.text) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
117 *(.rela.text.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
118 *(.rela.gnu.linkonce.t*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
119 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
120 .rel.data : \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
121 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
122 *(.rel.data) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
123 *(.rel.data.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
124 *(.rel.gnu.linkonce.d*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
125 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
126 .rela.data : \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
127 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
128 *(.rela.data) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
129 *(.rela.data.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
130 *(.rela.gnu.linkonce.d*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
131 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
132 .rel.rodata : \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
133 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
134 *(.rel.rodata) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
135 *(.rel.rodata.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
136 *(.rel.gnu.linkonce.r*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
137 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
138 .rela.rodata : \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
139 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
140 *(.rela.rodata) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
141 *(.rela.rodata.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
142 *(.rela.gnu.linkonce.r*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
143 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
144 .rel.got : { *(.rel.got) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
145 .rela.got : { *(.rela.got) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
146 .rel.ctors : { *(.rel.ctors) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
147 .rela.ctors : { *(.rela.ctors) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
148 .rel.dtors : { *(.rel.dtors) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
149 .rela.dtors : { *(.rela.dtors) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
150 .rel.init : { *(.rel.init) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
151 .rela.init : { *(.rela.init) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
152 .rel.fini : { *(.rel.fini) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
153 .rela.fini : { *(.rela.fini) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
154 .rel.bss : { *(.rel.bss) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
155 .rela.bss : { *(.rela.bss) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
156 .rel.plt : { *(.rel.plt) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
157 .rela.plt : { *(.rela.plt) } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
158 .rel.dyn : { *(.rel.dyn) } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
159 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
160 #define SECTION_init(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
161 .init _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
162 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
163 FORCE_OUTPUT; KEEP (*(.init)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
164 } > _region_ =0 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
165 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
166 #define SECTION_text(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
167 .text _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
168 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
169 _stext = .; _ftext = . ; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
170 *(.text) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
171 *(.text.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
172 *(.stub) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
173 *(.gnu.warning) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
174 *(.gnu.linkonce.t*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
175 *(.mips16.fn.*) *(.mips16.call.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
176 } > _region_ =0 \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
177 _etext = .; PROVIDE (etext = .); |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
178 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
179 #define SECTION_fini(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
180 .fini _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
181 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
182 FORCE_OUTPUT; KEEP (*(.fini)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
183 } > _region_ =0 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
184 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
185 #define SECTION_rodata(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
186 .rodata _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
187 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
188 FORCE_OUTPUT; *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
189 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
190 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
191 #define SECTION_rodata1(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
192 .rodata1 _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
193 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
194 FORCE_OUTPUT; *(.rodata1) *(.rodata1.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
195 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
196 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
197 #define SECTION_vsr_table(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
198 .vsr_table _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
199 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
200 FORCE_OUTPUT; *(.vsr_table) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
201 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
202 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
203 #define SECTION_data(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
204 .data _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
205 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
206 __ram_data_start = ABSOLUTE (.); _fdata = . ; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
207 *(.data) *(.data.*) *(.gnu.linkonce.d*) \ |
| 1159 | 208 *(.2ram.*) \ |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
209 . = ALIGN (8); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
210 SORT(CONSTRUCTORS) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
211 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
212 __rom_data_start = LOADADDR(.data); |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
213 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
214 #define SECTION_data1(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
215 .data1 _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
216 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
217 FORCE_OUTPUT; *(.data1) *(.data1.*) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
218 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
219 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
220 #define SECTION_eh_frame(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
221 .eh_frame _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
222 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
223 FORCE_OUTPUT; *(.eh_frame) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
224 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
225 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
226 #define SECTION_gcc_except_table(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
227 .gcc_except_table _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
228 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
229 FORCE_OUTPUT; *(.gcc_except_table) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
230 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
231 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
232 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
233 /* FIXME: We shouldn't need to define __CTOR_LIST__/__CTOR_END__ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
234 and __DTOR_LIST__/__DTOR_END__ except by the PROVIDE lines. |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
235 However this doesn't work for old (99r1-era) toolchains, so |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
236 leave it for now. */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
237 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
238 /* The KEEP(*_ctors.o(.ctors)) rule is included to prevent |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
239 constructors from libgcc.a from turning up in the image. |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
240 They are NULL anyway. */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
241 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
242 #define SECTION_ctors(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
243 .ctors _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
244 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
245 FORCE_OUTPUT; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
246 KEEP (*crtbegin.o(.ctors)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
247 KEEP (*_ctors.o(.ctors)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
248 __CTOR_LIST__ = .; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
249 PROVIDE (__CTOR_LIST__ = .); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
250 KEEP (*(.ctors)); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
251 KEEP (*(SORT(.ctors.*))) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
252 __CTOR_END__ = .; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
253 PROVIDE (__CTOR_END__ = .); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
254 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
255 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
256 #define SECTION_dtors(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
257 .dtors _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
258 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
259 FORCE_OUTPUT; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
260 KEEP (*crtbegin.o(.dtors)) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
261 __DTOR_LIST__ = .; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
262 PROVIDE (__DTOR_LIST__ = .); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
263 KEEP (*(SORT(.dtors.*))) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
264 __DTOR_END__ = .; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
265 KEEP (*(.dtors)); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
266 PROVIDE (__DTOR_END__ = .); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
267 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
268 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
269 #define SECTION_devtab(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
270 .devtab _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
271 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
272 FORCE_OUTPUT; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
273 KEEP(*( SORT (.ecos.table.*))) ; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
274 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
275 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
276 #define SECTION_got(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
277 _gp = ALIGN(16) + 0x7ff0; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
278 .got _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
279 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
280 FORCE_OUTPUT; *(.got.plt) *(.got) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
281 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
282 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
283 #define SECTION_dynamic(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
284 .dynamic _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
285 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
286 FORCE_OUTPUT; *(.dynamic) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
287 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
288 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
289 /* We want the small data sections together, so single-instruction offsets |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
290 can access them all, and initialized data all before uninitialized, so |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
291 we can shorten the on-disk segment size. */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
292 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
293 #define SECTION_sdata(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
294 .sdata _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
295 { \ |
| 922 | 296 FORCE_OUTPUT; *(.sdata) *(.sdata.*) *(.gnu.linkonce.s*) \ |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
297 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
298 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
299 #define SECTION_lit8(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
300 .lit8 _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
301 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
302 FORCE_OUTPUT; *(.lit8) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
303 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
304 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
305 #define SECTION_lit4(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
306 .lit4 : FOLLOWING(.lit8) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
307 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
308 FORCE_OUTPUT; *(.lit4) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
309 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
310 __ram_data_end = .; _edata = . ; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
311 PROVIDE (edata = .); |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
312 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
313 #define SECTION_sbss(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
314 __bss_start = .; _fbss = .; \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
315 .sbss _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
316 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
317 FORCE_OUTPUT; *(.dynsbss) *(.sbss) *(.sbss.*) *(.scommon) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
318 } > _region_ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
319 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
320 #define SECTION_bss(_region_, _vma_, _lma_) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
321 .bss _vma_ : _lma_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
322 { \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
323 *(.dynbss) *(.bss) *(.bss.*) *(COMMON) \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
324 } > _region_ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
325 __bss_end = .; |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
326 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
327 /* The /DISCARD/ section ensures that the output will not contain a |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
328 * .mdebug section as it confuses GDB. This is a workaround for CR 100804. |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
329 */ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
330 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
331 #define SECTIONS_END . = ALIGN(4); _end = .; PROVIDE (end = .); \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
332 /* Stabs debugging sections. */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
333 .stab 0 : { *(.stab) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
334 .stabstr 0 : { *(.stabstr) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
335 .stab.excl 0 : { *(.stab.excl) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
336 .stab.exclstr 0 : { *(.stab.exclstr) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
337 .stab.index 0 : { *(.stab.index) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
338 .stab.indexstr 0 : { *(.stab.indexstr) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
339 .comment 0 : { *(.comment) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
340 /* DWARF debug sections. \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
341 Symbols in the DWARF debugging sections are relative to \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
342 the beginning of the section so we begin them at 0. */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
343 /* DWARF 1 */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
344 .debug 0 : { *(.debug) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
345 .line 0 : { *(.line) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
346 /* GNU DWARF 1 extensions */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
347 .debug_srcinfo 0 : { *(.debug_srcinfo) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
348 .debug_sfnames 0 : { *(.debug_sfnames) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
349 /* DWARF 1.1 and DWARF 2 */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
350 .debug_aranges 0 : { *(.debug_aranges) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
351 .debug_pubnames 0 : { *(.debug_pubnames) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
352 /* DWARF 2 */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
353 .debug_info 0 : { *(.debug_info) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
354 .debug_abbrev 0 : { *(.debug_abbrev) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
355 .debug_line 0 : { *(.debug_line) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
356 .debug_frame 0 : { *(.debug_frame) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
357 .debug_str 0 : { *(.debug_str) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
358 .debug_loc 0 : { *(.debug_loc) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
359 .debug_macinfo 0 : { *(.debug_macinfo) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
360 /* SGI/MIPS DWARF 2 extensions */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
361 .debug_weaknames 0 : { *(.debug_weaknames) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
362 .debug_funcnames 0 : { *(.debug_funcnames) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
363 .debug_typenames 0 : { *(.debug_typenames) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
364 .debug_varnames 0 : { *(.debug_varnames) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
365 /* These must appear regardless of . */ \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
366 .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
367 .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } \ |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
368 /DISCARD/ 0 : { *(.mdebug) } |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
369 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
370 #include CYGHWR_MEMORY_LAYOUT_LDI |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
371 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
372 // 0-0x200 reserved for vectors |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
373 hal_vsr_table = 0x80000200; |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
374 hal_virtual_vector_table = 0x80000300; |
