• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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