summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-size/elf-sysv.test
blob: 434cd5b73014ed5de8133e212a3d2ec90f961b32 (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
## Show that llvm-sizes works correctly on a typical ELF input for sysv
## format. It also shows that the formatting is correct.

## FIXME: The rules demonstrated by this test are not quite what GNU size
## follows. See https://bugs.llvm.org/show_bug.cgi?id=42934.

# RUN: yaml2obj %s > %t.o
# RUN: llvm-size --format=sysv %t.o \
# RUN:   | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}}
# RUN: llvm-size -A %t.o \
# RUN:   | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}}

#      CHECK:[[FILE]]  :
# CHECK-NEXT:section               size      addr
# CHECK-NEXT:.progbits                1   2097152
# CHECK-NEXT:.symtab_shndx            4    524288
# CHECK-NEXT:.hash                   64     65536
# CHECK-NEXT:.dynamic               128     32768
# CHECK-NEXT:.note                  256     16384
# CHECK-NEXT:.nobits                512      8192
# CHECK-NEXT:.shlib                2048      2048
# CHECK-NEXT:.dynsym               4096      1024
# CHECK-NEXT:.init_array           8192       512
# CHECK-NEXT:.fini_array          16384       256
# CHECK-NEXT:.preinit_array       32768       128
# CHECK-NEXT:.group               65536        64
# CHECK-NEXT:.relr               131072        32
# CHECK-NEXT:.os_specific        262144        16
# CHECK-NEXT:.proc_specific      524288         8
# CHECK-NEXT:.user_specific     1048576         4
# CHECK-NEXT:Total              2096069

!ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .progbits
    Type:    SHT_PROGBITS
    ShSize:  0x1
    Address: 0x200000
  - Name:    .strtab
    Type:    SHT_STRTAB
    ShSize:  0x2
    Address: 0x100000
  - Name:    .symtab_shndx
    Link:    .symtab
    Type:    SHT_SYMTAB_SHNDX
    ShSize:  0x4
    Address: 0x80000
    Entries:
  - Name:    .symtab
    Type:    SHT_SYMTAB
    ## .symtab's size has to be based on .symtab_shndx's size, hence the
    ## size not following the pattern of the other sections.
    ShSize:  0x18
    Address: 0x40000
  - Name:    .rela
    Type:    SHT_RELA
    ShSize:  0x20
    Address: 0x20000
  - Name:    .hash
    Type:    SHT_HASH
    Content: ''
    ShSize:  0x40
    Address: 0x10000
  - Name:    .dynamic
    Type:    SHT_DYNAMIC
    ShSize:  0x80
    Address: 0x8000
  - Name:    .note
    Type:    SHT_NOTE
    ShSize:  0x100
    Address: 0x4000
    Notes:   []
  - Name:    .nobits
    Type:    SHT_NOBITS
    ShSize:  0x200
    Address: 0x2000
  - Name:    .rel
    Type:    SHT_REL
    ShSize:  0x400
    Address: 0x1000
  - Name:    .shlib
    Type:    SHT_SHLIB
    ShSize:  0x800
    Address: 0x800
  - Name:    .dynsym
    Type:    SHT_DYNSYM
    ShSize:  0x1000
    Address: 0x400
  - Name:    .init_array
    Type:    SHT_INIT_ARRAY
    ShSize:  0x2000
    Address: 0x200
  - Name:    .fini_array
    Type:    SHT_FINI_ARRAY
    ShSize:  0x4000
    Address: 0x100
  - Name:    .preinit_array
    Type:    SHT_PREINIT_ARRAY
    ShSize:  0x8000
    Address: 0x80
  - Name:    .group
    Type:    SHT_GROUP
    ShSize:  0x10000
    Address: 0x40
    Info:    0
    Members:
  - Name:    .relr
    Type:    SHT_RELR
    ShSize:  0x20000
    Address: 0x20
  - Name:    .os_specific
    Type:    0x61234567
    ShSize:  0x40000
    Address: 0x10
  - Name:    .proc_specific
    Type:    0x71234567
    ShSize:  0x80000
    Address: 0x8
  - Name:    .user_specific
    Type:    0x81234567
    ShSize:  0x100000
    Address: 0x4
  - Name:    .null
    Type:    SHT_NULL
    ShSize:  0x200000
    Address: 0x2
OpenPOWER on IntegriCloud