blob: a37bcad221f6067464fea6bc995962ba400b4f70 [file] [log] [blame]
Paul Semel3a8a56b2018-04-27 19:16:27 +00001# RUN: yaml2obj %s > %t
2# RUN: llvm-objcopy --weaken-symbol Global -W Local -W Weak %t %t2
Jordan Rupprecht298ea3f2019-01-11 18:06:31 +00003# RUN: llvm-readobj --symbols %t2 | FileCheck %s
Eugene Leviantef6eba22019-02-06 13:45:22 +00004# RUN: llvm-objcopy --regex --weaken-symbol='.*' %t %t3
Eugene Leviantf324f6d2019-02-06 11:00:07 +00005# RUN: cmp %t2 %t3
Paul Semel3a8a56b2018-04-27 19:16:27 +00006
7!ELF
8FileHeader:
9 Class: ELFCLASS64
10 Data: ELFDATA2LSB
11 Type: ET_REL
12 Machine: EM_X86_64
13Sections:
14 - Name: .text
15 Type: SHT_PROGBITS
16 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
17 Address: 0x1000
18 AddressAlign: 0x0000000000000010
19 Size: 64
20Symbols:
21 Local:
22 - Name: Local
23 Type: STT_FUNC
24 Section: .text
25 Value: 0x1000
26 Size: 8
27 Weak:
28 - Name: Weak
29 Type: STT_FUNC
30 Size: 8
31 Section: .text
32 Value: 0x1008
33 Global:
34 - Name: Global
35 Type: STT_FUNC
36 Size: 8
37 Section: .text
38 Value: 0x1010
39
40#CHECK: Symbols [
41#CHECK-NEXT: Symbol {
42#CHECK-NEXT: Name:
43#CHECK-NEXT: Value: 0x0
44#CHECK-NEXT: Size: 0
45#CHECK-NEXT: Binding: Local
46#CHECK-NEXT: Type: None
47#CHECK-NEXT: Other: 0
48#CHECK-NEXT: Section: Undefined
49#CHECK-NEXT: }
50#CHECK-NEXT: Symbol {
51#CHECK-NEXT: Name: Local
52#CHECK-NEXT: Value: 0x1000
53#CHECK-NEXT: Size: 8
54#CHECK-NEXT: Binding: Local
55#CHECK-NEXT: Type: Function
56#CHECK-NEXT: Other: 0
57#CHECK-NEXT: Section: .text
58#CHECK-NEXT: }
59#CHECK-NEXT: Symbol {
60#CHECK-NEXT: Name: Global
61#CHECK-NEXT: Value: 0x1010
62#CHECK-NEXT: Size: 8
63#CHECK-NEXT: Binding: Weak
64#CHECK-NEXT: Type: Function
65#CHECK-NEXT: Other: 0
66#CHECK-NEXT: Section: .text
67#CHECK-NEXT: }
68#CHECK-NEXT: Symbol {
69#CHECK-NEXT: Name: Weak
70#CHECK-NEXT: Value: 0x1008
71#CHECK-NEXT: Size: 8
72#CHECK-NEXT: Binding: Weak
73#CHECK-NEXT: Type: Function
74#CHECK-NEXT: Other: 0
75#CHECK-NEXT: Section: .text
76#CHECK-NEXT: }
77#CHECK-NEXT:]