Chromium Code Reviews| Index: lib/Driver/ToolChains.h |
| diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h |
| index c3918d81a79716dd176f2f96ecb4b1e8eed9502d..75db294d090b5987dd408269746675518c952b42 100644 |
| --- a/lib/Driver/ToolChains.h |
| +++ b/lib/Driver/ToolChains.h |
| @@ -774,6 +774,66 @@ private: |
| std::string NaClArmMacrosPath; |
| }; |
| +class LLVM_LIBRARY_VISIBILITY Generic_BC : public ToolChain { |
| + virtual void anchor(); |
|
Derek Schuff
2016/02/24 18:22:29
I don't think we need the anchor since we have an
Petr Hosek
2016/02/26 00:43:39
Done.
|
| +public: |
| + Generic_BC(const Driver &D, const llvm::Triple &Triple, |
| + const llvm::opt::ArgList &Args); |
| + |
| + bool HasNativeLLVMSupport() const override { return true; } |
| + |
| + bool IsIntegratedAssemblerDefault() const override { return true; } |
| + |
| + bool isPICDefault() const override { return false; } |
| + bool isPIEDefault() const override { return false; } |
| + bool isPICDefaultForced() const override { return false; } |
| + |
| + bool isBitcodeOnlyTarget() const override { return true; } |
| +}; |
| + |
| +class LLVM_LIBRARY_VISIBILITY PNaClToolChain : public Generic_BC { |
| +public: |
| + PNaClToolChain(const Driver &D, const llvm::Triple &Triple, |
| + const llvm::opt::ArgList &Args); |
| + |
| + /// Add the linker arguments to link the compiler runtime library. |
| + virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args, |
| + llvm::opt::ArgStringList &CmdArgs) const; |
| + |
| + CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; |
| + |
| + 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; |
| + void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, |
| + llvm::opt::ArgStringList &CmdArgs) const override; |
| + |
| + RuntimeLibType GetDefaultRuntimeLibType() const override { |
| + return ToolChain::RLT_CompilerRT; |
| + } |
| + |
| + void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, |
| + llvm::opt::ArgStringList &CC1Args) const override; |
| + |
| +protected: |
| + Tool *buildLinker() const override; |
| + Tool *buildAssembler() const override; |
| + |
| +private: |
| + static bool addLibStdCXXIncludePaths(Twine Base, Twine Suffix, |
| + StringRef GCCTriple, |
| + StringRef GCCMultiarchTriple, |
| + StringRef TargetMultiarchTriple, |
| + Twine IncludeSuffix, |
| + const llvm::opt::ArgList &DriverArgs, |
| + llvm::opt::ArgStringList &CC1Args); |
| + |
| + std::string computeSysRoot() const; |
| +}; |
| + |
| /// 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 { |