Home | History | Annotate | Download | only in llvm-objcopy
      1 # RUN: yaml2obj %s > %t
      2 # RUN: cp %t %t1
      3 # RUN: llvm-objcopy --strip-all --keep-symbol foo %t %t2
      4 # RUN: llvm-readobj -sections -symbols %t2 | FileCheck %s
      5 
      6 # Verify that the first run of llvm-objcopy
      7 # has not modified the input binary.
      8 # RUN: cmp %t %t1
      9 
     10 # RUN: llvm-strip -keep-symbol=foo %t1
     11 # RUN: cmp %t1 %t2
     12 
     13 # RUN: cp %t %t3
     14 # RUN: llvm-strip --keep-symbol foo %t3
     15 # RUN: cmp %t1 %t3
     16 
     17 !ELF
     18 FileHeader:
     19   Class:           ELFCLASS64
     20   Data:            ELFDATA2LSB
     21   Type:            ET_REL
     22   Machine:         EM_X86_64
     23 Sections:
     24   - Name:            .text
     25     Type:            SHT_PROGBITS
     26     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
     27     Address:         0x1000
     28     AddressAlign:    0x0000000000000010
     29     Size:            64
     30   - Name:            .gnu.warning.foo
     31     Type:            SHT_PROGBITS
     32   - Name:            .debug_bar
     33     Type:            SHT_PROGBITS
     34 Symbols:
     35   Local:
     36     - Name:     foo
     37       Type:     STT_FUNC
     38       Section:  .text
     39       Value:    0x1000
     40       Size:     8
     41     - Name:     bar
     42       Type:     STT_FUNC
     43       Section:  .text
     44       Value:    0x1008
     45       Size:     8
     46     - Name:     baz
     47       Type:     STT_FUNC
     48       Section:  .text
     49       Value:    0x1010
     50       Size:     8
     51 
     52 # CHECK:     Name: .text
     53 # CHECK:     Name: .gnu.warning.foo
     54 # CHECK:     Name: .symtab
     55 # CHECK:     Name: .strtab
     56 # CHECK:     Name: .shstrtab
     57 # CHECK-NOT: Name: .debug_bar
     58 
     59 #CHECK: Symbols [
     60 #CHECK-NEXT:  Symbol {
     61 #CHECK-NEXT:    Name:
     62 #CHECK-NEXT:    Value: 0x0
     63 #CHECK-NEXT:    Size: 0
     64 #CHECK-NEXT:    Binding: Local
     65 #CHECK-NEXT:    Type: None
     66 #CHECK-NEXT:    Other: 0
     67 #CHECK-NEXT:    Section: Undefined
     68 #CHECK-NEXT:  }
     69 #CHECK-NEXT:  Symbol {
     70 #CHECK-NEXT:    Name: foo
     71 #CHECK-NEXT:    Value: 0x1000
     72 #CHECK-NEXT:    Size: 8
     73 #CHECK-NEXT:    Binding: Local
     74 #CHECK-NEXT:    Type: Function
     75 #CHECK-NEXT:    Other: 0
     76 #CHECK-NEXT:    Section: .text
     77 #CHECK-NEXT:  }
     78 #CHECK-NEXT:]
     79