]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/LinkerScript/sections.test
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / LinkerScript / sections.test
1 /*
2   This test exercises parsing typical commands found in GNU ld linker scripts.
3   RUN: linker-script-test %s | FileCheck %s
4 */
5
6 SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu");
7 SECTIONS
8 {
9   PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
10   .interp         : { *(.interp) }
11   .note.gnu.build-id : { *(.note.gnu.build-id) }
12   .hash           : { *(.hash) }
13   .rela.dyn       :
14     {
15       *(.rela.init)
16       *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
17       *(.rela.fini)
18       *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
19     }
20   .rela.plt       :
21     {
22       *(.rela.plt)
23       PROVIDE_HIDDEN (__rela_iplt_start = .);
24       *(.rela.iplt)
25       PROVIDE_HIDDEN (__rela_iplt_end = .);
26     }
27   .init           :
28   {
29     KEEP (*(SORT_NONE(.init)))
30   } =0x909090909090909090909090
31   PROVIDE (__etext = .);
32   .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
33   .exception_ranges   : ONLY_IF_RO { *(.exception_ranges
34   .exception_ranges*) }
35   . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
36   /* Exception handling  */
37   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
38   .ctors          :
39   {
40     KEEP (*crtbegin.o(.ctors))
41     KEEP (*crtbegin?.o(.ctors))
42     KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
43     KEEP (*(SORT(.ctors.*)))
44     KEEP (*(.ctors))
45   }
46   .dtors          :
47   {
48     KEEP (*crtbegin.o(.dtors))
49     KEEP (*crtbegin?.o(.dtors))
50     KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
51     KEEP (*(SORT(.dtors.*)))
52     KEEP (*(.dtors))
53   }
54   . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
55   .got.plt        : { *(.got.plt)  *(.igot.plt) }
56   .lrodata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
57   {
58     *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
59   }
60   .ldata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
61   {
62     *(.ldata .ldata.* .gnu.linkonce.l.*)
63     . = ALIGN(. != 0 ? 64 / 8 : 1);
64   }
65   . = ALIGN(64 / 8);
66   _end = .; PROVIDE (end = .);
67   . = DATA_SEGMENT_END (.);
68   /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
69 }
70
71 /*
72 CHECK: kw_search_dir: SEARCH_DIR
73 CHECK: l_paren: (
74 CHECK: identifier: /usr/x86_64-linux-gnu/lib64
75 CHECK: r_paren: )
76 CHECK: semicolon: ;
77 CHECK: kw_search_dir: SEARCH_DIR
78 CHECK: l_paren: (
79 CHECK: identifier: =/usr/local/lib/x86_64-linux-gnu
80 CHECK: r_paren: )
81 CHECK: semicolon: ;
82 CHECK: kw_sections: SECTIONS
83 CHECK: l_brace: {
84 CHECK: kw_provide: PROVIDE
85 CHECK: l_paren: (
86 CHECK: identifier: __executable_start
87 CHECK: equal: =
88 CHECK: identifier: SEGMENT_START
89 CHECK: l_paren: (
90 CHECK: identifier: text-segment
91 CHECK: comma: ,
92 CHECK: number: 0x400000
93 CHECK: r_paren: )
94 CHECK: r_paren: )
95 CHECK: semicolon: ;
96 CHECK: identifier: .
97 CHECK: equal: =
98 CHECK: identifier: SEGMENT_START
99 CHECK: l_paren: (
100 CHECK: identifier: text-segment
101 CHECK: comma: ,
102 CHECK: number: 0x400000
103 CHECK: r_paren: )
104 CHECK: plus: +
105 CHECK: identifier: SIZEOF_HEADERS
106 CHECK: semicolon: ;
107 CHECK: identifier: .interp
108 CHECK: colon: :
109 CHECK: l_brace: {
110 CHECK: star: *
111 CHECK: l_paren: (
112 CHECK: identifier: .interp
113 CHECK: r_paren: )
114 CHECK: r_brace: }
115 CHECK: identifier: .note.gnu.build-id
116 CHECK: colon: :
117 CHECK: l_brace: {
118 CHECK: star: *
119 CHECK: l_paren: (
120 CHECK: identifier: .note.gnu.build-id
121 CHECK: r_paren: )
122 CHECK: r_brace: }
123 CHECK: identifier: .hash
124 CHECK: colon: :
125 CHECK: l_brace: {
126 CHECK: star: *
127 CHECK: l_paren: (
128 CHECK: identifier: .hash
129 CHECK: r_paren: )
130 CHECK: r_brace: }
131 CHECK: identifier: .rela.dyn
132 CHECK: colon: :
133 CHECK: l_brace: {
134 CHECK: star: *
135 CHECK: l_paren: (
136 CHECK: identifier: .rela.init
137 CHECK: r_paren: )
138 CHECK: star: *
139 CHECK: l_paren: (
140 CHECK: identifier: .rela.text
141 CHECK: identifier: .rela.text.*
142 CHECK: identifier: .rela.gnu.linkonce.t.*
143 CHECK: r_paren: )
144 CHECK: star: *
145 CHECK: l_paren: (
146 CHECK: identifier: .rela.fini
147 CHECK: r_paren: )
148 CHECK: star: *
149 CHECK: l_paren: (
150 CHECK: identifier: .rela.rodata
151 CHECK: identifier: .rela.rodata.*
152 CHECK: identifier: .rela.gnu.linkonce.r.*
153 CHECK: r_paren: )
154 CHECK: r_brace: }
155 CHECK: identifier: .rela.plt
156 CHECK: colon: :
157 CHECK: l_brace: {
158 CHECK: star: *
159 CHECK: l_paren: (
160 CHECK: identifier: .rela.plt
161 CHECK: r_paren: )
162 CHECK: kw_provide_hidden: PROVIDE_HIDDEN
163 CHECK: l_paren: (
164 CHECK: identifier: __rela_iplt_start
165 CHECK: equal: =
166 CHECK: identifier: .
167 CHECK: r_paren: )
168 CHECK: semicolon: ;
169 CHECK: star: *
170 CHECK: l_paren: (
171 CHECK: identifier: .rela.iplt
172 CHECK: r_paren: )
173 CHECK: kw_provide_hidden: PROVIDE_HIDDEN
174 CHECK: l_paren: (
175 CHECK: identifier: __rela_iplt_end
176 CHECK: equal: =
177 CHECK: identifier: .
178 CHECK: r_paren: )
179 CHECK: semicolon: ;
180 CHECK: r_brace: }
181 CHECK: identifier: .init
182 CHECK: colon: :
183 CHECK: l_brace: {
184 CHECK: kw_keep: KEEP
185 CHECK: l_paren: (
186 CHECK: star: *
187 CHECK: l_paren: (
188 CHECK: kw_sort_none: SORT_NONE
189 CHECK: l_paren: (
190 CHECK: identifier: .init
191 CHECK: r_paren: )
192 CHECK: r_paren: )
193 CHECK: r_paren: )
194 CHECK: r_brace: }
195 CHECK: kw_provide: PROVIDE
196 CHECK: l_paren: (
197 CHECK: identifier: __etext
198 CHECK: equal: =
199 CHECK: identifier: .
200 CHECK: r_paren: )
201 CHECK: semicolon: ;
202 CHECK: identifier: .eh_frame
203 CHECK: colon: :
204 CHECK: kw_only_if_ro: ONLY_IF_RO
205 CHECK: l_brace: {
206 CHECK: kw_keep: KEEP
207 CHECK: l_paren: (
208 CHECK: star: *
209 CHECK: l_paren: (
210 CHECK: identifier: .eh_frame
211 CHECK: r_paren: )
212 CHECK: r_paren: )
213 CHECK: r_brace: }
214 CHECK: identifier: .exception_ranges
215 CHECK: colon: :
216 CHECK: kw_only_if_ro: ONLY_IF_RO
217 CHECK: l_brace: {
218 CHECK: star: *
219 CHECK: l_paren: (
220 CHECK: identifier: .exception_ranges
221 CHECK: identifier: .exception_ranges*
222 CHECK: r_paren: )
223 CHECK: r_brace: }
224 CHECK: identifier: .
225 CHECK: equal: =
226 CHECK: kw_align: ALIGN
227 CHECK: l_paren: (
228 CHECK: identifier: CONSTANT
229 CHECK: l_paren: (
230 CHECK: identifier: MAXPAGESIZE
231 CHECK: r_paren: )
232 CHECK: r_paren: )
233 CHECK: minus: -
234 CHECK: l_paren: (
235 CHECK: l_paren: (
236 CHECK: identifier: CONSTANT
237 CHECK: l_paren: (
238 CHECK: identifier: MAXPAGESIZE
239 CHECK: r_paren: )
240 CHECK: minus: -
241 CHECK: identifier: .
242 CHECK: r_paren: )
243 CHECK: amp: &
244 CHECK: l_paren: (
245 CHECK: identifier: CONSTANT
246 CHECK: l_paren: (
247 CHECK: identifier: MAXPAGESIZE
248 CHECK: r_paren: )
249 CHECK: minus: -
250 CHECK: number: 1
251 CHECK: r_paren: )
252 CHECK: r_paren: )
253 CHECK: semicolon: ;
254 CHECK: identifier: .
255 CHECK: equal: =
256 CHECK: identifier: DATA_SEGMENT_ALIGN
257 CHECK: l_paren: (
258 CHECK: identifier: CONSTANT
259 CHECK: l_paren: (
260 CHECK: identifier: MAXPAGESIZE
261 CHECK: r_paren: )
262 CHECK: comma: ,
263 CHECK: identifier: CONSTANT
264 CHECK: l_paren: (
265 CHECK: identifier: COMMONPAGESIZE
266 CHECK: r_paren: )
267 CHECK: r_paren: )
268 CHECK: semicolon: ;
269 CHECK: identifier: .eh_frame
270 CHECK: colon: :
271 CHECK: kw_only_if_rw: ONLY_IF_RW
272 CHECK: l_brace: {
273 CHECK: kw_keep: KEEP
274 CHECK: l_paren: (
275 CHECK: star: *
276 CHECK: l_paren: (
277 CHECK: identifier: .eh_frame
278 CHECK: r_paren: )
279 CHECK: r_paren: )
280 CHECK: r_brace: }
281 CHECK: identifier: .ctors
282 CHECK: colon: :
283 CHECK: l_brace: {
284 CHECK: kw_keep: KEEP
285 CHECK: l_paren: (
286 CHECK: identifier: *crtbegin.o
287 CHECK: l_paren: (
288 CHECK: identifier: .ctors
289 CHECK: r_paren: )
290 CHECK: r_paren: )
291 CHECK: kw_keep: KEEP
292 CHECK: l_paren: (
293 CHECK: identifier: *crtbegin?.o
294 CHECK: l_paren: (
295 CHECK: identifier: .ctors
296 CHECK: r_paren: )
297 CHECK: r_paren: )
298 CHECK: kw_keep: KEEP
299 CHECK: l_paren: (
300 CHECK: star: *
301 CHECK: l_paren: (
302 CHECK: kw_exclude_file: EXCLUDE_FILE
303 CHECK: l_paren: (
304 CHECK: identifier: *crtend.o
305 CHECK: identifier: *crtend?.o
306 CHECK: r_paren: )
307 CHECK: identifier: .ctors
308 CHECK: r_paren: )
309 CHECK: r_paren: )
310 CHECK: kw_keep: KEEP
311 CHECK: l_paren: (
312 CHECK: star: *
313 CHECK: l_paren: (
314 CHECK: kw_sort_by_name: SORT
315 CHECK: l_paren: (
316 CHECK: identifier: .ctors.*
317 CHECK: r_paren: )
318 CHECK: r_paren: )
319 CHECK: r_paren: )
320 CHECK: kw_keep: KEEP
321 CHECK: l_paren: (
322 CHECK: star: *
323 CHECK: l_paren: (
324 CHECK: identifier: .ctors
325 CHECK: r_paren: )
326 CHECK: r_paren: )
327 CHECK: r_brace: }
328 CHECK: identifier: .dtors
329 CHECK: colon: :
330 CHECK: l_brace: {
331 CHECK: kw_keep: KEEP
332 CHECK: l_paren: (
333 CHECK: identifier: *crtbegin.o
334 CHECK: l_paren: (
335 CHECK: identifier: .dtors
336 CHECK: r_paren: )
337 CHECK: r_paren: )
338 CHECK: kw_keep: KEEP
339 CHECK: l_paren: (
340 CHECK: identifier: *crtbegin?.o
341 CHECK: l_paren: (
342 CHECK: identifier: .dtors
343 CHECK: r_paren: )
344 CHECK: r_paren: )
345 CHECK: kw_keep: KEEP
346 CHECK: l_paren: (
347 CHECK: star: *
348 CHECK: l_paren: (
349 CHECK: kw_exclude_file: EXCLUDE_FILE
350 CHECK: l_paren: (
351 CHECK: identifier: *crtend.o
352 CHECK: identifier: *crtend?.o
353 CHECK: r_paren: )
354 CHECK: identifier: .dtors
355 CHECK: r_paren: )
356 CHECK: r_paren: )
357 CHECK: kw_keep: KEEP
358 CHECK: l_paren: (
359 CHECK: star: *
360 CHECK: l_paren: (
361 CHECK: kw_sort_by_name: SORT
362 CHECK: l_paren: (
363 CHECK: identifier: .dtors.*
364 CHECK: r_paren: )
365 CHECK: r_paren: )
366 CHECK: r_paren: )
367 CHECK: kw_keep: KEEP
368 CHECK: l_paren: (
369 CHECK: star: *
370 CHECK: l_paren: (
371 CHECK: identifier: .dtors
372 CHECK: r_paren: )
373 CHECK: r_paren: )
374 CHECK: r_brace: }
375 CHECK: identifier: .
376 CHECK: equal: =
377 CHECK: identifier: DATA_SEGMENT_RELRO_END
378 CHECK: l_paren: (
379 CHECK: identifier: SIZEOF
380 CHECK: l_paren: (
381 CHECK: identifier: .got.plt
382 CHECK: r_paren: )
383 CHECK: greaterequal: >=
384 CHECK: number: 24
385 CHECK: question: ?
386 CHECK: number: 24
387 CHECK: colon: :
388 CHECK: number: 0
389 CHECK: comma: ,
390 CHECK: identifier: .
391 CHECK: r_paren: )
392 CHECK: semicolon: ;
393 CHECK: identifier: .got.plt
394 CHECK: colon: :
395 CHECK: l_brace: {
396 CHECK: star: *
397 CHECK: l_paren: (
398 CHECK: identifier: .got.plt
399 CHECK: r_paren: )
400 CHECK: star: *
401 CHECK: l_paren: (
402 CHECK: identifier: .igot.plt
403 CHECK: r_paren: )
404 CHECK: r_brace: }
405 CHECK: identifier: .lrodata
406 CHECK: kw_align: ALIGN
407 CHECK: l_paren: (
408 CHECK: identifier: CONSTANT
409 CHECK: l_paren: (
410 CHECK: identifier: MAXPAGESIZE
411 CHECK: r_paren: )
412 CHECK: r_paren: )
413 CHECK: plus: +
414 CHECK: l_paren: (
415 CHECK: identifier: .
416 CHECK: amp: &
417 CHECK: l_paren: (
418 CHECK: identifier: CONSTANT
419 CHECK: l_paren: (
420 CHECK: identifier: MAXPAGESIZE
421 CHECK: r_paren: )
422 CHECK: minus: -
423 CHECK: number: 1
424 CHECK: r_paren: )
425 CHECK: r_paren: )
426 CHECK: colon: :
427 CHECK: l_brace: {
428 CHECK: star: *
429 CHECK: l_paren: (
430 CHECK: identifier: .lrodata
431 CHECK: identifier: .lrodata.*
432 CHECK: identifier: .gnu.linkonce.lr.*
433 CHECK: r_paren: )
434 CHECK: r_brace: }
435 CHECK: identifier: .ldata
436 CHECK: kw_align: ALIGN
437 CHECK: l_paren: (
438 CHECK: identifier: CONSTANT
439 CHECK: l_paren: (
440 CHECK: identifier: MAXPAGESIZE
441 CHECK: r_paren: )
442 CHECK: r_paren: )
443 CHECK: plus: +
444 CHECK: l_paren: (
445 CHECK: identifier: .
446 CHECK: amp: &
447 CHECK: l_paren: (
448 CHECK: identifier: CONSTANT
449 CHECK: l_paren: (
450 CHECK: identifier: MAXPAGESIZE
451 CHECK: r_paren: )
452 CHECK: minus: -
453 CHECK: number: 1
454 CHECK: r_paren: )
455 CHECK: r_paren: )
456 CHECK: colon: :
457 CHECK: l_brace: {
458 CHECK: star: *
459 CHECK: l_paren: (
460 CHECK: identifier: .ldata
461 CHECK: identifier: .ldata.*
462 CHECK: identifier: .gnu.linkonce.l.*
463 CHECK: r_paren: )
464 CHECK: identifier: .
465 CHECK: equal: =
466 CHECK: kw_align: ALIGN
467 CHECK: l_paren: (
468 CHECK: identifier: .
469 CHECK: exclaimequal: !=
470 CHECK: number: 0
471 CHECK: question: ?
472 CHECK: number: 64
473 CHECK: slash: /
474 CHECK: number: 8
475 CHECK: colon: :
476 CHECK: number: 1
477 CHECK: r_paren: )
478 CHECK: semicolon: ;
479 CHECK: r_brace: }
480 CHECK: identifier: .
481 CHECK: equal: =
482 CHECK: kw_align: ALIGN
483 CHECK: l_paren: (
484 CHECK: number: 64
485 CHECK: slash: /
486 CHECK: number: 8
487 CHECK: r_paren: )
488 CHECK: semicolon: ;
489 CHECK: identifier: _end
490 CHECK: equal: =
491 CHECK: identifier: .
492 CHECK: semicolon: ;
493 CHECK: kw_provide: PROVIDE
494 CHECK: l_paren: (
495 CHECK: identifier: end
496 CHECK: equal: =
497 CHECK: identifier: .
498 CHECK: r_paren: )
499 CHECK: semicolon: ;
500 CHECK: identifier: .
501 CHECK: equal: =
502 CHECK: identifier: DATA_SEGMENT_END
503 CHECK: l_paren: (
504 CHECK: identifier: .
505 CHECK: r_paren: )
506 CHECK: semicolon: ;
507 CHECK: kw_discard: /DISCARD/
508 CHECK: colon: :
509 CHECK: l_brace: {
510 CHECK: star: *
511 CHECK: l_paren: (
512 CHECK: identifier: .note.GNU-stack
513 CHECK: r_paren: )
514 CHECK: star: *
515 CHECK: l_paren: (
516 CHECK: identifier: .gnu_debuglink
517 CHECK: r_paren: )
518 CHECK: star: *
519 CHECK: l_paren: (
520 CHECK: identifier: .gnu.lto_*
521 CHECK: r_paren: )
522 CHECK: r_brace: }
523 CHECK: r_brace: }
524 CHECK: eof:
525 CHECK: SEARCH_DIR("/usr/x86_64-linux-gnu/lib64")
526 CHECK: SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu")
527 CHECK: SECTIONS
528 CHECK: {
529 CHECK: PROVIDE(__executable_start = SEGMENT_START(text-segment, 4194304))
530 CHECK: . = (SEGMENT_START(text-segment, 4194304) + SIZEOF_HEADERS)
531 CHECK: .interp :
532 CHECK:   {
533 CHECK:     *(.interp)
534 CHECK:   }
535 CHECK: .note.gnu.build-id :
536 CHECK:   {
537 CHECK:     *(.note.gnu.build-id)
538 CHECK:   }
539 CHECK: .hash :
540 CHECK:   {
541 CHECK:     *(.hash)
542 CHECK:   }
543 CHECK: .rela.dyn :
544 CHECK:   {
545 CHECK:     *(.rela.init)
546 CHECK:     *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
547 CHECK:     *(.rela.fini)
548 CHECK:     *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
549 CHECK:   }
550 CHECK: .rela.plt :
551 CHECK:   {
552 CHECK:     *(.rela.plt)
553 CHECK:     PROVIDE_HIDDEN(__rela_iplt_start = .)
554 CHECK:     *(.rela.iplt)
555 CHECK:     PROVIDE_HIDDEN(__rela_iplt_end = .)
556 CHECK:   }
557 CHECK: .init :
558 CHECK:   {
559 CHECK:     KEEP(*(SORT_NONE(.init)))
560 CHECK:   } =0x909090909090909090909090
561 CHECK: PROVIDE(__etext = .)
562 CHECK: .eh_frame :
563 CHECK: ONLY_IF_RO  {
564 CHECK:     KEEP(*(.eh_frame))
565 CHECK:   }
566 CHECK: .exception_ranges :
567 CHECK: ONLY_IF_RO  {
568 CHECK:     *(.exception_ranges .exception_ranges*)
569 CHECK:   }
570 CHECK: . = (ALIGN(CONSTANT(MAXPAGESIZE)) - ((CONSTANT(MAXPAGESIZE) - .) & (CONSTANT(MAXPAGESIZE) - 1)))
571 CHECK: . = DATA_SEGMENT_ALIGN(CONSTANT(MAXPAGESIZE), CONSTANT(COMMONPAGESIZE))
572 CHECK: .eh_frame :
573 CHECK: ONLY_IF_RW  {
574 CHECK:     KEEP(*(.eh_frame))
575 CHECK:   }
576 CHECK: .ctors :
577 CHECK:   {
578 CHECK:     KEEP(*crtbegin.o(.ctors))
579 CHECK:     KEEP(*crtbegin?.o(.ctors))
580 CHECK:     KEEP(*(EXCLUDE_FILE(*crtend.o *crtend?.o ) .ctors))
581 CHECK:     KEEP(*(SORT_BY_NAME(.ctors.*)))
582 CHECK:     KEEP(*(.ctors))
583 CHECK:   }
584 CHECK: .dtors :
585 CHECK:   {
586 CHECK:     KEEP(*crtbegin.o(.dtors))
587 CHECK:     KEEP(*crtbegin?.o(.dtors))
588 CHECK:     KEEP(*(EXCLUDE_FILE(*crtend.o *crtend?.o ) .dtors))
589 CHECK:     KEEP(*(SORT_BY_NAME(.dtors.*)))
590 CHECK:     KEEP(*(.dtors))
591 CHECK:   }
592 CHECK: . = DATA_SEGMENT_RELRO_END((SIZEOF(.got.plt) >= 24) ? 24 : 0, .)
593 CHECK: .got.plt :
594 CHECK:   {
595 CHECK:     *(.got.plt)
596 CHECK:     *(.igot.plt)
597 CHECK:   }
598 CHECK: .lrodata (ALIGN(CONSTANT(MAXPAGESIZE)) + (. & (CONSTANT(MAXPAGESIZE) - 1))) :
599 CHECK:   {
600 CHECK:     *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
601 CHECK:   }
602 CHECK: .ldata (ALIGN(CONSTANT(MAXPAGESIZE)) + (. & (CONSTANT(MAXPAGESIZE) - 1))) :
603 CHECK:   {
604 CHECK:     *(.ldata .ldata.* .gnu.linkonce.l.*)
605 CHECK:     . = ALIGN((. != 0) ? (64 / 8) : 1)
606 CHECK:   }
607 CHECK: . = ALIGN((64 / 8))
608 CHECK: _end = .
609 CHECK: PROVIDE(end = .)
610 CHECK: . = DATA_SEGMENT_END(.)
611 CHECK:  :
612 CHECK:   {
613 CHECK:     *(.note.GNU-stack)
614 CHECK:     *(.gnu_debuglink)
615 CHECK:     *(.gnu.lto_*)
616 CHECK:   }
617 CHECK: }
618 */