~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/builddir-aarch64-linux-gnu/ld/ldscripts/armelf_linux_eabi.xn

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Script for -n: mix text and data on same page */
 
2
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
 
3
              "elf32-littlearm")
 
4
OUTPUT_ARCH(arm)
 
5
ENTRY(_start)
 
6
SEARCH_DIR("/usr/aarch64-linux-gnu/lib");
 
7
SECTIONS
 
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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) }
 
29
  .rela.data.rel.ro   : { *(.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 (*(SORT_NONE(.init)))
 
67
  }
 
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
  }
 
81
  .fini           :
 
82
  {
 
83
    KEEP (*(SORT_NONE(.fini)))
 
84
  }
 
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
 
97
  .gcc_except_table.*) }
 
98
  /* These sections are generated by the Sun/Oracle C++ compiler.  */
 
99
  .exception_ranges   : ONLY_IF_RO { *(.exception_ranges
 
100
  .exception_ranges*) }
 
101
  /* Adjust the address for the data segment.  We want to adjust up to
 
102
     the same address within the page on the next page up.  */
 
103
  . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
 
104
  /* Exception handling  */
 
105
  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
 
106
  .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
 
107
  .exception_ranges   : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
 
108
  /* Thread Local Storage sections  */
 
109
  .tdata          : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
 
110
  .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
 
111
  .preinit_array     :
 
112
  {
 
113
    PROVIDE_HIDDEN (__preinit_array_start = .);
 
114
    KEEP (*(.preinit_array))
 
115
    PROVIDE_HIDDEN (__preinit_array_end = .);
 
116
  }
 
117
  .init_array     :
 
118
  {
 
119
    PROVIDE_HIDDEN (__init_array_start = .);
 
120
    KEEP (*(SORT(.init_array.*)))
 
121
    KEEP (*(.init_array ))
 
122
    PROVIDE_HIDDEN (__init_array_end = .);
 
123
  }
 
124
  .fini_array     :
 
125
  {
 
126
    PROVIDE_HIDDEN (__fini_array_start = .);
 
127
    KEEP (*(SORT(.fini_array.*)))
 
128
    KEEP (*(.fini_array ))
 
129
    PROVIDE_HIDDEN (__fini_array_end = .);
 
130
  }
 
131
  .ctors          :
 
132
  {
 
133
    /* gcc uses crtbegin.o to find the start of
 
134
       the constructors, so we make sure it is
 
135
       first.  Because this is a wildcard, it
 
136
       doesn't matter if the user does not
 
137
       actually link against crtbegin.o; the
 
138
       linker won't look for a file to match a
 
139
       wildcard.  The wildcard also means that it
 
140
       doesn't matter which directory crtbegin.o
 
141
       is in.  */
 
142
    KEEP (*crtbegin.o(.ctors))
 
143
    KEEP (*crtbegin?.o(.ctors))
 
144
    /* We don't want to include the .ctor section from
 
145
       the crtend.o file until after the sorted ctors.
 
146
       The .ctor section from the crtend file contains the
 
147
       end of ctors marker and it must be last */
 
148
    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
 
149
    KEEP (*(SORT(.ctors.*)))
 
150
    KEEP (*(.ctors))
 
151
  }
 
152
  .dtors          :
 
153
  {
 
154
    KEEP (*crtbegin.o(.dtors))
 
155
    KEEP (*crtbegin?.o(.dtors))
 
156
    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
 
157
    KEEP (*(SORT(.dtors.*)))
 
158
    KEEP (*(.dtors))
 
159
  }
 
160
  .jcr            : { KEEP (*(.jcr)) }
 
161
  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
 
162
  .dynamic        : { *(.dynamic) }
 
163
  . = DATA_SEGMENT_RELRO_END (0, .);
 
164
  .got            : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
 
165
  .data           :
 
166
  {
 
167
    PROVIDE (__data_start = .);
 
168
    *(.data .data.* .gnu.linkonce.d.*)
 
169
    SORT(CONSTRUCTORS)
 
170
  }
 
171
  .data1          : { *(.data1) }
 
172
  _edata = .; PROVIDE (edata = .);
 
173
  . = .;
 
174
  __bss_start = .;
 
175
  __bss_start__ = .;
 
176
  .bss            :
 
177
  {
 
178
   *(.dynbss)
 
179
   *(.bss .bss.* .gnu.linkonce.b.*)
 
180
   *(COMMON)
 
181
   /* Align here to ensure that the .bss section occupies space up to
 
182
      _end.  Align after .bss to ensure correct alignment even if the
 
183
      .bss section disappears because there are no input sections.
 
184
      FIXME: Why do we need it? When there is no .bss section, we don't
 
185
      pad the .data section.  */
 
186
   . = ALIGN(. != 0 ? 32 / 8 : 1);
 
187
  }
 
188
  _bss_end__ = . ; __bss_end__ = . ;
 
189
  . = ALIGN(32 / 8);
 
190
  . = SEGMENT_START("ldata-segment", .);
 
191
  . = ALIGN(32 / 8);
 
192
  __end__ = . ;
 
193
  _end = .; PROVIDE (end = .);
 
194
  . = DATA_SEGMENT_END (.);
 
195
  /* Stabs debugging sections.  */
 
196
  .stab          0 : { *(.stab) }
 
197
  .stabstr       0 : { *(.stabstr) }
 
198
  .stab.excl     0 : { *(.stab.excl) }
 
199
  .stab.exclstr  0 : { *(.stab.exclstr) }
 
200
  .stab.index    0 : { *(.stab.index) }
 
201
  .stab.indexstr 0 : { *(.stab.indexstr) }
 
202
  .comment       0 : { *(.comment) }
 
203
  /* DWARF debug sections.
 
204
     Symbols in the DWARF debugging sections are relative to the beginning
 
205
     of the section so we begin them at 0.  */
 
206
  /* DWARF 1 */
 
207
  .debug          0 : { *(.debug) }
 
208
  .line           0 : { *(.line) }
 
209
  /* GNU DWARF 1 extensions */
 
210
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
 
211
  .debug_sfnames  0 : { *(.debug_sfnames) }
 
212
  /* DWARF 1.1 and DWARF 2 */
 
213
  .debug_aranges  0 : { *(.debug_aranges) }
 
214
  .debug_pubnames 0 : { *(.debug_pubnames) }
 
215
  /* DWARF 2 */
 
216
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
 
217
  .debug_abbrev   0 : { *(.debug_abbrev) }
 
218
  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
 
219
  .debug_frame    0 : { *(.debug_frame) }
 
220
  .debug_str      0 : { *(.debug_str) }
 
221
  .debug_loc      0 : { *(.debug_loc) }
 
222
  .debug_macinfo  0 : { *(.debug_macinfo) }
 
223
  /* SGI/MIPS DWARF 2 extensions */
 
224
  .debug_weaknames 0 : { *(.debug_weaknames) }
 
225
  .debug_funcnames 0 : { *(.debug_funcnames) }
 
226
  .debug_typenames 0 : { *(.debug_typenames) }
 
227
  .debug_varnames  0 : { *(.debug_varnames) }
 
228
  /* DWARF 3 */
 
229
  .debug_pubtypes 0 : { *(.debug_pubtypes) }
 
230
  .debug_ranges   0 : { *(.debug_ranges) }
 
231
  /* DWARF Extension.  */
 
232
  .debug_macro    0 : { *(.debug_macro) }
 
233
  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
 
234
  .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
 
235
  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
 
236
}