| //===-- LinuxToolChain.h --------------------------------------------------===// |
| // |
| // Copyright 2018 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // Defines the LinuxToolChain class (helper for driver functionality). |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef GOLLVM_DRIVER_LINUXTOOLCHAIN_H |
| #define GOLLVM_DRIVER_LINUXTOOLCHAIN_H |
| |
| #include "ToolChain.h" |
| #include "GccUtils.h" |
| #include "Distro.h" |
| |
| namespace toolchains { |
| |
| // Toolchain for linux. |
| |
| class Linux : public gollvm::driver::ToolChain { |
| public: |
| Linux(gollvm::driver::Driver &driver, |
| const llvm::Triple &targetTriple); |
| ~Linux(); |
| |
| gollvm::driver::Tool *buildCompiler() override; |
| gollvm::driver::Tool *buildAssembler() override; |
| gollvm::driver::Tool *buildLinker() override; |
| std::string getDynamicLinker(const llvm::opt::ArgList &args) override; |
| |
| private: |
| gnutools::gccdetect::InspectRealFS inspectFS_; |
| gnutools::gccdetect::GCCInstallationDetector gccDetector_; |
| distro::DistroVariety distro_; |
| }; |
| |
| } // end namespace toolchains |
| |
| #endif // GOLLVM_DRIVER_LINUXTOOLCHAIN_H |