From: Simon Atanasyan Date: Wed, 25 Jun 2014 05:00:59 +0000 (+0000) Subject: [Driver] Follow-up to r211598, r211663. Do not build a dynamic linker X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7925371bbe385085182e24f9049b72ca5302099d;p=clang [Driver] Follow-up to r211598, r211663. Do not build a dynamic linker path using sub-strings concatenation. Return the whole string explicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211665 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 4ccb86365f..48528d9265 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -6929,8 +6929,8 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, CmdArgs.push_back("-ldl"); } -static Twine getLinuxDynamicLinker(const ArgList &Args, - const toolchains::Linux &ToolChain) { +static StringRef getLinuxDynamicLinker(const ArgList &Args, + const toolchains::Linux &ToolChain) { if (ToolChain.getTriple().getEnvironment() == llvm::Triple::Android) { if (ToolChain.getTriple().isArch64Bit()) return "/system/bin/linker64"; @@ -6964,11 +6964,11 @@ static Twine getLinuxDynamicLinker(const ArgList &Args, return "/lib/ld.so.1"; } else if (ToolChain.getArch() == llvm::Triple::mips64 || ToolChain.getArch() == llvm::Triple::mips64el) { - Twine LinkerFile = - mips::isNaN2008(Args) ? "ld-linux-mipsn8.so.1" : "ld.so.1"; if (mips::hasMipsAbiArg(Args, "n32")) - return "/lib32/" + LinkerFile; - return "/lib64/" + LinkerFile; + return mips::isNaN2008(Args) ? "/lib32/ld-linux-mipsn8.so.1" + : "/lib32/ld.so.1"; + return mips::isNaN2008(Args) ? "/lib64/ld-linux-mipsn8.so.1" + : "/lib64/ld.so.1"; } else if (ToolChain.getArch() == llvm::Triple::ppc) return "/lib/ld.so.1"; else if (ToolChain.getArch() == llvm::Triple::ppc64 ||