Than McIntosh | f05d766 | 2018-04-24 09:12:18 -0400 | [diff] [blame] | 1 | //===-- LinuxToolChain.h --------------------------------------------------===// |
| 2 | // |
Than McIntosh | c84d402 | 2018-06-20 08:50:57 -0400 | [diff] [blame] | 3 | // Copyright 2018 The Go Authors. All rights reserved. |
| 4 | // Use of this source code is governed by a BSD-style |
| 5 | // license that can be found in the LICENSE file. |
Than McIntosh | f05d766 | 2018-04-24 09:12:18 -0400 | [diff] [blame] | 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | // |
| 9 | // Defines the LinuxToolChain class (helper for driver functionality). |
| 10 | // |
| 11 | //===----------------------------------------------------------------------===// |
| 12 | |
| 13 | #ifndef GOLLVM_DRIVER_LINUXTOOLCHAIN_H |
| 14 | #define GOLLVM_DRIVER_LINUXTOOLCHAIN_H |
| 15 | |
| 16 | #include "ToolChain.h" |
| 17 | #include "GccUtils.h" |
Than McIntosh | d6d9f1a | 2020-03-19 07:58:22 -0400 | [diff] [blame] | 18 | #include "Distro.h" |
Than McIntosh | f05d766 | 2018-04-24 09:12:18 -0400 | [diff] [blame] | 19 | |
| 20 | namespace toolchains { |
| 21 | |
| 22 | // Toolchain for linux. |
| 23 | |
| 24 | class Linux : public gollvm::driver::ToolChain { |
| 25 | public: |
| 26 | Linux(gollvm::driver::Driver &driver, |
| 27 | const llvm::Triple &targetTriple); |
| 28 | ~Linux(); |
| 29 | |
| 30 | gollvm::driver::Tool *buildCompiler() override; |
| 31 | gollvm::driver::Tool *buildAssembler() override; |
| 32 | gollvm::driver::Tool *buildLinker() override; |
Than McIntosh | 9a323cf | 2018-04-25 09:05:47 -0400 | [diff] [blame] | 33 | std::string getDynamicLinker(const llvm::opt::ArgList &args) override; |
Than McIntosh | f05d766 | 2018-04-24 09:12:18 -0400 | [diff] [blame] | 34 | |
| 35 | private: |
| 36 | gnutools::gccdetect::InspectRealFS inspectFS_; |
| 37 | gnutools::gccdetect::GCCInstallationDetector gccDetector_; |
Than McIntosh | d6d9f1a | 2020-03-19 07:58:22 -0400 | [diff] [blame] | 38 | distro::DistroVariety distro_; |
Than McIntosh | f05d766 | 2018-04-24 09:12:18 -0400 | [diff] [blame] | 39 | }; |
| 40 | |
| 41 | } // end namespace toolchains |
| 42 | |
| 43 | #endif // GOLLVM_DRIVER_LINUXTOOLCHAIN_H |