Driver: Sketch Darwin tool chains.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67356 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
index e3347cb..9e196e0 100644
--- a/lib/Driver/ToolChains.h
+++ b/lib/Driver/ToolChains.h
@@ -43,6 +43,34 @@
   virtual const char *GetForcedPicModel() const;
 };
 
+  /// Darwin_X86 - Darwin tool chain for i386 an x86_64.
+class VISIBILITY_HIDDEN Darwin_X86 : public ToolChain {
+  mutable llvm::DenseMap<unsigned, Tool*> Tools;
+
+public:
+  Darwin_X86(const HostInfo &Host, const char *Arch, const char *Platform, 
+             const char *OS) : ToolChain(Host, Arch, Platform, OS) {}
+  ~Darwin_X86();
+
+  virtual ArgList *TranslateArgs(ArgList &Args) const;
+
+  virtual Tool &SelectTool(const Compilation &C, const JobAction &JA) const;
+
+  virtual bool IsMathErrnoDefault() const;
+  virtual bool IsUnwindTablesDefault() const;
+  virtual const char *GetDefaultRelocationModel() const;
+  virtual const char *GetForcedPicModel() const;
+};
+
+  /// Darwin_GCC - Generic Darwin tool chain using gcc.
+class VISIBILITY_HIDDEN Darwin_GCC : public Generic_GCC {
+public:
+  Darwin_GCC(const HostInfo &Host, const char *Arch, const char *Platform, 
+             const char *OS) : Generic_GCC(Host, Arch, Platform, OS) {}
+
+  virtual const char *GetDefaultRelocationModel() const { return "pic"; }
+};
+
 } // end namespace toolchains
 } // end namespace driver
 } // end namespace clang