File tree 11 files changed +824
-0
lines changed
11 files changed +824
-0
lines changed Original file line number Diff line number Diff line change @@ -61,6 +61,7 @@ set(LLVM_TEST_DEPENDS
61
61
llvm-modextract
62
62
llvm-mt
63
63
llvm-nm
64
+ llvm-objcopy
64
65
llvm-objdump
65
66
llvm-opt-report
66
67
llvm-pdbutil
Original file line number Diff line number Diff line change
1
+ # RUN: yaml2obj %s > %t
2
+ # RUN: llvm-objcopy %t %t2
3
+ # RUN: llvm-readobj -sections %t2 | FileCheck %s
4
+
5
+ !ELF
6
+ FileHeader:
7
+ Class: ELFCLASS64
8
+ Data: ELFDATA2LSB
9
+ Type: ET_EXEC
10
+ Machine: EM_X86_64
11
+ Sections:
12
+ - Name: .bss
13
+ Type: SHT_NOBITS
14
+ Flags: [ SHF_ALLOC ]
15
+ AddressAlign: 0x0000000000000010
16
+ Size: 64
17
+ - Name: .text
18
+ Type: SHT_PROGBITS
19
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
20
+ AddressAlign: 0x0000000000000010
21
+ Content: "00000000"
22
+
23
+ # CHECK: Type: SHT_NULL
24
+
25
+ # CHECK: Name: .bss
26
+ # CHECK-NEXT: Type: SHT_NOBITS
27
+ # CHECK-NEXT: Flags [
28
+ # CHECK-NEXT: SHF_ALLOC
29
+ # CHECK-NEXT: ]
30
+ # CHECK-NEXT: Address:
31
+ # CHECK-NEXT: Offset: [[OFFSET:0x[0-9A-F]+]]
32
+ # CHECK-NEXT: Size: 64
33
+
34
+ # CHECK: Name: .text
35
+ # CHECK-NEXT: Type: SHT_PROGBITS
36
+ # CHECK-NEXT: Flags [
37
+ # CHECK-NEXT: SHF_ALLOC
38
+ # CHECK-NEXT: SHF_EXECINSTR
39
+ # CHECK-NEXT: ]
40
+ # CHECK-NEXT: Address:
41
+ # CHECK-NEXT: Offset: [[OFFSET]]
42
+ # CHECK-NEXT: Size: 4
43
+
44
+ # CHECK: Name: .shstrtab
45
+ # CHECK-NEXT: Type: SHT_STRTAB
46
+ # CHECK-NEXT: Flags [
47
+ # CHECK-NEXT: ]
Original file line number Diff line number Diff line change
1
+ # RUN: yaml2obj %s > %t
2
+ # RUN: llvm-objcopy %t %t2
3
+ # RUN: llvm-readobj -sections %t2 | FileCheck %s
4
+
5
+ !ELF
6
+ FileHeader:
7
+ Class: ELFCLASS64
8
+ Data: ELFDATA2LSB
9
+ Type: ET_EXEC
10
+ Machine: EM_X86_64
11
+ Sections:
12
+ - Name: .text
13
+ Type: SHT_PROGBITS
14
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
15
+ Address: 0x0
16
+ AddressAlign: 0x0000000000001000
17
+ Content: "00000000"
18
+ - Name: .empty
19
+ Type: SHT_PROGBITS
20
+ Flags: [ SHF_ALLOC ]
21
+ Address: 0x1000
22
+ AddressAlign: 0x0000000000001000
23
+ Content: ""
24
+ - Name: .data
25
+ Type: SHT_PROGBITS
26
+ Flags: [ SHF_ALLOC ]
27
+ Address: 0x1000
28
+ AddressAlign: 0x0000000000001000
29
+ Content: "00000000"
30
+
31
+
32
+ # CHECK: Name: .text
33
+ # CHECK-NEXT: Type: SHT_PROGBITS
34
+ # CHECK-NEXT: Flags [
35
+ # CHECK-NEXT: SHF_ALLOC
36
+ # CHECK-NEXT: SHF_EXECINSTR
37
+ # CHECK-NEXT: ]
38
+
39
+ # CHECK: Name: .empty
40
+ # CHECK-NEXT: Type: SHT_PROGBITS
41
+ # CHECK-NEXT: Flags [
42
+ # CHECK-NEXT: SHF_ALLOC
43
+ # CHECK-NEXT: ]
44
+ # CHECK-NEXT: Address: 0x1000
45
+ # CHECK-NEXT: Offset: 0x2000
46
+ # CHECK-NEXT: Size: 0
47
+
48
+ # CHECK: Name: .data
49
+ # CHECK-NEXT: Type: SHT_PROGBITS
50
+ # CHECK-NEXT: Flags [
51
+ # CHECK-NEXT: SHF_ALLOC
52
+ # CHECK-NEXT: ]
53
+ # CHECK-NEXT: Address: 0x1000
54
+ # CHECK-NEXT: Offset: 0x2000
55
+ # CHECK-NEXT: Size: 4
Original file line number Diff line number Diff line change
1
+ # RUN: yaml2obj %s -o %t
2
+ # RUN: llvm-objcopy %t %t2
3
+ # RUN: llvm-readobj -program-headers %t2 | FileCheck %s
4
+
5
+ !ELF
6
+ FileHeader:
7
+ Class: ELFCLASS64
8
+ Data: ELFDATA2LSB
9
+ Type: ET_EXEC
10
+ Machine: EM_X86_64
11
+ Sections:
12
+ - Name: .text
13
+ Type: SHT_PROGBITS
14
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
15
+ AddressAlign: 0x0000000000001000
16
+ Content: "00000000"
17
+ - Name: .init
18
+ Type: SHT_PROGBITS
19
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
20
+ Content: "00000000"
21
+ AddressAlign: 0x0000000000000010
22
+ - Name: .data
23
+ Type: SHT_PROGBITS
24
+ Flags: [ SHF_ALLOC ]
25
+ Content: "00000000"
26
+ AddressAlign: 0x0000000000001000
27
+ ProgramHeaders:
28
+ - Type: PT_LOAD
29
+ Flags: [ PF_X, PF_R ]
30
+ VAddr: 0xAAAA1000
31
+ PAddr: 0xFFFF1000
32
+ Sections:
33
+ - Section: .text
34
+ - Section: .init
35
+ - Type: PT_LOAD
36
+ Flags: [ PF_R ]
37
+ VAddr: 0xAAAA2000
38
+ PAddr: 0xFFFF2000
39
+ Sections:
40
+ - Section: .data
41
+
42
+ #CHECK: ProgramHeaders [
43
+ #CHECK-NEXT: ProgramHeader {
44
+ #CHECK-NEXT: Type: PT_LOAD
45
+ #CHECK-NEXT: Offset: 0x1000
46
+ #CHECK-NEXT: VirtualAddress: 0xAAAA1000
47
+ #CHECK-NEXT: PhysicalAddress: 0xFFFF1000
48
+ #CHECK-NEXT: FileSize: 20
49
+ #CHECK-NEXT: MemSize: 20
50
+ #CHECK-NEXT: Flags [
51
+ #CHECK-NEXT: PF_R
52
+ #CHECK-NEXT: PF_X
53
+ #CHECK-NEXT: ]
54
+ #CHECK-NEXT: Alignment: 4096
55
+ #CHECK-NEXT: }
56
+ #CHECK-NEXT: ProgramHeader {
57
+ #CHECK-NEXT: Type: PT_LOAD
58
+ #CHECK-NEXT: Offset: 0x2000
59
+ #CHECK-NEXT: VirtualAddress: 0xAAAA2000
60
+ #CHECK-NEXT: PhysicalAddress: 0xFFFF2000
61
+ #CHECK-NEXT: FileSize: 4
62
+ #CHECK-NEXT: MemSize: 4
63
+ #CHECK-NEXT: Flags [
64
+ #CHECK-NEXT: PF_R
65
+ #CHECK-NEXT: ]
66
+ #CHECK-NEXT: Alignment: 4096
67
+ #CHECK-NEXT: }
68
+ #CHECK-NEXT:]
Original file line number Diff line number Diff line change @@ -40,6 +40,7 @@ subdirectories =
40
40
llvm-modextract
41
41
llvm-mt
42
42
llvm-nm
43
+ llvm-objcopy
43
44
llvm-objdump
44
45
llvm-pdbutil
45
46
llvm-profdata
Original file line number Diff line number Diff line change
1
+ set (LLVM_LINK_COMPONENTS
2
+ Object
3
+ Support
4
+ MC
5
+ )
6
+ add_llvm_tool(llvm-objcopy
7
+ llvm-objcopy.cpp
8
+ Object.cpp
9
+ )
Original file line number Diff line number Diff line change
1
+ ;===- ./tools/llvm-objcopy/LLVMBuild.txt -----------------------*- Conf -*--===;
2
+ ;
3
+ ; The LLVM Compiler Infrastructure
4
+ ;
5
+ ; This file is distributed under the University of Illinois Open Source
6
+ ; License. See LICENSE.TXT for details.
7
+ ;
8
+ ;===------------------------------------------------------------------------===;
9
+ ;
10
+ ; This is an LLVMBuild description file for the components in this subdirectory.
11
+ ;
12
+ ; For more information on the LLVMBuild system, please see:
13
+ ;
14
+ ; http://llvm.org/docs/LLVMBuild.html
15
+ ;
16
+ ;===------------------------------------------------------------------------===;
17
+ [component_0]
18
+ type = Tool
19
+ name = llvm-objcopy
20
+ parent = Tools
21
+ required_libraries = Object MC
You can’t perform that action at this time.
0 commit comments