Add support for PPC and PPC64 multiarch toolchains on Debain.
Patch from Michel Dänzer, sent our way via Jeremy Huddleston who added 64-bit support. I just added one other place where powerpc64-linux-gnu was missing (we only had powerpc64-unknown-linux-gnu). I've also added a tree to test out the debian multiarch stuff. I don't use debian regularly, so I'm not certain this is entirely accurate. If anyone wants to check it against a debian system and fix any inaccuracies, fire away. This way at least folks can see how this is *supposed* to be tested. It'd be particularly good to get the Debian MIPS toolchains tested in this way. llvm-svn: 151482
This commit is contained in:
parent
dc497b6c1c
commit
af3c2090b4
|
@ -1219,6 +1219,7 @@ Generic_GCC::GCCInstallationDetector::GCCInstallationDetector(
|
|||
};
|
||||
static const char *const PPC64LibDirs[] = { "/lib64", "/lib" };
|
||||
static const char *const PPC64Triples[] = {
|
||||
"powerpc64-linux-gnu",
|
||||
"powerpc64-unknown-linux-gnu",
|
||||
"powerpc64-suse-linux",
|
||||
"ppc64-redhat-linux"
|
||||
|
@ -1962,6 +1963,14 @@ static std::string getMultiarchTriple(const llvm::Triple TargetTriple,
|
|||
if (llvm::sys::fs::exists(SysRoot + "/lib/mipsel-linux-gnu"))
|
||||
return "mipsel-linux-gnu";
|
||||
return TargetTriple.str();
|
||||
case llvm::Triple::ppc:
|
||||
if (llvm::sys::fs::exists(SysRoot + "/lib/powerpc-linux-gnu"))
|
||||
return "powerpc-linux-gnu";
|
||||
return TargetTriple.str();
|
||||
case llvm::Triple::ppc64:
|
||||
if (llvm::sys::fs::exists(SysRoot + "/lib/powerpc64-linux-gnu"))
|
||||
return "powerpc64-linux-gnu";
|
||||
return TargetTriple.str();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -194,3 +194,54 @@
|
|||
// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
|
||||
// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
|
||||
// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
|
||||
//
|
||||
// Thoroughly exercise the Debian multiarch environment.
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: -target i686-linux-gnu \
|
||||
// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
|
||||
// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5/crtbegin.o"
|
||||
// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
|
||||
// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
|
||||
// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
|
||||
// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
|
||||
// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
|
||||
// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: -target x86_64-linux-gnu \
|
||||
// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
|
||||
// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5/crtbegin.o"
|
||||
// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
|
||||
// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
|
||||
// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
|
||||
// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
|
||||
// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
|
||||
// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: -target powerpc-linux-gnu \
|
||||
// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
|
||||
// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5/crtbegin.o"
|
||||
// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
|
||||
// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
|
||||
// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
|
||||
// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
|
||||
// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
|
||||
// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
|
||||
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
||||
// RUN: -target powerpc64-linux-gnu \
|
||||
// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
|
||||
// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5/crtbegin.o"
|
||||
// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
|
||||
// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
|
||||
// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
|
||||
// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
|
||||
// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
|
||||
// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue