r341418 - Revert r341373, since it fails on some targets.

Tim Shen via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 4 15:20:11 PDT 2018


Author: timshen
Date: Tue Sep  4 15:20:11 2018
New Revision: 341418

URL: http://llvm.org/viewvc/llvm-project?rev=341418&view=rev
Log:
Revert r341373, since it fails on some targets.

Differential Revision: https://reviews.llvm.org/D51354

Removed:
    cfe/trunk/test/Driver/print-multi-directory.c
Modified:
    cfe/trunk/include/clang/Driver/ToolChain.h
    cfe/trunk/lib/Driver/Driver.cpp
    cfe/trunk/lib/Driver/ToolChains/Linux.cpp

Modified: cfe/trunk/include/clang/Driver/ToolChain.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/ToolChain.h?rev=341418&r1=341417&r2=341418&view=diff
==============================================================================
--- cfe/trunk/include/clang/Driver/ToolChain.h (original)
+++ cfe/trunk/include/clang/Driver/ToolChain.h Tue Sep  4 15:20:11 2018
@@ -149,7 +149,6 @@ private:
 
 protected:
   MultilibSet Multilibs;
-  Multilib SelectedMultilib;
 
   ToolChain(const Driver &D, const llvm::Triple &T,
             const llvm::opt::ArgList &Args);
@@ -228,8 +227,6 @@ public:
 
   const MultilibSet &getMultilibs() const { return Multilibs; }
 
-  const Multilib &getMultilib() const { return SelectedMultilib; }
-
   const SanitizerArgs& getSanitizerArgs() const;
 
   const XRayArgs& getXRayArgs() const;

Modified: cfe/trunk/lib/Driver/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=341418&r1=341417&r2=341418&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Driver.cpp (original)
+++ cfe/trunk/lib/Driver/Driver.cpp Tue Sep  4 15:20:11 2018
@@ -1661,13 +1661,14 @@ bool Driver::HandleImmediateArgs(const C
   }
 
   if (C.getArgs().hasArg(options::OPT_print_multi_directory)) {
-    const Multilib &Multilib = TC.getMultilib();
-    if (Multilib.gccSuffix().empty())
-      llvm::outs() << ".\n";
-    else {
-      StringRef Suffix(Multilib.gccSuffix());
-      assert(Suffix.front() == '/');
-      llvm::outs() << Suffix.substr(1) << "\n";
+    for (const Multilib &Multilib : TC.getMultilibs()) {
+      if (Multilib.gccSuffix().empty())
+        llvm::outs() << ".\n";
+      else {
+        StringRef Suffix(Multilib.gccSuffix());
+        assert(Suffix.front() == '/');
+        llvm::outs() << Suffix.substr(1) << "\n";
+      }
     }
     return false;
   }

Modified: cfe/trunk/lib/Driver/ToolChains/Linux.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Linux.cpp?rev=341418&r1=341417&r2=341418&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains/Linux.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp Tue Sep  4 15:20:11 2018
@@ -210,7 +210,6 @@ Linux::Linux(const Driver &D, const llvm
     : Generic_ELF(D, Triple, Args) {
   GCCInstallation.init(Triple, Args);
   Multilibs = GCCInstallation.getMultilibs();
-  SelectedMultilib = GCCInstallation.getMultilib();
   llvm::Triple::ArchType Arch = Triple.getArch();
   std::string SysRoot = computeSysRoot();
 
@@ -300,14 +299,16 @@ Linux::Linux(const Driver &D, const llvm
   if (GCCInstallation.isValid()) {
     const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
     const std::string &LibPath = GCCInstallation.getParentLibPath();
+    const Multilib &Multilib = GCCInstallation.getMultilib();
+    const MultilibSet &Multilibs = GCCInstallation.getMultilibs();
 
     // Add toolchain / multilib specific file paths.
-    addMultilibsFilePaths(D, Multilibs, SelectedMultilib,
+    addMultilibsFilePaths(D, Multilibs, Multilib,
                           GCCInstallation.getInstallPath(), Paths);
 
     // Sourcery CodeBench MIPS toolchain holds some libraries under
     // a biarch-like suffix of the GCC installation.
-    addPathIfExists(D, GCCInstallation.getInstallPath() + SelectedMultilib.gccSuffix(),
+    addPathIfExists(D, GCCInstallation.getInstallPath() + Multilib.gccSuffix(),
                     Paths);
 
     // GCC cross compiling toolchains will install target libraries which ship
@@ -329,7 +330,7 @@ Linux::Linux(const Driver &D, const llvm
     // Note that this matches the GCC behavior. See the below comment for where
     // Clang diverges from GCC's behavior.
     addPathIfExists(D, LibPath + "/../" + GCCTriple.str() + "/lib/../" +
-                           OSLibDir + SelectedMultilib.osSuffix(),
+                           OSLibDir + Multilib.osSuffix(),
                     Paths);
 
     // If the GCC installation we found is inside of the sysroot, we want to

Removed: cfe/trunk/test/Driver/print-multi-directory.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/print-multi-directory.c?rev=341417&view=auto
==============================================================================
--- cfe/trunk/test/Driver/print-multi-directory.c (original)
+++ cfe/trunk/test/Driver/print-multi-directory.c (removed)
@@ -1,28 +0,0 @@
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target i386-none-linux \
-// RUN:     -print-multi-directory \
-// RUN:   | FileCheck --check-prefix=CHECK-X86-MULTILIBS %s
-
-// CHECK-X86-MULTILIBS:      32
-// CHECK-X86-MULTILIBS-NOT:  x32
-// CHECK-X86-MULTILIBS-NOT:  .
-
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target i386-none-linux -m64 \
-// RUN:     -print-multi-directory \
-// RUN:   | FileCheck --check-prefix=CHECK-X86_64-MULTILIBS %s
-
-// CHECK-X86_64-MULTILIBS:      .
-// CHECK-X86_64-MULTILIBS-NOT:  x32
-// CHECK-X86_64-MULTILIBS-NOT:  32
-
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
-// RUN:     -mthumb \
-// RUN:     -B%S/Inputs/basic_android_ndk_tree \
-// RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
-// RUN:     -print-multi-directory \
-// RUN:   | FileCheck  --check-prefix=CHECK-ARM-MULTILIBS %s
-
-// CHECK-ARM-MULTILIBS:      thumb
-// CHECK-ARM-MULTILIBS-NOT:  .




More information about the cfe-commits mailing list