Index: lib/Driver/ToolChains.h |
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h |
index 876bb01f33a77ae83af2cd521f30ab2e61a18339..467072edbc3413ac9dd856d5f877c89f6768e914 100644 |
--- a/lib/Driver/ToolChains.h |
+++ b/lib/Driver/ToolChains.h |
@@ -715,6 +715,48 @@ public: |
static StringRef GetTargetCPU(const llvm::opt::ArgList &Args); |
}; |
+// @LOCALMOD-START |
+class LLVM_LIBRARY_VISIBILITY NaCl_TC : public Generic_ELF { |
+public: |
+ NaCl_TC(const Driver &D, const llvm::Triple &Triple, |
+ const llvm::opt::ArgList &Args); |
+ |
+ void |
+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, |
+ llvm::opt::ArgStringList &CC1Args) const override; |
+ void |
+ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, |
+ llvm::opt::ArgStringList &CC1Args) const override; |
+ |
+ CXXStdlibType |
+ GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; |
+ |
+ void |
+ AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, |
+ llvm::opt::ArgStringList &CmdArgs) const override; |
+ |
+ bool |
+ IsIntegratedAssemblerDefault() const override { return false; } |
+ |
+ // Get the path to the file containing NaCl's ARM macros. It lives in NaCl_TC |
+ // because the AssembleARM tool needs a const char * that it can pass around |
+ // and the toolchain outlives all the jobs. |
+ const char *GetNaClArmMacrosPath() const { return NaClArmMacrosPath.c_str(); } |
+ |
+ std::string ComputeEffectiveClangTriple(const llvm::opt::ArgList &Args, |
+ types::ID InputType) const override; |
+ std::string Linker; |
+ |
+protected: |
+ Tool *buildLinker() const override; |
+ Tool *buildAssembler() const override; |
+ |
+private: |
+ std::string NaClArmMacrosPath; |
+}; |
+// @LOCALMOD-END |
+ |
+ |
/// TCEToolChain - A tool chain using the llvm bitcode tools to perform |
/// all subcommands. See http://tce.cs.tut.fi for our peculiar target. |
class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain { |