forked from OSchip/llvm-project
Revert r341373, since it fails on some targets.
Differential Revision: https://reviews.llvm.org/D51354 llvm-svn: 341418
This commit is contained in:
parent
a0aa41d793
commit
034423377c
|
@ -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;
|
||||
|
|
|
@ -1661,13 +1661,14 @@ bool Driver::HandleImmediateArgs(const Compilation &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;
|
||||
}
|
||||
|
|
|
@ -210,7 +210,6 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
|
|||
: 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::Triple &Triple, const ArgList &Args)
|
|||
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::Triple &Triple, const ArgList &Args)
|
|||
// 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
|
||||
|
|
|
@ -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: .
|
Loading…
Reference in New Issue