aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/ToolChains.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-20 00:57:52 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-20 00:57:52 +0000
commit8eddb3fb6ff3dd20e3920380e1ce56df105b8a98 (patch)
tree52ea613b23416515b3ef750b7ba80521847f1a6d /lib/Driver/ToolChains.h
parentff7488dc9a766f94daf54d81b03ab9160d0bfd88 (diff)
Driver: Sketch Darwin tool chains.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67356 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ToolChains.h')
-rw-r--r--lib/Driver/ToolChains.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
index e3347cbd28..9e196e02f2 100644
--- a/lib/Driver/ToolChains.h
+++ b/lib/Driver/ToolChains.h
@@ -43,6 +43,34 @@ public:
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