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: . _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits