From: Vasileios Kalintiris Date: Fri, 13 May 2016 12:34:14 +0000 (+0000) Subject: Simplify getLinuxDynamicLinker() by using a common variable for the triple. NFC. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=24ed0a5f5ed81991781392178c61f215f83a9708;p=clang Simplify getLinuxDynamicLinker() by using a common variable for the triple. NFC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@269412 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 6ce850be4e..cbc2e6575c 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -8957,9 +8957,10 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, static std::string getLinuxDynamicLinker(const ArgList &Args, const toolchains::Linux &ToolChain) { const llvm::Triple::ArchType Arch = ToolChain.getArch(); + const llvm::Triple &Triple = ToolChain.getTriple(); - if (ToolChain.getTriple().isAndroid()) { - if (ToolChain.getTriple().isArch64Bit()) + if (Triple.isAndroid()) { + if (Triple.isArch64Bit()) return "/system/bin/linker64"; else return "/system/bin/linker"; @@ -8971,31 +8972,29 @@ static std::string getLinuxDynamicLinker(const ArgList &Args, else if (Arch == llvm::Triple::aarch64_be) return "/lib/ld-linux-aarch64_be.so.1"; else if (Arch == llvm::Triple::arm || Arch == llvm::Triple::thumb) { - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF || + if (Triple.getEnvironment() == llvm::Triple::GNUEABIHF || arm::getARMFloatABI(ToolChain, Args) == arm::FloatABI::Hard) return "/lib/ld-linux-armhf.so.3"; else return "/lib/ld-linux.so.3"; } else if (Arch == llvm::Triple::armeb || Arch == llvm::Triple::thumbeb) { // TODO: check which dynamic linker name. - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF || + if (Triple.getEnvironment() == llvm::Triple::GNUEABIHF || arm::getARMFloatABI(ToolChain, Args) == arm::FloatABI::Hard) return "/lib/ld-linux-armhf.so.3"; else return "/lib/ld-linux.so.3"; } else if (Arch == llvm::Triple::mips || Arch == llvm::Triple::mipsel || Arch == llvm::Triple::mips64 || Arch == llvm::Triple::mips64el) { - std::string LibDir = - "/lib" + mips::getMipsABILibSuffix(Args, ToolChain.getTriple()); + std::string LibDir = "/lib" + mips::getMipsABILibSuffix(Args, Triple); StringRef LibName; - bool IsNaN2008 = mips::isNaN2008(Args, ToolChain.getTriple()); + bool IsNaN2008 = mips::isNaN2008(Args, Triple); if (mips::isUCLibc(Args)) LibName = IsNaN2008 ? "ld-uClibc-mipsn8.so.0" : "ld-uClibc.so.0"; - else if (!ToolChain.getTriple().hasEnvironment() && - ToolChain.getTriple().getVendor() == - llvm::Triple::VendorType::MipsTechnologies) { - bool LE = (ToolChain.getTriple().getArch() == llvm::Triple::mipsel) || - (ToolChain.getTriple().getArch() == llvm::Triple::mips64el); + else if (!Triple.hasEnvironment() && + Triple.getVendor() == llvm::Triple::VendorType::MipsTechnologies) { + bool LE = (Triple.getArch() == llvm::Triple::mipsel) || + (Triple.getArch() == llvm::Triple::mips64el); LibName = LE ? "ld-musl-mipsel.so.1" : "ld-musl-mips.so.1"; } else LibName = IsNaN2008 ? "ld-linux-mipsn8.so.1" : "ld.so.1"; @@ -9016,7 +9015,7 @@ static std::string getLinuxDynamicLinker(const ArgList &Args, else if (Arch == llvm::Triple::sparcv9) return "/lib64/ld-linux.so.2"; else if (Arch == llvm::Triple::x86_64 && - ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUX32) + Triple.getEnvironment() == llvm::Triple::GNUX32) return "/libx32/ld-linux-x32.so.2"; else return "/lib64/ld-linux-x86-64.so.2";