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
 |