From c4df10e139a690e60cd332ac34491a4d358aa2c2 Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Fri, 4 Aug 2017 21:09:26 +0000 Subject: 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: 310127 --- llvm/test/tools/llvm-objcopy/basic-align-copy.test | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 llvm/test/tools/llvm-objcopy/basic-align-copy.test (limited to 'llvm/test/tools/llvm-objcopy/basic-align-copy.test') 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..5904b043ec0 --- /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: "3232" +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 3232 +# SIZE: 4098 -- cgit v1.2.3