aboutsummaryrefslogtreecommitdiff
path: root/test/ELF/linkerscript/orphan.s
blob: f51085383a9ee598316dd1553fd0fe1ca89de264 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: echo "SECTIONS {       \
# RUN:  .text : { *(.text) }  \
# RUN:  .rw1 : { *(.rw1) }    \
# RUN:  .rw2 : { *(.rw2) }    \
# RUN:  .rw3 : { *(.rw3) }    \
# RUN: }" > %t.script
# RUN: ld.lld -o %t1 --script %t.script %t
# RUN: llvm-objdump -section-headers %t1 | FileCheck %s

## .jcr is a relro section and should be placed after other RW sections.
## .bss is SHT_NOBITS section and should be last RW section, so some space
## in ELF file could be saved.
# CHECK:       0               00000000 0000000000000000
# CHECK-NEXT:  1 .text         00000000 0000000000000000 TEXT DATA
# CHECK-NEXT:  2 .rw1          00000008 0000000000000000 DATA
# CHECK-NEXT:  3 .rw2          00000008 0000000000000008 DATA
# CHECK-NEXT:  4 .rw3          00000008 0000000000000010 DATA
# CHECK-NEXT:  5 .jcr          00000008 0000000000000018 DATA
# CHECK-NEXT:  6 .bss          00000008 0000000000000020 BSS

.section .rw1, "aw"
 .quad 0

.section .rw2, "aw"
 .quad 0

.section .rw3, "aw"
 .quad 0

.section .jcr, "aw"
 .quad 0

.section .bss, "aw",@nobits
 .quad 0