• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/lib/ldscripts/
1/* Default linker script, for normal executables */
2OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm",
3	      "elf32-littlearm")
4OUTPUT_ARCH(arm)
5ENTRY(_start)
6SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
7SECTIONS
8{
9  /* Read-only sections, merged into text segment: */
10  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS;
11  .interp         : { *(.interp) }
12  .note.gnu.build-id : { *(.note.gnu.build-id) }
13  .hash           : { *(.hash) }
14  .gnu.hash       : { *(.gnu.hash) }
15  .dynsym         : { *(.dynsym) }
16  .dynstr         : { *(.dynstr) }
17  .gnu.version    : { *(.gnu.version) }
18  .gnu.version_d  : { *(.gnu.version_d) }
19  .gnu.version_r  : { *(.gnu.version_r) }
20  .rel.init       : { *(.rel.init) }
21  .rela.init      : { *(.rela.init) }
22  .rel.text       : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
23  .rela.text      : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
24  .rel.fini       : { *(.rel.fini) }
25  .rela.fini      : { *(.rela.fini) }
26  .rel.rodata     : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
27  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
28  .rel.data.rel.ro   : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
29  .rela.data.rel.ro   : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
30  .rel.data       : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
31  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
32  .rel.tdata	  : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
33  .rela.tdata	  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
34  .rel.tbss	  : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
35  .rela.tbss	  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
36  .rel.ctors      : { *(.rel.ctors) }
37  .rela.ctors     : { *(.rela.ctors) }
38  .rel.dtors      : { *(.rel.dtors) }
39  .rela.dtors     : { *(.rela.dtors) }
40  .rel.got        : { *(.rel.got) }
41  .rela.got       : { *(.rela.got) }
42  .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
43  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
44  .rel.iplt       :
45    {
46      PROVIDE_HIDDEN (__rel_iplt_start = .);
47      *(.rel.iplt)
48      PROVIDE_HIDDEN (__rel_iplt_end = .);
49    }
50  .rela.iplt      :
51    {
52      PROVIDE_HIDDEN (__rela_iplt_start = .);
53      *(.rela.iplt)
54      PROVIDE_HIDDEN (__rela_iplt_end = .);
55    }
56  .rel.plt        :
57    {
58      *(.rel.plt)
59    }
60  .rela.plt       :
61    {
62      *(.rela.plt)
63    }
64  .init           :
65  {
66    KEEP (*(.init))
67  } =0
68  .plt            : { *(.plt) }
69  .iplt           : { *(.iplt) }
70  .text           :
71  {
72    *(.text.unlikely .text.*_unlikely)
73    *(.text.exit .text.exit.*)
74    *(.text.startup .text.startup.*)
75    *(.text.hot .text.hot.*)
76    *(.text .stub .text.* .gnu.linkonce.t.*)
77    /* .gnu.warning sections are handled specially by elf32.em.  */
78    *(.gnu.warning)
79    *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
80  } =0
81  .fini           :
82  {
83    KEEP (*(.fini))
84  } =0
85  PROVIDE (__etext = .);
86  PROVIDE (_etext = .);
87  PROVIDE (etext = .);
88  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
89  .rodata1        : { *(.rodata1) }
90  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
91   PROVIDE_HIDDEN (__exidx_start = .);
92  .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
93   PROVIDE_HIDDEN (__exidx_end = .);
94  .eh_frame_hdr : { *(.eh_frame_hdr) }
95  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
96  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
97  /* Adjust the address for the data segment.  We want to adjust up to
98     the same address within the page on the next page up.  */
99  . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
100  /* Exception handling  */
101  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
102  .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
103  /* Thread Local Storage sections  */
104  .tdata	  : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
105  .tbss		  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
106  .preinit_array     :
107  {
108    PROVIDE_HIDDEN (__preinit_array_start = .);
109    KEEP (*(.preinit_array))
110    PROVIDE_HIDDEN (__preinit_array_end = .);
111  }
112  .init_array     :
113  {
114    PROVIDE_HIDDEN (__init_array_start = .);
115    KEEP (*(SORT(.init_array.*)))
116    KEEP (*(.init_array))
117    PROVIDE_HIDDEN (__init_array_end = .);
118  }
119  .fini_array     :
120  {
121    PROVIDE_HIDDEN (__fini_array_start = .);
122    KEEP (*(SORT(.fini_array.*)))
123    KEEP (*(.fini_array))
124    PROVIDE_HIDDEN (__fini_array_end = .);
125  }
126  .ctors          :
127  {
128    /* gcc uses crtbegin.o to find the start of
129       the constructors, so we make sure it is
130       first.  Because this is a wildcard, it
131       doesn't matter if the user does not
132       actually link against crtbegin.o; the
133       linker won't look for a file to match a
134       wildcard.  The wildcard also means that it
135       doesn't matter which directory crtbegin.o
136       is in.  */
137    KEEP (*crtbegin.o(.ctors))
138    KEEP (*crtbegin?.o(.ctors))
139    /* We don't want to include the .ctor section from
140       the crtend.o file until after the sorted ctors.
141       The .ctor section from the crtend file contains the
142       end of ctors marker and it must be last */
143    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
144    KEEP (*(SORT(.ctors.*)))
145    KEEP (*(.ctors))
146  }
147  .dtors          :
148  {
149    KEEP (*crtbegin.o(.dtors))
150    KEEP (*crtbegin?.o(.dtors))
151    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
152    KEEP (*(SORT(.dtors.*)))
153    KEEP (*(.dtors))
154  }
155  .jcr            : { KEEP (*(.jcr)) }
156  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
157  .dynamic        : { *(.dynamic) }
158  . = DATA_SEGMENT_RELRO_END (0, .);
159  .got            : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
160  .data           :
161  {
162    PROVIDE (__data_start = .);
163    *(.data .data.* .gnu.linkonce.d.*)
164    SORT(CONSTRUCTORS)
165  }
166  .data1          : { *(.data1) }
167  _edata = .; PROVIDE (edata = .);
168  __bss_start = .;
169  __bss_start__ = .;
170  .bss            :
171  {
172   *(.dynbss)
173   *(.bss .bss.* .gnu.linkonce.b.*)
174   *(COMMON)
175   /* Align here to ensure that the .bss section occupies space up to
176      _end.  Align after .bss to ensure correct alignment even if the
177      .bss section disappears because there are no input sections.
178      FIXME: Why do we need it? When there is no .bss section, we don't
179      pad the .data section.  */
180   . = ALIGN(. != 0 ? 32 / 8 : 1);
181  }
182  _bss_end__ = . ; __bss_end__ = . ;
183  . = ALIGN(32 / 8);
184  . = ALIGN(32 / 8);
185  __end__ = . ;
186  _end = .; PROVIDE (end = .);
187  . = DATA_SEGMENT_END (.);
188  /* Stabs debugging sections.  */
189  .stab          0 : { *(.stab) }
190  .stabstr       0 : { *(.stabstr) }
191  .stab.excl     0 : { *(.stab.excl) }
192  .stab.exclstr  0 : { *(.stab.exclstr) }
193  .stab.index    0 : { *(.stab.index) }
194  .stab.indexstr 0 : { *(.stab.indexstr) }
195  .comment       0 : { *(.comment) }
196  /* DWARF debug sections.
197     Symbols in the DWARF debugging sections are relative to the beginning
198     of the section so we begin them at 0.  */
199  /* DWARF 1 */
200  .debug          0 : { *(.debug) }
201  .line           0 : { *(.line) }
202  /* GNU DWARF 1 extensions */
203  .debug_srcinfo  0 : { *(.debug_srcinfo) }
204  .debug_sfnames  0 : { *(.debug_sfnames) }
205  /* DWARF 1.1 and DWARF 2 */
206  .debug_aranges  0 : { *(.debug_aranges) }
207  .debug_pubnames 0 : { *(.debug_pubnames) }
208  /* DWARF 2 */
209  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
210  .debug_abbrev   0 : { *(.debug_abbrev) }
211  .debug_line     0 : { *(.debug_line) }
212  .debug_frame    0 : { *(.debug_frame) }
213  .debug_str      0 : { *(.debug_str) }
214  .debug_loc      0 : { *(.debug_loc) }
215  .debug_macinfo  0 : { *(.debug_macinfo) }
216  /* SGI/MIPS DWARF 2 extensions */
217  .debug_weaknames 0 : { *(.debug_weaknames) }
218  .debug_funcnames 0 : { *(.debug_funcnames) }
219  .debug_typenames 0 : { *(.debug_typenames) }
220  .debug_varnames  0 : { *(.debug_varnames) }
221  /* DWARF 3 */
222  .debug_pubtypes 0 : { *(.debug_pubtypes) }
223  .debug_ranges   0 : { *(.debug_ranges) }
224  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
225  .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
226  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
227}
228