|
clang
3.8.0
|
#include "ToolChains.h"#include "clang/Basic/ObjCRuntime.h"#include "clang/Basic/Version.h"#include "clang/Basic/VirtualFileSystem.h"#include "clang/Config/config.h"#include "clang/Driver/Compilation.h"#include "clang/Driver/Driver.h"#include "clang/Driver/DriverDiagnostic.h"#include "clang/Driver/Options.h"#include "clang/Driver/SanitizerArgs.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallString.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/StringSwitch.h"#include "llvm/Option/Arg.h"#include "llvm/Option/ArgList.h"#include "llvm/Option/OptTable.h"#include "llvm/Option/Option.h"#include "llvm/ProfileData/InstrProf.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/FileSystem.h"#include "llvm/Support/MemoryBuffer.h"#include "llvm/Support/Path.h"#include "llvm/Support/Program.h"#include "llvm/Support/TargetParser.h"#include "llvm/Support/raw_ostream.h"#include <cstdlib>#include <system_error>Go to the source code of this file.
Enumerations | |
| enum | Distro { ArchLinux, DebianLenny, DebianSqueeze, DebianWheezy, DebianJessie, DebianStretch, Exherbo, RHEL4, RHEL5, RHEL6, RHEL7, Fedora, OpenSUSE, UbuntuHardy, UbuntuIntrepid, UbuntuJaunty, UbuntuKarmic, UbuntuLucid, UbuntuMaverick, UbuntuNatty, UbuntuOneiric, UbuntuPrecise, UbuntuQuantal, UbuntuRaring, UbuntuSaucy, UbuntuTrusty, UbuntuUtopic, UbuntuVivid, UbuntuWily, UbuntuXenial, UnknownDistro } |
| Distribution (very bare-bones at the moment). More... | |
Functions | |
| static const char * | ArmMachOArchName (StringRef Arch) |
| static const char * | ArmMachOArchNameCPU (StringRef CPU) |
| static bool | isSoftFloatABI (const ArgList &Args) |
| static bool | isObjCAutoRefCount (const ArgList &Args) |
| Determine whether Objective-C automated reference counting is enabled. More... | |
| static llvm::StringRef | getGCCToolchainDir (const ArgList &Args) |
| static void | addMultilibFlag (bool Enabled, const char *const Flag, std::vector< std::string > &Flags) |
| static bool | isMipsArch (llvm::Triple::ArchType Arch) |
| static bool | isMips32 (llvm::Triple::ArchType Arch) |
| static bool | isMips64 (llvm::Triple::ArchType Arch) |
| static bool | isMipsEL (llvm::Triple::ArchType Arch) |
| static bool | isMips16 (const ArgList &Args) |
| static bool | isMicroMips (const ArgList &Args) |
| static Multilib | makeMultilib (StringRef commonSuffix) |
| static bool | findMIPSMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
| static bool | findBiarchMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, bool NeedsBiarchSuffix, DetectedMultilibs &Result) |
| static void | addPathIfExists (const Driver &D, const Twine &Path, ToolChain::path_list &Paths) |
| static bool | IsRedhat (enum Distro Distro) |
| static bool | IsOpenSUSE (enum Distro Distro) |
| static bool | IsDebian (enum Distro Distro) |
| static bool | IsUbuntu (enum Distro Distro) |
| static Distro | DetectDistro (const Driver &D, llvm::Triple::ArchType Arch) |
| static std::string | getMultiarchTriple (const Driver &D, const llvm::Triple &TargetTriple, StringRef SysRoot) |
| Get our best guess at the multiarch triple for a target. More... | |
| static StringRef | getOSLibDir (const llvm::Triple &Triple, const ArgList &Args) |
| static std::string | DetectLibcxxIncludePath (StringRef base) |
| enum Distro |
Distribution (very bare-bones at the moment).
Definition at line 3373 of file ToolChains.cpp.
|
static |
Definition at line 1715 of file ToolChains.cpp.
Referenced by findBiarchMultilibs(), and findMIPSMultilibs().
|
static |
Definition at line 3298 of file ToolChains.cpp.
References clang::vfs::FileSystem::exists(), and clang::driver::Driver::getVFS().
Referenced by clang::driver::toolchains::Linux::Linux(), clang::driver::toolchains::MyriadToolChain::MyriadToolChain(), and clang::driver::toolchains::Solaris::Solaris().
|
static |
Definition at line 95 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::MachO::getMachOArchName().
|
static |
Definition at line 112 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::MachO::getMachOArchName().
Definition at line 3424 of file ToolChains.cpp.
References ArchLinux, DebianJessie, DebianLenny, DebianSqueeze, DebianStretch, DebianWheezy, Exherbo, clang::vfs::FileSystem::exists(), Fedora, clang::driver::Driver::getVFS(), Line, OpenSUSE, RHEL4, RHEL5, RHEL6, RHEL7, UbuntuHardy, UbuntuIntrepid, UbuntuJaunty, UbuntuKarmic, UbuntuLucid, UbuntuMaverick, UbuntuNatty, UbuntuOneiric, UbuntuPrecise, UbuntuQuantal, UbuntuRaring, UbuntuSaucy, UbuntuTrusty, UbuntuUtopic, UbuntuVivid, UbuntuWily, UbuntuXenial, and UnknownDistro.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 4032 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Linux::AddClangCXXStdlibIncludeArgs().
|
static |
Definition at line 2097 of file ToolChains.cpp.
References addMultilibFlag(), clang::driver::Multilib::flag(), clang::driver::Multilib::gccSuffix(), and clang::driver::Driver::getVFS().
|
static |
Definition at line 1768 of file ToolChains.cpp.
References addMultilibFlag(), clang::begin(), clang::driver::MultilibSet::Either(), clang::end(), clang::driver::MultilibSet::FilterOut(), clang::driver::Multilib::flag(), clang::driver::Multilib::gccSuffix(), clang::driver::tools::mips::getMipsCPUAndABI(), clang::driver::Driver::getVFS(), clang::driver::Multilib::includeSuffix(), isMicroMips(), isMips16(), isMips32(), isMips64(), isMipsEL(), clang::driver::tools::mips::isNaN2008(), isSoftFloatABI(), clang::driver::tools::mips::isUCLibc(), makeMultilib(), clang::driver::MultilibSet::Maybe(), clang::driver::tools::mips::Nan2008, clang::driver::Multilib::osSuffix(), clang::driver::MultilibSet::select(), clang::driver::MultilibSet::setIncludeDirsCallback(), and clang::driver::MultilibSet::size().
Referenced by clang::driver::toolchains::MipsLLVMToolChain::MipsLLVMToolChain().
|
static |
Definition at line 1305 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Generic_GCC::GCCInstallationDetector::init().
|
static |
Get our best guess at the multiarch triple for a target.
Debian-based systems are starting to use a multiarch setup where they use a target-triple directory in the library and header search paths. Unfortunately, this triple does not align with the vanilla target triple, so we provide a rough mapping here.
Definition at line 3509 of file ToolChains.cpp.
References clang::vfs::FileSystem::exists(), and clang::driver::Driver::getVFS().
Referenced by clang::driver::toolchains::Linux::AddClangCXXStdlibIncludeArgs(), and clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 3613 of file ToolChains.cpp.
References clang::driver::tools::mips::hasMipsAbiArg(), and isMipsArch().
Referenced by clang::driver::toolchains::Linux::Linux().
Definition at line 3416 of file ToolChains.cpp.
References DebianLenny, and DebianStretch.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1745 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1740 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1728 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1732 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1723 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Linux::computeSysRoot(), getOSLibDir(), and clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1736 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Determine whether Objective-C automated reference counting is enabled.
Definition at line 247 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkARCArgs().
Definition at line 3414 of file ToolChains.cpp.
References OpenSUSE.
Referenced by clang::driver::toolchains::Linux::Linux().
Definition at line 3410 of file ToolChains.cpp.
References Fedora, RHEL4, and RHEL7.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 131 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
Definition at line 3420 of file ToolChains.cpp.
References UbuntuHardy, and UbuntuXenial.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1764 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
1.8.6