summaryrefslogtreecommitdiff
path: root/test/LinkerScript/sections.test
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-07-23 20:48:50 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-07-23 20:48:50 +0000
commit1c98619801a5705c688e683be3ef9d70169a0686 (patch)
tree8422105cd1a94c368315f2db16b9ac746cf7c000 /test/LinkerScript/sections.test
parentf4f3ce4613680903220815690ad79fc7ba0a2e26 (diff)
Notes
Diffstat (limited to 'test/LinkerScript/sections.test')
-rw-r--r--test/LinkerScript/sections.test624
1 files changed, 0 insertions, 624 deletions
diff --git a/test/LinkerScript/sections.test b/test/LinkerScript/sections.test
deleted file mode 100644
index 67f8288badaa..000000000000
--- a/test/LinkerScript/sections.test
+++ /dev/null
@@ -1,624 +0,0 @@
-/*
- This test exercises parsing typical commands found in GNU ld linker scripts.
- RUN: linker-script-test %s | FileCheck %s
-*/
-
-SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu");
-SECTIONS
-{
- PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
- .interp : { *(.interp) }
- .note.gnu.build-id : { *(.note.gnu.build-id) }
- .hash : { *(.hash) }
- .rela.dyn :
- {
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- }
- .rela.plt :
- {
- *(.rela.plt)
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
- }
- .init :
- {
- FILL (0x90909090)
- KEEP (*(SORT_NONE(.init)))
- } =0x909090909090909090909090
- PROVIDE (__etext = .);
- .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
- .exception_ranges : ONLY_IF_RO { *(.exception_ranges
- .exception_ranges*) }
- . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
- /* Exception handling */
- .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
- .ctors :
- {
- KEEP (*crtbegin.o(.ctors))
- KEEP (*crtbegin?.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- }
- .dtors :
- {
- KEEP (*crtbegin.o(.dtors))
- KEEP (*crtbegin?.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- }
- . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
- .got.plt : { *(.got.plt) *(.igot.plt) }
- .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
- {
- *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
- }
- .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
- {
- *(.ldata .ldata.* .gnu.linkonce.l.*)
- . = ALIGN(. != 0 ? 64 / 8 : 1);
- }
- . = ALIGN(64 / 8);
- _end = .; PROVIDE (end = .);
- . = DATA_SEGMENT_END (.);
- /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
-}
-
-/*
-CHECK: kw_search_dir: SEARCH_DIR
-CHECK: l_paren: (
-CHECK: identifier: /usr/x86_64-linux-gnu/lib64
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: kw_search_dir: SEARCH_DIR
-CHECK: l_paren: (
-CHECK: identifier: =/usr/local/lib/x86_64-linux-gnu
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: kw_sections: SECTIONS
-CHECK: l_brace: {
-CHECK: kw_provide: PROVIDE
-CHECK: l_paren: (
-CHECK: identifier: __executable_start
-CHECK: equal: =
-CHECK: identifier: SEGMENT_START
-CHECK: l_paren: (
-CHECK: identifier: text-segment
-CHECK: comma: ,
-CHECK: number: 0x400000
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: identifier: SEGMENT_START
-CHECK: l_paren: (
-CHECK: identifier: text-segment
-CHECK: comma: ,
-CHECK: number: 0x400000
-CHECK: r_paren: )
-CHECK: plus: +
-CHECK: identifier: SIZEOF_HEADERS
-CHECK: semicolon: ;
-CHECK: identifier: .interp
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .interp
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .note.gnu.build-id
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .note.gnu.build-id
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .hash
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .hash
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .rela.dyn
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .rela.init
-CHECK: r_paren: )
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .rela.text
-CHECK: identifier: .rela.text.*
-CHECK: identifier: .rela.gnu.linkonce.t.*
-CHECK: r_paren: )
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .rela.fini
-CHECK: r_paren: )
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .rela.rodata
-CHECK: identifier: .rela.rodata.*
-CHECK: identifier: .rela.gnu.linkonce.r.*
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .rela.plt
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .rela.plt
-CHECK: r_paren: )
-CHECK: kw_provide_hidden: PROVIDE_HIDDEN
-CHECK: l_paren: (
-CHECK: identifier: __rela_iplt_start
-CHECK: equal: =
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .rela.iplt
-CHECK: r_paren: )
-CHECK: kw_provide_hidden: PROVIDE_HIDDEN
-CHECK: l_paren: (
-CHECK: identifier: __rela_iplt_end
-CHECK: equal: =
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: r_brace: }
-CHECK: identifier: .init
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: kw_fill: FILL
-CHECK: l_paren: (
-CHECK: number: 0x90909090
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: kw_sort_none: SORT_NONE
-CHECK: l_paren: (
-CHECK: identifier: .init
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: kw_provide: PROVIDE
-CHECK: l_paren: (
-CHECK: identifier: __etext
-CHECK: equal: =
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: .eh_frame
-CHECK: colon: :
-CHECK: kw_only_if_ro: ONLY_IF_RO
-CHECK: l_brace: {
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .eh_frame
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .exception_ranges
-CHECK: colon: :
-CHECK: kw_only_if_ro: ONLY_IF_RO
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .exception_ranges
-CHECK: identifier: .exception_ranges*
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: kw_align: ALIGN
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: minus: -
-CHECK: l_paren: (
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: minus: -
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: amp: &
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: minus: -
-CHECK: number: 1
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: identifier: DATA_SEGMENT_ALIGN
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: comma: ,
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: COMMONPAGESIZE
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: .eh_frame
-CHECK: colon: :
-CHECK: kw_only_if_rw: ONLY_IF_RW
-CHECK: l_brace: {
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .eh_frame
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .ctors
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: identifier: *crtbegin.o
-CHECK: l_paren: (
-CHECK: identifier: .ctors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: identifier: *crtbegin?.o
-CHECK: l_paren: (
-CHECK: identifier: .ctors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: kw_exclude_file: EXCLUDE_FILE
-CHECK: l_paren: (
-CHECK: identifier: *crtend.o
-CHECK: identifier: *crtend?.o
-CHECK: r_paren: )
-CHECK: identifier: .ctors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: kw_sort_by_name: SORT
-CHECK: l_paren: (
-CHECK: identifier: .ctors.*
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .ctors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .dtors
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: identifier: *crtbegin.o
-CHECK: l_paren: (
-CHECK: identifier: .dtors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: identifier: *crtbegin?.o
-CHECK: l_paren: (
-CHECK: identifier: .dtors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: kw_exclude_file: EXCLUDE_FILE
-CHECK: l_paren: (
-CHECK: identifier: *crtend.o
-CHECK: identifier: *crtend?.o
-CHECK: r_paren: )
-CHECK: identifier: .dtors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: kw_sort_by_name: SORT
-CHECK: l_paren: (
-CHECK: identifier: .dtors.*
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: kw_keep: KEEP
-CHECK: l_paren: (
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .dtors
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: identifier: DATA_SEGMENT_RELRO_END
-CHECK: l_paren: (
-CHECK: identifier: SIZEOF
-CHECK: l_paren: (
-CHECK: identifier: .got.plt
-CHECK: r_paren: )
-CHECK: greaterequal: >=
-CHECK: number: 24
-CHECK: question: ?
-CHECK: number: 24
-CHECK: colon: :
-CHECK: number: 0
-CHECK: comma: ,
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: .got.plt
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .got.plt
-CHECK: r_paren: )
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .igot.plt
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .lrodata
-CHECK: kw_align: ALIGN
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: plus: +
-CHECK: l_paren: (
-CHECK: identifier: .
-CHECK: amp: &
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: minus: -
-CHECK: number: 1
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .lrodata
-CHECK: identifier: .lrodata.*
-CHECK: identifier: .gnu.linkonce.lr.*
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: identifier: .ldata
-CHECK: kw_align: ALIGN
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: plus: +
-CHECK: l_paren: (
-CHECK: identifier: .
-CHECK: amp: &
-CHECK: l_paren: (
-CHECK: identifier: CONSTANT
-CHECK: l_paren: (
-CHECK: identifier: MAXPAGESIZE
-CHECK: r_paren: )
-CHECK: minus: -
-CHECK: number: 1
-CHECK: r_paren: )
-CHECK: r_paren: )
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .ldata
-CHECK: identifier: .ldata.*
-CHECK: identifier: .gnu.linkonce.l.*
-CHECK: r_paren: )
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: kw_align: ALIGN
-CHECK: l_paren: (
-CHECK: identifier: .
-CHECK: exclaimequal: !=
-CHECK: number: 0
-CHECK: question: ?
-CHECK: number: 64
-CHECK: slash: /
-CHECK: number: 8
-CHECK: colon: :
-CHECK: number: 1
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: r_brace: }
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: kw_align: ALIGN
-CHECK: l_paren: (
-CHECK: number: 64
-CHECK: slash: /
-CHECK: number: 8
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: _end
-CHECK: equal: =
-CHECK: identifier: .
-CHECK: semicolon: ;
-CHECK: kw_provide: PROVIDE
-CHECK: l_paren: (
-CHECK: identifier: end
-CHECK: equal: =
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: identifier: .
-CHECK: equal: =
-CHECK: identifier: DATA_SEGMENT_END
-CHECK: l_paren: (
-CHECK: identifier: .
-CHECK: r_paren: )
-CHECK: semicolon: ;
-CHECK: kw_discard: /DISCARD/
-CHECK: colon: :
-CHECK: l_brace: {
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .note.GNU-stack
-CHECK: r_paren: )
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .gnu_debuglink
-CHECK: r_paren: )
-CHECK: star: *
-CHECK: l_paren: (
-CHECK: identifier: .gnu.lto_*
-CHECK: r_paren: )
-CHECK: r_brace: }
-CHECK: r_brace: }
-CHECK: eof:
-CHECK: SEARCH_DIR("/usr/x86_64-linux-gnu/lib64")
-CHECK: SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu")
-CHECK: SECTIONS
-CHECK: {
-CHECK: PROVIDE(__executable_start = SEGMENT_START(text-segment, 4194304))
-CHECK: . = (SEGMENT_START(text-segment, 4194304) + SIZEOF_HEADERS)
-CHECK: .interp :
-CHECK: {
-CHECK: *(.interp)
-CHECK: }
-CHECK: .note.gnu.build-id :
-CHECK: {
-CHECK: *(.note.gnu.build-id)
-CHECK: }
-CHECK: .hash :
-CHECK: {
-CHECK: *(.hash)
-CHECK: }
-CHECK: .rela.dyn :
-CHECK: {
-CHECK: *(.rela.init)
-CHECK: *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
-CHECK: *(.rela.fini)
-CHECK: *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
-CHECK: }
-CHECK: .rela.plt :
-CHECK: {
-CHECK: *(.rela.plt)
-CHECK: PROVIDE_HIDDEN(__rela_iplt_start = .)
-CHECK: *(.rela.iplt)
-CHECK: PROVIDE_HIDDEN(__rela_iplt_end = .)
-CHECK: }
-CHECK: .init :
-CHECK: {
-CHECK: FILL(0x90909090)
-CHECK: KEEP(*(SORT_NONE(.init)))
-CHECK: } =0x909090909090909090909090
-CHECK: PROVIDE(__etext = .)
-CHECK: .eh_frame :
-CHECK: ONLY_IF_RO {
-CHECK: KEEP(*(.eh_frame))
-CHECK: }
-CHECK: .exception_ranges :
-CHECK: ONLY_IF_RO {
-CHECK: *(.exception_ranges .exception_ranges*)
-CHECK: }
-CHECK: . = (ALIGN(CONSTANT(MAXPAGESIZE)) - ((CONSTANT(MAXPAGESIZE) - .) & (CONSTANT(MAXPAGESIZE) - 1)))
-CHECK: . = DATA_SEGMENT_ALIGN(CONSTANT(MAXPAGESIZE), CONSTANT(COMMONPAGESIZE))
-CHECK: .eh_frame :
-CHECK: ONLY_IF_RW {
-CHECK: KEEP(*(.eh_frame))
-CHECK: }
-CHECK: .ctors :
-CHECK: {
-CHECK: KEEP(*crtbegin.o(.ctors))
-CHECK: KEEP(*crtbegin?.o(.ctors))
-CHECK: KEEP(*(EXCLUDE_FILE(*crtend.o *crtend?.o ) .ctors))
-CHECK: KEEP(*(SORT_BY_NAME(.ctors.*)))
-CHECK: KEEP(*(.ctors))
-CHECK: }
-CHECK: .dtors :
-CHECK: {
-CHECK: KEEP(*crtbegin.o(.dtors))
-CHECK: KEEP(*crtbegin?.o(.dtors))
-CHECK: KEEP(*(EXCLUDE_FILE(*crtend.o *crtend?.o ) .dtors))
-CHECK: KEEP(*(SORT_BY_NAME(.dtors.*)))
-CHECK: KEEP(*(.dtors))
-CHECK: }
-CHECK: . = DATA_SEGMENT_RELRO_END((SIZEOF(.got.plt) >= 24) ? 24 : 0, .)
-CHECK: .got.plt :
-CHECK: {
-CHECK: *(.got.plt)
-CHECK: *(.igot.plt)
-CHECK: }
-CHECK: .lrodata (ALIGN(CONSTANT(MAXPAGESIZE)) + (. & (CONSTANT(MAXPAGESIZE) - 1))) :
-CHECK: {
-CHECK: *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
-CHECK: }
-CHECK: .ldata (ALIGN(CONSTANT(MAXPAGESIZE)) + (. & (CONSTANT(MAXPAGESIZE) - 1))) :
-CHECK: {
-CHECK: *(.ldata .ldata.* .gnu.linkonce.l.*)
-CHECK: . = ALIGN((. != 0) ? (64 / 8) : 1)
-CHECK: }
-CHECK: . = ALIGN((64 / 8))
-CHECK: _end = .
-CHECK: PROVIDE(end = .)
-CHECK: . = DATA_SEGMENT_END(.)
-CHECK: :
-CHECK: {
-CHECK: *(.note.GNU-stack)
-CHECK: *(.gnu_debuglink)
-CHECK: *(.gnu.lto_*)
-CHECK: }
-CHECK: }
-*/