]> granicus.if.org Git - clang/commitdiff
Simplify getLinuxDynamicLinker() by using a common variable for the triple. NFC.
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Fri, 13 May 2016 12:34:14 +0000 (12:34 +0000)
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Fri, 13 May 2016 12:34:14 +0000 (12:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@269412 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp

index 6ce850be4ee281de841d0978486f2ada9e9dc0ae..cbc2e6575c5ae627c260a0d380b4ead63857aa23 100644 (file)
@@ -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";