Author: rafael
Date: Mon Oct 28 13:52:30 2013
New Revision: 193528
URL: http://llvm.org/viewvc/llvm-project?rev=193528&view=rev
Log:
Support cross linking to arm on ubuntu.
With this patch we correctly determine that ubuntu's ARM tree is not biarch
and use "lib" istead of "lib32".
Without this patch the search inside the arm tree for the crt files was failing
and we would end up trying to use the i686 ones in lib32.
Added:
cfe/trunk/test/Driver/Inputs/fedora_18_tree/etc/
cfe/trunk/test/Driver/Inputs/fedora_18_tree/etc/redhat-release
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/etc/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/etc/debian_version
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/lib/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/lib/.keep
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crt1.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crti.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crtn.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crt1.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crti.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crtn.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtbegin.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtend.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o
Modified:
cfe/trunk/lib/Driver/ToolChains.cpp
cfe/trunk/test/Driver/cross-linux.c
cfe/trunk/test/Driver/linux-ld.c
Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=193528&r1=193527&r2=193528&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Mon Oct 28 13:52:30 2013
@@ -2127,9 +2127,9 @@ static bool IsUbuntu(enum Distro Distro)
return Distro >= UbuntuHardy && Distro <= UbuntuSaucy;
}
-static Distro DetectDistro(llvm::Triple::ArchType Arch) {
+static Distro DetectDistro(StringRef Prefix, llvm::Triple::ArchType Arch) {
OwningPtr<llvm::MemoryBuffer> File;
- if (!llvm::MemoryBuffer::getFile("/etc/lsb-release", File)) {
+ if (!llvm::MemoryBuffer::getFile(Prefix + "/etc/lsb-release", File)) {
StringRef Data = File.get()->getBuffer();
SmallVector<StringRef, 8> Lines;
Data.split(Lines, "\n");
@@ -2153,7 +2153,7 @@ static Distro DetectDistro(llvm::Triple:
return Version;
}
- if (!llvm::MemoryBuffer::getFile("/etc/redhat-release", File)) {
+ if (!llvm::MemoryBuffer::getFile(Prefix + "/etc/redhat-release", File)) {
StringRef Data = File.get()->getBuffer();
if (Data.startswith("Fedora release"))
return Fedora;
@@ -2171,7 +2171,7 @@ static Distro DetectDistro(llvm::Triple:
return UnknownDistro;
}
- if (!llvm::MemoryBuffer::getFile("/etc/debian_version", File)) {
+ if (!llvm::MemoryBuffer::getFile(Prefix + "/etc/debian_version", File)) {
StringRef Data = File.get()->getBuffer();
if (Data[0] == '5')
return DebianLenny;
@@ -2184,13 +2184,13 @@ static Distro DetectDistro(llvm::Triple:
return UnknownDistro;
}
- if (llvm::sys::fs::exists("/etc/SuSE-release"))
+ if (llvm::sys::fs::exists(Prefix + "/etc/SuSE-release"))
return OpenSUSE;
- if (llvm::sys::fs::exists("/etc/exherbo-release"))
+ if (llvm::sys::fs::exists(Prefix + "/etc/exherbo-release"))
return Exherbo;
- if (llvm::sys::fs::exists("/etc/arch-release"))
+ if (llvm::sys::fs::exists(Prefix + "/etc/arch-release"))
return ArchLinux;
return UnknownDistro;
@@ -2265,9 +2265,14 @@ static void addPathIfExists(Twine Path,
}
static StringRef getMultilibDir(const llvm::Triple &Triple,
+ bool IsBiarch,
const ArgList &Args) {
- if (!isMipsArch(Triple.getArch()))
+ if (!isMipsArch(Triple.getArch())) {
+ if (!IsBiarch)
+ return "lib";
+
return Triple.isArch32Bit() ? "lib32" : "lib64";
+ }
// lib32 directory has a special meaning on MIPS targets.
// It contains N32 ABI binaries. Use this folder if produce
@@ -2297,7 +2302,7 @@ Linux::Linux(const Driver &D, const llvm
Linker = GetProgramPath("ld");
- Distro Distro = DetectDistro(Arch);
+ Distro Distro = DetectDistro(SysRoot, Arch);
if (IsOpenSUSE(Distro) || IsUbuntu(Distro)) {
ExtraOpts.push_back("-z");
@@ -2346,8 +2351,15 @@ Linux::Linux(const Driver &D, const llvm
// possible permutations of these directories, and seeing which ones it added
// to the link paths.
path_list &Paths = getFilePaths();
+ bool IsBiarch;
+ if (IsRedhat(Distro))
+ IsBiarch = true;
+ else if (GCCInstallation.isValid())
+ IsBiarch = !GCCInstallation.getBiarchSuffix().empty();
+ else
+ IsBiarch = true; // FIXME: is this a reasonable fallback?
- const std::string Multilib = getMultilibDir(Triple, Args);
+ const std::string Multilib = getMultilibDir(Triple, IsBiarch, Args);
const std::string MultiarchTriple = getMultiarchTriple(Triple, SysRoot);
// Add the multilib suffixed paths where they are available.
@@ -2419,7 +2431,7 @@ Linux::Linux(const Driver &D, const llvm
// Add the non-multilib suffixed paths (if potentially different).
const std::string &LibPath = GCCInstallation.getParentLibPath();
const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
- if (!GCCInstallation.getBiarchSuffix().empty())
+ if (IsBiarch)
addPathIfExists(GCCInstallation.getInstallPath() +
GCCInstallation.getMultiLibSuffix(), Paths);
Added: cfe/trunk/test/Driver/Inputs/fedora_18_tree/etc/redhat-release
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/fedora_18_tree/etc/redhat-release?rev=193528&view=auto
==============================================================================
--- cfe/trunk/test/Driver/Inputs/fedora_18_tree/etc/redhat-release (added)
+++ cfe/trunk/test/Driver/Inputs/fedora_18_tree/etc/redhat-release Mon Oct 28
13:52:30 2013
@@ -0,0 +1 @@
+Fedora release 18 (Spherical Cow)
Added: cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/etc/debian_version
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/etc/debian_version?rev=193528&view=auto
==============================================================================
--- cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/etc/debian_version (added)
+++ cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/etc/debian_version Mon Oct
28 13:52:30 2013
@@ -0,0 +1 @@
+wheezy/sid
Added: cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/lib/.keep
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/lib/.keep?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crt1.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crt1.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crti.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crti.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crtn.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crtn.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crt1.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crt1.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crti.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crti.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crtn.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crtn.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtbegin.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtbegin.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtend.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtend.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o?rev=193528&view=auto
==============================================================================
(empty)
Added:
cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o?rev=193528&view=auto
==============================================================================
(empty)
Modified: cfe/trunk/test/Driver/cross-linux.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cross-linux.c?rev=193528&r1=193527&r2=193528&view=diff
==============================================================================
--- cfe/trunk/test/Driver/cross-linux.c (original)
+++ cfe/trunk/test/Driver/cross-linux.c Mon Oct 28 13:52:30 2013
@@ -36,7 +36,7 @@
// CHECK-MULTI32-I386: "-m" "elf_i386"
// CHECK-MULTI32-I386: "crti.o"
"[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]{{/|\\\\}}crtbegin.o"
// CHECK-MULTI32-I386: "-L[[gcc_install]]"
-// CHECK-MULTI32-I386:
"-L[[gcc_install]]/../../../../i386-unknown-linux/lib/../lib32"
+// CHECK-MULTI32-I386:
"-L[[gcc_install]]/../../../../i386-unknown-linux/lib/../lib"
// CHECK-MULTI32-I386: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib"
// CHECK-MULTI32-I386: "-L[[sysroot]]/lib"
// CHECK-MULTI32-I386: "-L[[sysroot]]/usr/lib"
@@ -89,7 +89,7 @@
// CHECK-MULTI64-X86-64: "-m" "elf_x86_64"
// CHECK-MULTI64-X86-64: "crti.o"
"[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]{{/|\\\\}}crtbegin.o"
// CHECK-MULTI64-X86-64: "-L[[gcc_install]]"
-// CHECK-MULTI64-X86-64:
"-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib/../lib64"
+// CHECK-MULTI64-X86-64:
"-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib/../lib"
// CHECK-MULTI64-X86-64:
"-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib"
// CHECK-MULTI64-X86-64: "-L[[sysroot]]/lib"
// CHECK-MULTI64-X86-64: "-L[[sysroot]]/usr/lib"
Modified: cfe/trunk/test/Driver/linux-ld.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/linux-ld.c?rev=193528&r1=193527&r2=193528&view=diff
==============================================================================
--- cfe/trunk/test/Driver/linux-ld.c (original)
+++ cfe/trunk/test/Driver/linux-ld.c Mon Oct 28 13:52:30 2013
@@ -86,10 +86,10 @@
// CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
// CHECK-32-TO-32:
"{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
-// CHECK-32-TO-32:
"-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
-// CHECK-32-TO-32:
"-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
-// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
-// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
+// CHECK-32-TO-32:
"-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib"
+// CHECK-32-TO-32:
"-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib"
+// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib"
+// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib"
// CHECK-32-TO-32:
"-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
// CHECK-32-TO-32:
"-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
// CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
@@ -119,10 +119,10 @@
// CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
// CHECK-64-TO-64:
"{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
-// CHECK-64-TO-64:
"-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
-// CHECK-64-TO-64:
"-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
-// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
-// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
+// CHECK-64-TO-64:
"-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib"
+// CHECK-64-TO-64:
"-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib"
+// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib"
+// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib"
// CHECK-64-TO-64:
"-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
// CHECK-64-TO-64:
"-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
// CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
@@ -245,6 +245,42 @@
// CHECK-UBUNTU-12-04-ARM-HF:
"{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
// CHECK-UBUNTU-12-04-ARM-HF:
"{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crtn.o"
//
+// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+// RUN: --target=arm-linux-gnueabihf \
+// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
+// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}"
"--sysroot=[[SYSROOT:[^"]+]]"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker"
"/lib/ld-linux-armhf.so.3"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crt1.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crti.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM-HF:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/crtn.o"
+//
+// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+// RUN: --target=arm-linux-gnueabi \
+// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
+// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
+// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}"
"--sysroot=[[SYSROOT:[^"]+]]"
+// CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib/crt1.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib/crti.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtbegin.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtend.o"
+// CHECK-X86-64-UBUNTU-13-10-ARM:
"{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib/crtn.o"
+//
// Check fedora 18 on arm.
// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
// RUN: --target=armv7-unknown-linux-gnueabihf \
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits