brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 75f6f8d Raw
114 lines · plain
1# RUN: yaml2obj %s -o %t2# RUN: llvm-objcopy --redefine-sym foo=oof --redefine-sym =wasempty --redefine-sym empty= %t %t23# RUN: llvm-readobj --symbols %t2 | FileCheck %s4# RUN: echo "  bar   rab #rename bar  " > %t.rename1.txt5# RUN: echo "foo oof #rename foo  " > %t.rename2.txt6# RUN: echo "  empty   ytpme #rename empty  " >> %t.rename2.txt7# RUN: llvm-objcopy --redefine-syms %t.rename1.txt --redefine-syms %t.rename2.txt %t %t48# RUN: llvm-readobj --symbols %t4 | FileCheck %s --check-prefix=MULTIPLE-FILES9 10!ELF11FileHeader:12  Class:           ELFCLASS6413  Data:            ELFDATA2LSB14  Type:            ET_EXEC15  Machine:         EM_X86_6416Sections:17  - Name:            .text18    Type:            SHT_PROGBITS19    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]20    Address:         0x100021    AddressAlign:    0x000000000000001022    Content:         "0000000000000000"23  - Name:            .data24    Type:            SHT_PROGBITS25    Flags:           [ SHF_ALLOC ]26    Address:         0x200027    AddressAlign:    0x000000000000001028    Content:         "0000000000000000"29Symbols:30  - Name:     foo31    Type:     STT_FUNC32    Section:  .text33    Value:    0x100434    Binding:  STB_GLOBAL35  - Name:     bar36    Type:     STT_OBJECT37    Section:  .data38    Value:    0x200039    Size:     440    Binding:  STB_GLOBAL41  - Name:     empty42    Type:     STT_FUNC43    Section:  .text44    Value:    0x100845    Binding:  STB_GLOBAL46  - Type:     STT_OBJECT47    Section:  .data48    Value:    0x200849    Binding:  STB_GLOBAL50 51#CHECK: Symbols [52#CHECK-NEXT:  Symbol {53#CHECK-NEXT:    Name:54#CHECK-NEXT:    Value: 0x055#CHECK-NEXT:    Size: 056#CHECK-NEXT:    Binding: Local57#CHECK-NEXT:    Type: None58#CHECK-NEXT:    Other: 059#CHECK-NEXT:    Section: Undefined60#CHECK-NEXT:  }61#CHECK-NEXT:  Symbol {62#CHECK-NEXT:    Name: oof63#CHECK-NEXT:    Value: 0x100464#CHECK-NEXT:    Size: 065#CHECK-NEXT:    Binding: Global66#CHECK-NEXT:    Type: Function67#CHECK-NEXT:    Other: 068#CHECK-NEXT:    Section: .text69#CHECK-NEXT:  }70#CHECK-NEXT:  Symbol {71#CHECK-NEXT:    Name: bar72#CHECK-NEXT:    Value: 0x200073#CHECK-NEXT:    Size: 474#CHECK-NEXT:    Binding: Global75#CHECK-NEXT:    Type: Object76#CHECK-NEXT:    Other: 077#CHECK-NEXT:    Section: .data78#CHECK-NEXT:  }79#CHECK-NEXT:  Symbol {80#CHECK-NEXT:    Name: (0)81#CHECK-NEXT:    Value: 0x100882#CHECK-NEXT:    Size: 083#CHECK-NEXT:    Binding: Global84#CHECK-NEXT:    Type: Function85#CHECK-NEXT:    Other: 086#CHECK-NEXT:    Section: .text87#CHECK-NEXT:  }88#CHECK-NEXT:  Symbol {89#CHECK-NEXT:    Name: wasempty90#CHECK-NEXT:    Value: 0x200891#CHECK-NEXT:    Size: 092#CHECK-NEXT:    Binding: Global93#CHECK-NEXT:    Type: Object94#CHECK-NEXT:    Other: 095#CHECK-NEXT:    Section: .data96#CHECK-NEXT:  }97 98#MULTIPLE-FILES:        Name: oof99#MULTIPLE-FILES-NEXT:   Value: 0x1004100#MULTIPLE-FILES:        Name: rab101#MULTIPLE-FILES-NEXT:   Value: 0x2000102#MULTIPLE-FILES:        Name: ytpme103#MULTIPLE-FILES-NEXT:   Value: 0x1008104 105## Show that it is not an error if a specified symbol is not present.106# RUN: llvm-objcopy %t2 %t5 --redefine-sym missing=blah107# RUN: cmp %t2 %t5108 109## Show that --redefine-sym doesn't chain together.110# RUN: llvm-objcopy %t2 %t6 --redefine-sym oof=bob --redefine-sym bob=baz111# RUN: llvm-readobj %t6 --syms | FileCheck %s --check-prefix=CHAIN --implicit-check-not="Name: baz"112 113# CHAIN: Name: bob114