~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/armelfb.xc

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