| Index: lib/Driver/ToolChains.h
|
| diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
|
| index 33c97b2f3d2e44230e1f7a8d231d7ca0a80df5d1..11b47c16602527aba79d6d1c81fbad5c083ab320 100644
|
| --- a/lib/Driver/ToolChains.h
|
| +++ b/lib/Driver/ToolChains.h
|
| @@ -757,6 +757,65 @@ private:
|
| std::string NaClArmMacrosPath;
|
| };
|
|
|
| +class LLVM_LIBRARY_VISIBILITY Generic_BC : public ToolChain {
|
| +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 {
|
|
|