Home | History | Annotate | Download | only in llvm-objcopy
      1 # RUN: yaml2obj %s > %t
      2 # RUN: cp %t %t1
      3 # RUN: llvm-objcopy --strip-unneeded %t %t2
      4 # Verify that llvm-objcopy has not modified the input.
      5 # RUN: cmp %t %t1
      6 # RUN: llvm-readobj -symbols %t2 | FileCheck %s
      7 
      8 # Verify that llvm-strip modifies the symbol table the same way.
      9 # RUN: llvm-strip --strip-unneeded %t
     10 # RUN: cmp %t %t2
     11 
     12 !ELF
     13 FileHeader:
     14   Class:           ELFCLASS64
     15   Data:            ELFDATA2LSB
     16   Type:            ET_REL
     17   Machine:         EM_X86_64
     18 Sections:
     19   - Name:            .text
     20     Type:            SHT_PROGBITS
     21     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
     22     Address:         0x1000
     23     AddressAlign:    0x0000000000000010
     24     Size:            64
     25   - Name:            .group
     26     Type:            SHT_GROUP
     27     Link:            .symtab
     28     AddressAlign:    0x0000000000000004
     29     Info:            barfoo
     30     Members:
     31       - SectionOrType:   GRP_COMDAT
     32       - SectionOrType:   .text
     33   - Name:            .rel.text
     34     Type:            SHT_REL
     35     Link:            .symtab
     36     Info:            .text
     37     Relocations:
     38       - Offset: 0x1000
     39         Symbol: foo
     40         Type:   R_X86_64_PC32
     41 Symbols:
     42   Local:
     43     - Name:     foo
     44       Type:     STT_FUNC
     45       Section:  .text
     46       Value:    0x1000
     47       Size:     8
     48     - Name:     bar
     49       Type:     STT_FUNC
     50       Size:     8
     51       Section:  .text
     52       Value:    0x1008
     53     - Name:     barfoo
     54       Type:     STT_FUNC
     55       Size:     8
     56       Section:  .text
     57       Value:    0x1010
     58     - Name:     fileSymbol
     59       Type:     STT_FILE
     60     - Name:     sectionSymbol
     61       Type:     STT_SECTION
     62   Weak:
     63     - Name:     baz
     64       Type:     STT_FUNC
     65       Size:     8
     66       Section:  .text
     67       Value:    0x1018
     68     - Name:     foobaz
     69       Type:     STT_FUNC
     70   Global:
     71     - Name:     foobar
     72       Type:     STT_FUNC
     73     - Name:     barbaz
     74       Type:     STT_FUNC
     75       Size:     8
     76       Section:  .text
     77       Value:    0x1020
     78 
     79 #CHECK: Symbols [
     80 #CHECK-NEXT:  Symbol {
     81 #CHECK-NEXT:    Name:
     82 #CHECK-NEXT:    Value: 0x0
     83 #CHECK-NEXT:    Size: 0
     84 #CHECK-NEXT:    Binding: Local
     85 #CHECK-NEXT:    Type: None
     86 #CHECK-NEXT:    Other: 0
     87 #CHECK-NEXT:    Section: Undefined
     88 #CHECK-NEXT:  }
     89 #CHECK-NEXT:  Symbol {
     90 #CHECK-NEXT:    Name: foo
     91 #CHECK-NEXT:    Value: 0x1000
     92 #CHECK-NEXT:    Size: 8
     93 #CHECK-NEXT:    Binding: Local
     94 #CHECK-NEXT:    Type: Function
     95 #CHECK-NEXT:    Other: 0
     96 #CHECK-NEXT:    Section: .text
     97 #CHECK-NEXT:  }
     98 #CHECK-NEXT:  Symbol {
     99 #CHECK-NEXT:    Name: barfoo
    100 #CHECK-NEXT:    Value: 0x1010
    101 #CHECK-NEXT:    Size: 8
    102 #CHECK-NEXT:    Binding: Local
    103 #CHECK-NEXT:    Type: Function
    104 #CHECK-NEXT:    Other: 0
    105 #CHECK-NEXT:    Section: .text
    106 #CHECK-NEXT:  }
    107 #CHECK-NEXT:  Symbol {
    108 #CHECK-NEXT:    Name: fileSymbol
    109 #CHECK-NEXT:    Value: 0x0
    110 #CHECK-NEXT:    Size: 0
    111 #CHECK-NEXT:    Binding: Local
    112 #CHECK-NEXT:    Type: File
    113 #CHECK-NEXT:    Other: 0
    114 #CHECK-NEXT:    Section: Undefined
    115 #CHECK-NEXT:  }
    116 #CHECK-NEXT:  Symbol {
    117 #CHECK-NEXT:    Name: sectionSymbol
    118 #CHECK-NEXT:    Value: 0x0
    119 #CHECK-NEXT:    Size: 0
    120 #CHECK-NEXT:    Binding: Local
    121 #CHECK-NEXT:    Type: Section
    122 #CHECK-NEXT:    Other: 0
    123 #CHECK-NEXT:    Section: Undefined
    124 #CHECK-NEXT:  }
    125 #CHECK-NEXT:  Symbol {
    126 #CHECK-NEXT:    Name: barbaz
    127 #CHECK-NEXT:    Value: 0x1020
    128 #CHECK-NEXT:    Size: 8
    129 #CHECK-NEXT:    Binding: Global
    130 #CHECK-NEXT:    Type: Function
    131 #CHECK-NEXT:    Other: 0
    132 #CHECK-NEXT:    Section: .text
    133 #CHECK-NEXT:  }
    134 #CHECK-NEXT:  Symbol {
    135 #CHECK-NEXT:    Name: baz
    136 #CHECK-NEXT:    Value: 0x1018
    137 #CHECK-NEXT:    Size: 8
    138 #CHECK-NEXT:    Binding: Weak
    139 #CHECK-NEXT:    Type: Function
    140 #CHECK-NEXT:    Other: 0
    141 #CHECK-NEXT:    Section: .text
    142 #CHECK-NEXT:  }
    143 #CHECK-NEXT:]
    144