[llvm] r269244 - Initial add for MachO support for yaml2obj

Chris Bieneman via llvm-commits llvm-commits at lists.llvm.org
Wed May 11 15:07:49 PDT 2016


Author: cbieneman
Date: Wed May 11 17:07:48 2016
New Revision: 269244

URL: http://llvm.org/viewvc/llvm-project?rev=269244&view=rev
Log:
Initial add for MachO support for yaml2obj

Adding the initial files for adding MachO support to yaml2obj. Passing a MachO file will result in an error.

I will be implementing obj2yaml and yaml2obj for MachO in parallel so that one can be used to test the other.

Added:
    llvm/trunk/tools/yaml2obj/yaml2macho.cpp
Modified:
    llvm/trunk/tools/yaml2obj/CMakeLists.txt
    llvm/trunk/tools/yaml2obj/yaml2obj.cpp
    llvm/trunk/tools/yaml2obj/yaml2obj.h

Modified: llvm/trunk/tools/yaml2obj/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/CMakeLists.txt?rev=269244&r1=269243&r2=269244&view=diff
==============================================================================
--- llvm/trunk/tools/yaml2obj/CMakeLists.txt (original)
+++ llvm/trunk/tools/yaml2obj/CMakeLists.txt Wed May 11 17:07:48 2016
@@ -9,4 +9,5 @@ add_llvm_tool(yaml2obj
   yaml2obj.cpp
   yaml2coff.cpp
   yaml2elf.cpp
+  yaml2macho.cpp
   )

Added: llvm/trunk/tools/yaml2obj/yaml2macho.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2macho.cpp?rev=269244&view=auto
==============================================================================
--- llvm/trunk/tools/yaml2obj/yaml2macho.cpp (added)
+++ llvm/trunk/tools/yaml2obj/yaml2macho.cpp Wed May 11 17:07:48 2016
@@ -0,0 +1,23 @@
+//===- yaml2macho - Convert YAML to a Mach object file --------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// \brief The Mach component of yaml2obj.
+///
+//===----------------------------------------------------------------------===//
+
+#include "yaml2obj.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+
+int yaml2macho(llvm::yaml::Input &YIn, llvm::raw_ostream &Out) {
+  errs() << "yaml2obj: Mach-O not implemented yet!\n";
+  return 1;
+}

Modified: llvm/trunk/tools/yaml2obj/yaml2obj.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2obj.cpp?rev=269244&r1=269243&r2=269244&view=diff
==============================================================================
--- llvm/trunk/tools/yaml2obj/yaml2obj.cpp (original)
+++ llvm/trunk/tools/yaml2obj/yaml2obj.cpp Wed May 11 17:07:48 2016
@@ -42,7 +42,8 @@ static cl::opt<std::string>
 // library.
 enum YAMLObjectFormat {
   YOF_COFF,
-  YOF_ELF
+  YOF_ELF,
+  YOF_MACHO
 };
 
 cl::opt<YAMLObjectFormat> Format(
@@ -51,6 +52,7 @@ cl::opt<YAMLObjectFormat> Format(
   cl::values(
     clEnumValN(YOF_COFF, "coff", "COFF object file format"),
     clEnumValN(YOF_ELF, "elf", "ELF object file format"),
+    clEnumValN(YOF_MACHO, "macho", "Mach-O object file format"),
   clEnumValEnd));
 
 cl::opt<unsigned>
@@ -102,6 +104,8 @@ int main(int argc, char **argv) {
     Convert = yaml2coff;
   else if (Format == YOF_ELF)
     Convert = yaml2elf;
+  else if (Format == YOF_MACHO)
+    Convert = yaml2macho;
   else {
     errs() << "Not yet implemented\n";
     return 1;

Modified: llvm/trunk/tools/yaml2obj/yaml2obj.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2obj.h?rev=269244&r1=269243&r2=269244&view=diff
==============================================================================
--- llvm/trunk/tools/yaml2obj/yaml2obj.h (original)
+++ llvm/trunk/tools/yaml2obj/yaml2obj.h Wed May 11 17:07:48 2016
@@ -20,5 +20,6 @@ class Input;
 }
 int yaml2coff(llvm::yaml::Input &YIn, llvm::raw_ostream &Out);
 int yaml2elf(llvm::yaml::Input &YIn, llvm::raw_ostream &Out);
+int yaml2macho(llvm::yaml::Input &YIn, llvm::raw_ostream &Out);
 
 #endif




More information about the llvm-commits mailing list