diff options
author | Petr Hosek <phosek@chromium.org> | 2019-03-12 02:12:48 +0000 |
---|---|---|
committer | Petr Hosek <phosek@chromium.org> | 2019-03-12 02:12:48 +0000 |
commit | 930d46a2ef6342ac10382e43702db79e2d9082fd (patch) | |
tree | f535e01f34d5a8370c48611a0bb2ba51caaee354 /clang/lib/Driver/ToolChains/MipsLinux.cpp | |
parent | e8475f78e2634d5d348d7ad746efc1e6526e72f5 (diff) | |
download | bcm5719-llvm-930d46a2ef6342ac10382e43702db79e2d9082fd.tar.gz bcm5719-llvm-930d46a2ef6342ac10382e43702db79e2d9082fd.zip |
[Driver] Support object files in addition to static and shared libraries in compiler-rt
This change introduces support for object files in addition to static
and shared libraries which were already supported which requires
changing the type of the argument from boolean to an enum.
Differential Revision: https://reviews.llvm.org/D56044
llvm-svn: 355891
Diffstat (limited to 'clang/lib/Driver/ToolChains/MipsLinux.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains/MipsLinux.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChains/MipsLinux.cpp b/clang/lib/Driver/ToolChains/MipsLinux.cpp index 47d8363fc46..cfda7f4bb4d 100644 --- a/clang/lib/Driver/ToolChains/MipsLinux.cpp +++ b/clang/lib/Driver/ToolChains/MipsLinux.cpp @@ -118,11 +118,23 @@ void MipsLLVMToolChain::AddCXXStdlibLibArgs(const ArgList &Args, std::string MipsLLVMToolChain::getCompilerRT(const ArgList &Args, StringRef Component, - bool Shared) const { + FileType Type) const { SmallString<128> Path(getDriver().ResourceDir); llvm::sys::path::append(Path, SelectedMultilib.osSuffix(), "lib" + LibSuffix, getOS()); - llvm::sys::path::append(Path, Twine("libclang_rt." + Component + "-" + - "mips" + (Shared ? ".so" : ".a"))); + const char *Suffix; + switch (Type) { + case ToolChain::FT_Object: + Suffix = ".o"; + break; + case ToolChain::FT_Static: + Suffix = ".a"; + break; + case ToolChain::FT_Shared: + Suffix = ".so"; + break; + } + llvm::sys::path::append( + Path, Twine("libclang_rt." + Component + "-" + "mips" + Suffix)); return Path.str(); } |