clang
3.7.0
|
#include "ToolChains.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/Version.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/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.
Classes | |
struct | DetectedMultilibs |
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, 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 llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
static bool | findBiarchMultilibs (const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, bool NeedsBiarchSuffix, DetectedMultilibs &Result) |
static void | GetHexagonLibraryPaths (const ArgList &Args, const std::string &Ver, const std::string &MarchString, const std::string &InstalledDir, ToolChain::path_list *LibPaths) |
static int | getHexagonVersion (const ArgList &Args) |
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 (llvm::Triple::ArchType Arch) |
static std::string | getMultiarchTriple (const llvm::Triple &TargetTriple, StringRef SysRoot) |
Get our best guess at the multiarch triple for a target. More... | |
static void | addPathIfExists (Twine Path, ToolChain::path_list &Paths) |
static StringRef | getOSLibDir (const llvm::Triple &Triple, const ArgList &Args) |
enum Distro |
Distribution (very bare-bones at the moment).
Definition at line 2854 of file ToolChains.cpp.
|
static |
Definition at line 1483 of file ToolChains.cpp.
Referenced by findBiarchMultilibs(), and findMIPSMultilibs().
|
static |
Definition at line 3086 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 89 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::MachO::getMachOArchName().
|
static |
Definition at line 106 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::MachO::getMachOArchName().
|
static |
Definition at line 2904 of file ToolChains.cpp.
References ArchLinux, DebianJessie, DebianLenny, DebianSqueeze, DebianStretch, DebianWheezy, Exherbo, Fedora, Line, OpenSUSE, RHEL4, RHEL5, RHEL6, RHEL7, UbuntuHardy, UbuntuIntrepid, UbuntuJaunty, UbuntuKarmic, UbuntuLucid, UbuntuMaverick, UbuntuNatty, UbuntuOneiric, UbuntuPrecise, UbuntuQuantal, UbuntuRaring, UbuntuSaucy, UbuntuTrusty, UbuntuUtopic, UbuntuVivid, UbuntuWily, and UnknownDistro.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1826 of file ToolChains.cpp.
References addMultilibFlag(), DetectedMultilibs::BiarchSibling, clang::driver::MultilibSet::FilterOut(), clang::driver::Multilib::flag(), clang::driver::Multilib::gccSuffix(), DetectedMultilibs::Multilibs, clang::driver::MultilibSet::push_back(), clang::driver::MultilibSet::select(), and DetectedMultilibs::SelectedMultilib.
|
static |
Definition at line 1534 of file ToolChains.cpp.
References addMultilibFlag(), DetectedMultilibs::BiarchSibling, clang::driver::MultilibSet::Either(), clang::driver::MultilibSet::FilterOut(), clang::driver::Multilib::flag(), clang::driver::Multilib::gccSuffix(), clang::driver::tools::mips::getMipsCPUAndABI(), 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(), DetectedMultilibs::Multilibs, clang::driver::tools::mips::Nan2008, clang::driver::MultilibSet::push_back(), clang::driver::MultilibSet::select(), DetectedMultilibs::SelectedMultilib, clang::driver::MultilibSet::setIncludeDirsCallback(), and clang::driver::MultilibSet::size().
|
static |
Definition at line 1156 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Hexagon_TC::GetGnuDir(), and clang::driver::toolchains::Generic_GCC::GCCInstallationDetector::init().
|
static |
Definition at line 2118 of file ToolChains.cpp.
References clang::driver::toolchains::Hexagon_TC::GetGnuDir().
Referenced by clang::driver::toolchains::Hexagon_TC::Hexagon_TC().
|
static |
Definition at line 2253 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Hexagon_TC::GetTargetCPU().
|
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 2988 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::Linux::AddClangCXXStdlibIncludeArgs(), and clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 3091 of file ToolChains.cpp.
References clang::driver::tools::mips::hasMipsAbiArg(), and isMipsArch().
Referenced by clang::driver::toolchains::Linux::Linux().
Definition at line 2896 of file ToolChains.cpp.
References DebianLenny, and DebianStretch.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1513 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1508 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1496 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1500 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Definition at line 1491 of file ToolChains.cpp.
Referenced by getOSLibDir(), and clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1504 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
|
static |
Determine whether Objective-C automated reference counting is enabled.
Definition at line 234 of file ToolChains.cpp.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkARCArgs().
Definition at line 2894 of file ToolChains.cpp.
References OpenSUSE.
Referenced by clang::driver::toolchains::Linux::Linux().
Definition at line 2890 of file ToolChains.cpp.
References Fedora, RHEL4, and RHEL7.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 125 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().
Definition at line 2900 of file ToolChains.cpp.
References UbuntuHardy, and UbuntuWily.
Referenced by clang::driver::toolchains::Linux::Linux().
|
static |
Definition at line 1530 of file ToolChains.cpp.
Referenced by findMIPSMultilibs().