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 PPC64LibDirs[] = { "/lib64", "/lib" };
|
||||||
static const char *const PPC64Triples[] = {
|
static const char *const PPC64Triples[] = {
|
||||||
|
"powerpc64-linux-gnu",
|
||||||
"powerpc64-unknown-linux-gnu",
|
"powerpc64-unknown-linux-gnu",
|
||||||
"powerpc64-suse-linux",
|
"powerpc64-suse-linux",
|
||||||
"ppc64-redhat-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"))
|
if (llvm::sys::fs::exists(SysRoot + "/lib/mipsel-linux-gnu"))
|
||||||
return "mipsel-linux-gnu";
|
return "mipsel-linux-gnu";
|
||||||
return TargetTriple.str();
|
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
|
// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
|
||||||
// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
|
// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
|
||||||
// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
|
// 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