diff options
Diffstat (limited to 'clang/lib/Driver/ToolChains/Linux.h')
| -rw-r--r-- | clang/lib/Driver/ToolChains/Linux.h | 61 | 
1 files changed, 61 insertions, 0 deletions
| diff --git a/clang/lib/Driver/ToolChains/Linux.h b/clang/lib/Driver/ToolChains/Linux.h new file mode 100644 index 000000000000..4c61994691c7 --- /dev/null +++ b/clang/lib/Driver/ToolChains/Linux.h @@ -0,0 +1,61 @@ +//===--- Linux.h - Linux ToolChain Implementations --------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_LINUX_H +#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_LINUX_H + +#include "Gnu.h" +#include "clang/Driver/ToolChain.h" + +namespace clang { +namespace driver { +namespace toolchains { + +class LLVM_LIBRARY_VISIBILITY Linux : public Generic_ELF { +public: +  Linux(const Driver &D, const llvm::Triple &Triple, +        const llvm::opt::ArgList &Args); + +  bool HasNativeLLVMSupport() const override; + +  void +  AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, +                            llvm::opt::ArgStringList &CC1Args) const override; +  void addLibCxxIncludePaths( +      const llvm::opt::ArgList &DriverArgs, +      llvm::opt::ArgStringList &CC1Args) const override; +  void addLibStdCxxIncludePaths( +      const llvm::opt::ArgList &DriverArgs, +      llvm::opt::ArgStringList &CC1Args) const override; +  void AddCudaIncludeArgs(const llvm::opt::ArgList &DriverArgs, +                          llvm::opt::ArgStringList &CC1Args) const override; +  void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs, +                           llvm::opt::ArgStringList &CC1Args) const override; +  CXXStdlibType GetDefaultCXXStdlibType() const override; +  bool isPIEDefault() const override; +  bool isNoExecStackDefault() const override; +  bool IsMathErrnoDefault() const override; +  SanitizerMask getSupportedSanitizers() const override; +  void addProfileRTLibs(const llvm::opt::ArgList &Args, +                        llvm::opt::ArgStringList &CmdArgs) const override; +  virtual std::string computeSysRoot() const; + +  virtual std::string getDynamicLinker(const llvm::opt::ArgList &Args) const; + +  std::vector<std::string> ExtraOpts; + +protected: +  Tool *buildAssembler() const override; +  Tool *buildLinker() const override; +}; + +} // end namespace toolchains +} // end namespace driver +} // end namespace clang + +#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_LINUX_H | 
