Subversion Repositories QNX 8.QNX8 GNU binutils

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 pmbaty 1
GNU ld (GNU Binutils) 2.41.0 20230730 [EXPERIMENTAL qnx800 r1743]
2
  Supported emulations:
3
   elf_x86_64
4
   i386nto
5
using internal linker script:
6
==================================================
7
/* Script for -z combreloc */
8
/* Copyright (C) 2014-2023 Free Software Foundation, Inc.
9
   Copying and distribution of this script, with or without modification,
10
   are permitted in any medium without royalty provided the copyright
11
   notice and this notice are preserved.  */
12
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
13
              "elf64-x86-64")
14
OUTPUT_ARCH(i386:x86-64)
15
ENTRY(_start)
16
SEARCH_DIR("=/c/qnx800/host/win64/x86_64/usr/x86_64-pc-nto-qnx8.0.0/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
17
SECTIONS
18
{
19
  /* Read-only sections, merged into text segment: */
20
  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
21
  .interp         : { *(.interp) }
22
  .note.gnu.build-id  : { *(.note.gnu.build-id) }
23
  .hash           : { *(.hash) }
24
  .gnu.hash       : { *(.gnu.hash) }
25
  .dynsym         : { *(.dynsym) }
26
  .dynstr         : { *(.dynstr) }
27
  .gnu.version    : { *(.gnu.version) }
28
  .gnu.version_d  : { *(.gnu.version_d) }
29
  .gnu.version_r  : { *(.gnu.version_r) }
30
  .rela.dyn       :
31
    {
32
      *(.rela.init)
33
      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
34
      *(.rela.fini)
35
      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
36
      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
37
      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
38
      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
39
      *(.rela.ctors)
40
      *(.rela.dtors)
41
      *(.rela.got)
42
      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
43
      *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
44
      *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
45
      *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
46
      *(.rela.ifunc)
47
    }
48
  .rela.plt       :
49
    {
50
      *(.rela.plt)
51
      PROVIDE_HIDDEN (__rela_iplt_start = .);
52
      *(.rela.iplt)
53
      PROVIDE_HIDDEN (__rela_iplt_end = .);
54
    }
55
  .relr.dyn : { *(.relr.dyn) }
56
  .init           :
57
  {
58
    KEEP (*(SORT_NONE(.init)))
59
  }
60
  .plt            : { *(.plt) *(.iplt) }
61
.plt.got        : { *(.plt.got) }
62
.plt.sec        : { *(.plt.sec) }
63
  .text           :
64
  {
65
    _btext = .;
66
    *(.text.unlikely .text.*_unlikely .text.unlikely.*)
67
    *(.text.exit .text.exit.*)
68
    *(.text.startup .text.startup.*)
69
    *(.text.hot .text.hot.*)
70
    *(SORT(.text.sorted.*))
71
    *(.text .stub .text.* .gnu.linkonce.t.*)
72
    /* .gnu.warning sections are handled specially by elf.em.  */
73
    *(.gnu.warning)
74
  }
75
  .fini           :
76
  {
77
    KEEP (*(SORT_NONE(.fini)))
78
  }
79
  PROVIDE (__etext = .);
80
  PROVIDE (_etext = .);
81
  PROVIDE (etext = .);
82
  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
83
  .rodata1        : { *(.rodata1) }
84
  .eh_frame_hdr   : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }
85
  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }
86
  .sframe         : ONLY_IF_RO { *(.sframe) *(.sframe.*) }
87
  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
88
  .gnu_extab   : ONLY_IF_RO { *(.gnu_extab*) }
89
  /* These sections are generated by the Sun/Oracle C++ compiler.  */
90
  .exception_ranges   : ONLY_IF_RO { *(.exception_ranges*) }
91
  /* Adjust the address for the data segment.  We want to adjust up to
92
     the same address within the page on the next page up.  */
93
  . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
94
  /* Exception handling  */
95
  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) }
96
  .sframe         : ONLY_IF_RW { *(.sframe) *(.sframe.*) }
97
  .gnu_extab      : ONLY_IF_RW { *(.gnu_extab) }
98
  .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
99
  .exception_ranges   : ONLY_IF_RW { *(.exception_ranges*) }
100
  /* Thread Local Storage sections  */
101
  .tdata          :
102
   {
103
     PROVIDE_HIDDEN (__tdata_start = .);
104
     *(.tdata .tdata.* .gnu.linkonce.td.*)
105
   }
106
  .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
107
  .preinit_array    :
108
  {
109
    PROVIDE_HIDDEN (__preinit_array_start = .);
110
    KEEP (*(.preinit_array))
111
    PROVIDE_HIDDEN (__preinit_array_end = .);
112
  }
113
  .init_array    :
114
  {
115
    PROVIDE_HIDDEN (__init_array_start = .);
116
    KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
117
    KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
118
    PROVIDE_HIDDEN (__init_array_end = .);
119
  }
120
  .fini_array    :
121
  {
122
    PROVIDE_HIDDEN (__fini_array_start = .);
123
    KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
124
    KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
125
    PROVIDE_HIDDEN (__fini_array_end = .);
126
  }
127
  .ctors          :
128
  {
129
    /* gcc uses crtbegin.o to find the start of
130
       the constructors, so we make sure it is
131
       first.  Because this is a wildcard, it
132
       doesn't matter if the user does not
133
       actually link against crtbegin.o; the
134
       linker won't look for a file to match a
135
       wildcard.  The wildcard also means that it
136
       doesn't matter which directory crtbegin.o
137
       is in.  */
138
    KEEP (*crtbegin.o(.ctors))
139
    KEEP (*crtbegin?.o(.ctors))
140
    /* We don't want to include the .ctor section from
141
       the crtend.o file until after the sorted ctors.
142
       The .ctor section from the crtend file contains the
143
       end of ctors marker and it must be last */
144
    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
145
    KEEP (*(SORT(.ctors.*)))
146
    KEEP (*(.ctors))
147
  }
148
  .dtors          :
149
  {
150
    KEEP (*crtbegin.o(.dtors))
151
    KEEP (*crtbegin?.o(.dtors))
152
    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
153
    KEEP (*(SORT(.dtors.*)))
154
    KEEP (*(.dtors))
155
  }
156
  .jcr            : { KEEP (*(.jcr)) }
157
  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
158
  .dynamic        : { *(.dynamic) }
159
  .got            : { *(.got) *(.igot) }
160
  . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
161
  .got.plt        : { *(.got.plt) *(.igot.plt) }
162
  .data           :
163
  {
164
    *(.data .data.* .gnu.linkonce.d.*)
165
    SORT(CONSTRUCTORS)
166
  }
167
  .data1          : { *(.data1) }
168
  _edata = .; PROVIDE (edata = .);
169
  . = .;
170
  __bss_start = .;
171
  .bss            :
172
  {
173
   *(.dynbss)
174
   *(.bss .bss.* .gnu.linkonce.b.*)
175
   *(COMMON)
176
   /* Align here to ensure that the .bss section occupies space up to
177
      _end.  Align after .bss to ensure correct alignment even if the
178
      .bss section disappears because there are no input sections.
179
      FIXME: Why do we need it? When there is no .bss section, we do not
180
      pad the .data section.  */
181
   . = ALIGN(. != 0 ? 64 / 8 : 1);
182
  }
183
  .lbss   :
184
  {
185
    *(.dynlbss)
186
    *(.lbss .lbss.* .gnu.linkonce.lb.*)
187
    *(LARGE_COMMON)
188
  }
189
  . = ALIGN(64 / 8);
190
  . = SEGMENT_START("ldata-segment", .);
191
  .lrodata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
192
  {
193
    *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
194
  }
195
  .ldata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
196
  {
197
    *(.ldata .ldata.* .gnu.linkonce.l.*)
198
    . = ALIGN(. != 0 ? 64 / 8 : 1);
199
  }
200
  . = ALIGN(64 / 8);
201
  _end = .; PROVIDE (end = .);
202
  . = DATA_SEGMENT_END (.);
203
  /* Stabs debugging sections.  */
204
  .stab          0 : { *(.stab) }
205
  .stabstr       0 : { *(.stabstr) }
206
  .stab.excl     0 : { *(.stab.excl) }
207
  .stab.exclstr  0 : { *(.stab.exclstr) }
208
  .stab.index    0 : { *(.stab.index) }
209
  .stab.indexstr 0 : { *(.stab.indexstr) }
210
  .comment 0 (INFO) : { *(.comment); LINKER_VERSION; }
211
  .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) }
212
  /* DWARF debug sections.
213
     Symbols in the DWARF debugging sections are relative to the beginning
214
     of the section so we begin them at 0.  */
215
  /* DWARF 1.  */
216
  .debug          0 : { *(.debug) }
217
  .line           0 : { *(.line) }
218
  /* GNU DWARF 1 extensions.  */
219
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
220
  .debug_sfnames  0 : { *(.debug_sfnames) }
221
  /* DWARF 1.1 and DWARF 2.  */
222
  .debug_aranges  0 : { *(.debug_aranges) }
223
  .debug_pubnames 0 : { *(.debug_pubnames) }
224
  /* DWARF 2.  */
225
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
226
  .debug_abbrev   0 : { *(.debug_abbrev) }
227
  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
228
  .debug_frame    0 : { *(.debug_frame) }
229
  .debug_str      0 : { *(.debug_str) }
230
  .debug_loc      0 : { *(.debug_loc) }
231
  .debug_macinfo  0 : { *(.debug_macinfo) }
232
  /* SGI/MIPS DWARF 2 extensions.  */
233
  .debug_weaknames 0 : { *(.debug_weaknames) }
234
  .debug_funcnames 0 : { *(.debug_funcnames) }
235
  .debug_typenames 0 : { *(.debug_typenames) }
236
  .debug_varnames  0 : { *(.debug_varnames) }
237
  /* DWARF 3.  */
238
  .debug_pubtypes 0 : { *(.debug_pubtypes) }
239
  .debug_ranges   0 : { *(.debug_ranges) }
240
  /* DWARF 5.  */
241
  .debug_addr     0 : { *(.debug_addr) }
242
  .debug_line_str 0 : { *(.debug_line_str) }
243
  .debug_loclists 0 : { *(.debug_loclists) }
244
  .debug_macro    0 : { *(.debug_macro) }
245
  .debug_names    0 : { *(.debug_names) }
246
  .debug_rnglists 0 : { *(.debug_rnglists) }
247
  .debug_str_offsets 0 : { *(.debug_str_offsets) }
248
  .debug_sup      0 : { *(.debug_sup) }
249
  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
250
  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
251
}
252
 
253
 
254
==================================================