diff options
| author | Petr Hosek <phosek@chromium.org> | 2017-08-01 23:46:33 +0000 |
|---|---|---|
| committer | Petr Hosek <phosek@chromium.org> | 2017-08-01 23:46:33 +0000 |
| commit | 0e60b2e777d49a79f42f52b907bfd119a4435174 (patch) | |
| tree | 6768d09736c233053e4b2847dbac10c651f2ca42 /llvm/test/tools/llvm-objcopy | |
| parent | da0edef1bd7b2526faebdaa1aa9924a70f91aa66 (diff) | |
| download | bcm5719-llvm-0e60b2e777d49a79f42f52b907bfd119a4435174.tar.gz bcm5719-llvm-0e60b2e777d49a79f42f52b907bfd119a4435174.zip | |
Reland "[llvm][llvm-objcopy] Added support for outputting to binary in llvm-objcopy"
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: 309768
Diffstat (limited to 'llvm/test/tools/llvm-objcopy')
| -rw-r--r-- | llvm/test/tools/llvm-objcopy/basic-align-copy.test | 37 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-objcopy/basic-binary-copy.test | 25 |
2 files changed, 62 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/basic-align-copy.test b/llvm/test/tools/llvm-objcopy/basic-align-copy.test new file mode 100644 index 00000000000..f47f7097c79 --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/basic-align-copy.test @@ -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 diff --git a/llvm/test/tools/llvm-objcopy/basic-binary-copy.test b/llvm/test/tools/llvm-objcopy/basic-binary-copy.test new file mode 100644 index 00000000000..5808f1aadf3 --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/basic-binary-copy.test @@ -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 |

