forked from OSchip/llvm-project
132 lines
3.5 KiB
Plaintext
132 lines
3.5 KiB
Plaintext
## 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 -o %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
|