Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[llvm][llvm-objcopy] Added support for outputting to binary in llvm-o…
…bjcopy This change adds the "-O binary" flag which directs llvm-objcopy to output the object file to the same format as GNU objcopy does when given the flag "-O binary". This was done by splitting the Object class into two subclasses ObjectELF and ObjectBianry which each output a different format but relay on the same code to read in the Object in Object. Patch by Jake Ehrlich Differential Revision: https://reviews.llvm.org/D34480 llvm-svn: 309658
- Loading branch information
Showing
6 changed files
with
251 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# RUN: yaml2obj %s -o %t | ||
# RUN: llvm-objcopy -O binary %t %t2 | ||
# RUN: od -t x2 %t2 | FileCheck %s | ||
# RUN: wc -c < %t2 | FileCheck %s --check-prefix=SIZE | ||
|
||
!ELF | ||
FileHeader: | ||
Class: ELFCLASS64 | ||
Data: ELFDATA2LSB | ||
Type: ET_EXEC | ||
Machine: EM_X86_64 | ||
Sections: | ||
- Name: .text | ||
Type: SHT_PROGBITS | ||
Flags: [ SHF_ALLOC, SHF_EXECINSTR ] | ||
AddressAlign: 0x0000000000001000 | ||
Content: "c3c3c3c3" | ||
- Name: .data | ||
Type: SHT_PROGBITS | ||
Flags: [ SHF_ALLOC, SHF_EXECINSTR ] | ||
AddressAlign: 0x0000000000001000 | ||
Content: "32" | ||
ProgramHeaders: | ||
- Type: PT_LOAD | ||
Flags: [ PF_X, PF_R ] | ||
Sections: | ||
- Section: .text | ||
- Type: PT_LOAD | ||
Flags: [ PF_R ] | ||
Sections: | ||
- Section: .data | ||
|
||
# CHECK: 0000000 c3c3 c3c3 0000 0000 0000 0000 0000 0000 | ||
# CHECK-NEXT: 0000020 0000 0000 0000 0000 0000 0000 0000 0000 | ||
# CHECK-NEXT: * | ||
# CHECK-NEXT: 0010000 0032 | ||
# SIZE: 4097 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# RUN: yaml2obj %s -o %t | ||
# RUN: llvm-objcopy -O binary %t %t2 | ||
# RUN: od -t x2 -v %t2 | FileCheck %s | ||
# RUN: wc -c < %t2 | FileCheck %s --check-prefix=SIZE | ||
|
||
!ELF | ||
FileHeader: | ||
Class: ELFCLASS64 | ||
Data: ELFDATA2LSB | ||
Type: ET_EXEC | ||
Machine: EM_X86_64 | ||
Sections: | ||
- Name: .text | ||
Type: SHT_PROGBITS | ||
Flags: [ SHF_ALLOC, SHF_EXECINSTR ] | ||
AddressAlign: 0x0000000000001000 | ||
Content: "c3c3c3c3" | ||
ProgramHeaders: | ||
- Type: PT_LOAD | ||
Flags: [ PF_X, PF_R ] | ||
Sections: | ||
- Section: .text | ||
|
||
# CHECK: 0000000 c3c3 c3c3 | ||
# SIZE: 4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.