summaryrefslogtreecommitdiff
path: root/tools/llvm-objcopy/llvm-objcopy.cpp
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2017-08-01 05:31:50 +0000
committerPetr Hosek <phosek@chromium.org>2017-08-01 05:31:50 +0000
commitb47599479541020f984d32a9253769a92f8b1387 (patch)
tree4f057b5230d98827cedab7eabb228e98be0f116b /tools/llvm-objcopy/llvm-objcopy.cpp
parent7b3e6a19a260ef4a4179e5ec6865bc5f252afa3c (diff)
Revert "[llvm][llvm-objcopy] Added support for outputting to binary in llvm-objcopy"
The change seems to be failing on bots which are using gcc and bfd.ld as a host compiler and linker. This reverts commit r309658. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309660 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r--tools/llvm-objcopy/llvm-objcopy.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/tools/llvm-objcopy/llvm-objcopy.cpp b/tools/llvm-objcopy/llvm-objcopy.cpp
index 9b233951b8d..09edc4c3327 100644
--- a/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -53,23 +53,13 @@ LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, llvm::Error E) {
cl::opt<std::string> InputFilename(cl::Positional, cl::desc("<input>"));
cl::opt<std::string> OutputFilename(cl::Positional, cl::desc("<output>"),
cl::init("-"));
-cl::opt<std::string>
- OutputFormat("O", cl::desc("set output format to one of the following:"
- "\n\tbinary"));
void CopyBinary(const ELFObjectFile<ELF64LE> &ObjFile) {
std::unique_ptr<FileOutputBuffer> Buffer;
- std::unique_ptr<Object<ELF64LE>> Obj;
- if (!OutputFormat.empty() && OutputFormat != "binary")
- error("invalid output format '" + OutputFormat + "'");
-
- if (!OutputFormat.empty() && OutputFormat == "binary")
- Obj = llvm::make_unique<BinaryObject<ELF64LE>>(ObjFile);
- else
- Obj = llvm::make_unique<ELFObject<ELF64LE>>(ObjFile);
- Obj->finalize();
+ Object<ELF64LE> Obj{ObjFile};
+ Obj.finalize();
ErrorOr<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
- FileOutputBuffer::create(OutputFilename, Obj->totalSize(),
+ FileOutputBuffer::create(OutputFilename, Obj.totalSize(),
FileOutputBuffer::F_executable);
if (BufferOrErr.getError())
error("failed to open " + OutputFilename);
@@ -78,7 +68,7 @@ void CopyBinary(const ELFObjectFile<ELF64LE> &ObjFile) {
std::error_code EC;
if (EC)
report_fatal_error(EC.message());
- Obj->write(*Buffer);
+ Obj.write(*Buffer);
if (auto EC = Buffer->commit())
reportError(OutputFilename, EC);
}