1# RUN: yaml2obj %s -o %t 2# RUN: llvm-objcopy --redefine-sym foo=oof --redefine-sym empty= %t %t2 3# RUN: llvm-readobj --symbols %t2 | FileCheck %s 4# RUN: echo " bar rab #rename bar " > %t.rename1.txt 5# RUN: echo "foo oof #rename foo " > %t.rename2.txt 6# RUN: echo " empty ytpme #rename empty " >> %t.rename2.txt 7# RUN: llvm-objcopy --redefine-syms %t.rename1.txt --redefine-syms %t.rename2.txt %t %t4 8# RUN: llvm-readobj --symbols %t4 | FileCheck %s --check-prefix=MULTIPLE-FILES 9 10!ELF 11FileHeader: 12 Class: ELFCLASS64 13 Data: ELFDATA2LSB 14 Type: ET_EXEC 15 Machine: EM_X86_64 16Sections: 17 - Name: .text 18 Type: SHT_PROGBITS 19 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 20 Address: 0x1000 21 AddressAlign: 0x0000000000000010 22 Content: "0000000000000000" 23 - Name: .data 24 Type: SHT_PROGBITS 25 Flags: [ SHF_ALLOC ] 26 Address: 0x2000 27 AddressAlign: 0x0000000000000010 28 Content: "0000000000000000" 29Symbols: 30 - Name: foo 31 Type: STT_FUNC 32 Section: .text 33 Value: 0x1004 34 Binding: STB_GLOBAL 35 - Name: bar 36 Type: STT_OBJECT 37 Section: .data 38 Value: 0x2000 39 Size: 4 40 Binding: STB_GLOBAL 41 - Name: empty 42 Type: STT_FUNC 43 Section: .text 44 Value: 0x1008 45 Binding: STB_GLOBAL 46 47#CHECK: Symbols [ 48#CHECK-NEXT: Symbol { 49#CHECK-NEXT: Name: 50#CHECK-NEXT: Value: 0x0 51#CHECK-NEXT: Size: 0 52#CHECK-NEXT: Binding: Local 53#CHECK-NEXT: Type: None 54#CHECK-NEXT: Other: 0 55#CHECK-NEXT: Section: Undefined 56#CHECK-NEXT: } 57#CHECK-NEXT: Symbol { 58#CHECK-NEXT: Name: oof 59#CHECK-NEXT: Value: 0x1004 60#CHECK-NEXT: Size: 0 61#CHECK-NEXT: Binding: Global 62#CHECK-NEXT: Type: Function 63#CHECK-NEXT: Other: 0 64#CHECK-NEXT: Section: .text 65#CHECK-NEXT: } 66#CHECK-NEXT: Symbol { 67#CHECK-NEXT: Name: bar 68#CHECK-NEXT: Value: 0x2000 69#CHECK-NEXT: Size: 4 70#CHECK-NEXT: Binding: Global 71#CHECK-NEXT: Type: Object 72#CHECK-NEXT: Other: 0 73#CHECK-NEXT: Section: .data 74#CHECK-NEXT: } 75#CHECK-NEXT: Symbol { 76#CHECK-NEXT: Name: 77#CHECK-NEXT: Value: 0x1008 78#CHECK-NEXT: Size: 0 79#CHECK-NEXT: Binding: Global 80#CHECK-NEXT: Type: Function 81#CHECK-NEXT: Other: 0 82#CHECK-NEXT: Section: .text 83#CHECK-NEXT: } 84 85#MULTIPLE-FILES: Name: oof 86#MULTIPLE-FILES-NEXT: Value: 0x1004 87#MULTIPLE-FILES: Name: rab 88#MULTIPLE-FILES-NEXT: Value: 0x2000 89#MULTIPLE-FILES: Name: ytpme 90#MULTIPLE-FILES-NEXT: Value: 0x1008 91