forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
# RUN: yaml2obj %s -o %t.o
 | 
						|
# Preserve input to verify it is not modified.
 | 
						|
# RUN: cp %t.o %t-copy.o
 | 
						|
# RUN: llvm-objcopy %t.o -O elf64-x86-64 %t.2.o
 | 
						|
# RUN: llvm-readobj --sections --symbols %t.2.o | FileCheck %s
 | 
						|
# RUN: cmp %t.o %t-copy.o
 | 
						|
 | 
						|
!ELF
 | 
						|
FileHeader:
 | 
						|
  Class:           ELFCLASS32
 | 
						|
  Data:            ELFDATA2LSB
 | 
						|
  Type:            ET_EXEC
 | 
						|
  Machine:         EM_386
 | 
						|
Sections:
 | 
						|
  - Name:            .text
 | 
						|
    Type:            SHT_PROGBITS
 | 
						|
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
 | 
						|
    Size:            32
 | 
						|
  - Name:            .data
 | 
						|
    Type:            SHT_PROGBITS
 | 
						|
    Flags:           [ SHF_ALLOC ]
 | 
						|
    Content:         DEADBEEF
 | 
						|
    Size:            16
 | 
						|
Symbols:
 | 
						|
  - Name:     foo
 | 
						|
    Type:     STT_FUNC
 | 
						|
    Section:  .text
 | 
						|
    Value:    16
 | 
						|
    Size:     8
 | 
						|
    Binding:  STB_GLOBAL
 | 
						|
  - Name:     bar
 | 
						|
    Type:     STT_OBJECT
 | 
						|
    Section:  .data
 | 
						|
    Size:     16
 | 
						|
    Binding:  STB_GLOBAL
 | 
						|
 | 
						|
# CHECK:      Sections [
 | 
						|
# CHECK-NEXT:   Section {
 | 
						|
# CHECK-NEXT:     Index: 0
 | 
						|
# CHECK-NEXT:     Name:  (0)
 | 
						|
# CHECK-NEXT:     Type: SHT_NULL (0x0)
 | 
						|
# CHECK-NEXT:     Flags [ (0x0)
 | 
						|
# CHECK-NEXT:     ]
 | 
						|
# CHECK-NEXT:     Address:
 | 
						|
# CHECK-NEXT:     Offset:
 | 
						|
# CHECK-NEXT:     Size: 0
 | 
						|
# CHECK-NEXT:     Link: 0
 | 
						|
# CHECK-NEXT:     Info: 0
 | 
						|
# CHECK-NEXT:     AddressAlignment: 0
 | 
						|
# CHECK-NEXT:     EntrySize: 0
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Section {
 | 
						|
# CHECK-NEXT:     Index: 1
 | 
						|
# CHECK-NEXT:     Name: .text
 | 
						|
# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
 | 
						|
# CHECK-NEXT:     Flags [ (0x6)
 | 
						|
# CHECK-NEXT:       SHF_ALLOC (0x2)
 | 
						|
# CHECK-NEXT:       SHF_EXECINSTR (0x4)
 | 
						|
# CHECK-NEXT:     ]
 | 
						|
# CHECK-NEXT:     Address:
 | 
						|
# CHECK-NEXT:     Offset:
 | 
						|
# CHECK-NEXT:     Size: 32
 | 
						|
# CHECK-NEXT:     Link: 0
 | 
						|
# CHECK-NEXT:     Info: 0
 | 
						|
# CHECK-NEXT:     AddressAlignment: 0
 | 
						|
# CHECK-NEXT:     EntrySize: 0
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Section {
 | 
						|
# CHECK-NEXT:     Index: 2
 | 
						|
# CHECK-NEXT:     Name: .data
 | 
						|
# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
 | 
						|
# CHECK-NEXT:     Flags [ (0x2)
 | 
						|
# CHECK-NEXT:       SHF_ALLOC (0x2)
 | 
						|
# CHECK-NEXT:     ]
 | 
						|
# CHECK-NEXT:     Address:
 | 
						|
# CHECK-NEXT:     Offset:
 | 
						|
# CHECK-NEXT:     Size: 16
 | 
						|
# CHECK-NEXT:     Link: 0
 | 
						|
# CHECK-NEXT:     Info: 0
 | 
						|
# CHECK-NEXT:     AddressAlignment: 0
 | 
						|
# CHECK-NEXT:     EntrySize: 0
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Section {
 | 
						|
# CHECK-NEXT:     Index: 3
 | 
						|
# CHECK-NEXT:     Name: .symtab
 | 
						|
# CHECK-NEXT:     Type: SHT_SYMTAB (0x2)
 | 
						|
# CHECK-NEXT:     Flags [ (0x0)
 | 
						|
# CHECK-NEXT:     ]
 | 
						|
# CHECK-NEXT:     Address:
 | 
						|
# CHECK-NEXT:     Offset:
 | 
						|
# CHECK-NEXT:     Size: 72
 | 
						|
# CHECK-NEXT:     Link: 4
 | 
						|
# CHECK-NEXT:     Info: 1
 | 
						|
# CHECK-NEXT:     AddressAlignment: 8
 | 
						|
# CHECK-NEXT:     EntrySize: 24
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Section {
 | 
						|
# CHECK-NEXT:     Index: 4
 | 
						|
# CHECK-NEXT:     Name: .strtab
 | 
						|
# CHECK-NEXT:     Type: SHT_STRTAB (0x3)
 | 
						|
# CHECK-NEXT:     Flags [ (0x0)
 | 
						|
# CHECK-NEXT:     ]
 | 
						|
# CHECK-NEXT:     Address:
 | 
						|
# CHECK-NEXT:     Offset:
 | 
						|
# CHECK-NEXT:     Size: 9
 | 
						|
# CHECK-NEXT:     Link: 0
 | 
						|
# CHECK-NEXT:     Info: 0
 | 
						|
# CHECK-NEXT:     AddressAlignment: 1
 | 
						|
# CHECK-NEXT:     EntrySize: 0
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Section {
 | 
						|
# CHECK-NEXT:     Index: 5
 | 
						|
# CHECK-NEXT:     Name: .shstrtab
 | 
						|
# CHECK-NEXT:     Type: SHT_STRTAB (0x3)
 | 
						|
# CHECK-NEXT:     Flags [ (0x0)
 | 
						|
# CHECK-NEXT:     ]
 | 
						|
# CHECK-NEXT:     Address:
 | 
						|
# CHECK-NEXT:     Offset:
 | 
						|
# CHECK-NEXT:     Size: 39
 | 
						|
# CHECK-NEXT:     Link: 0
 | 
						|
# CHECK-NEXT:     Info: 0
 | 
						|
# CHECK-NEXT:     AddressAlignment: 1
 | 
						|
# CHECK-NEXT:     EntrySize: 0
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT: ]
 | 
						|
# CHECK-NEXT: Symbols [
 | 
						|
# CHECK-NEXT:   Symbol {
 | 
						|
# CHECK-NEXT:     Name:
 | 
						|
# CHECK-NEXT:     Value: 0x0
 | 
						|
# CHECK-NEXT:     Size: 0
 | 
						|
# CHECK-NEXT:     Binding: Local (0x0)
 | 
						|
# CHECK-NEXT:     Type: None (0x0)
 | 
						|
# CHECK-NEXT:     Other: 0
 | 
						|
# CHECK-NEXT:     Section: Undefined
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Symbol {
 | 
						|
# CHECK-NEXT:     Name: foo
 | 
						|
# CHECK-NEXT:     Value: 0x10
 | 
						|
# CHECK-NEXT:     Size: 8
 | 
						|
# CHECK-NEXT:     Binding: Global (0x1)
 | 
						|
# CHECK-NEXT:     Type: Function (0x2)
 | 
						|
# CHECK-NEXT:     Other: 0
 | 
						|
# CHECK-NEXT:     Section: .text
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT:   Symbol {
 | 
						|
# CHECK-NEXT:     Name: bar
 | 
						|
# CHECK-NEXT:     Value: 0x0
 | 
						|
# CHECK-NEXT:     Size: 16
 | 
						|
# CHECK-NEXT:     Binding: Global (0x1)
 | 
						|
# CHECK-NEXT:     Type: Object (0x1)
 | 
						|
# CHECK-NEXT:     Other: 0
 | 
						|
# CHECK-NEXT:     Section: .data
 | 
						|
# CHECK-NEXT:   }
 | 
						|
# CHECK-NEXT: ]
 |