Stephen Kelly wrote: > Stephen Kelly <steveire@...> writes: > >> >> Stephen Kelly wrote: >> >> > Updated patch attached. >> > >> >> I'm not certain this should be applied. > > I now think it should be applied.
Rebased patch attached. Please apply. Thanks, Steve.
>From 48931453596a6887b90f9c98cfc548f5c1e5c682 Mon Sep 17 00:00:00 2001 From: Stephen Kelly <[email protected]> Date: Sun, 19 May 2013 21:09:16 +0200 Subject: [PATCH] Search for gcc in the gcc-cross directory. Debian stores cross-compiling relevant files there now, to keep native and cross C runtime files separate. http://thread.gmane.org/gmane.linux.debian.ports.arm/12742/focus=12787 --- lib/Driver/ToolChains.cpp | 11 +++++++++-- .../usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/crtbegin.o | 1 + test/Driver/linux-header-search.cpp | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/crtbegin.o diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 47a5f33..d93c244 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1350,6 +1350,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( // up to the lib directory. const std::string LibSuffixes[] = { "/gcc/" + CandidateTriple.str(), + // Debian puts cross-compilers in gcc-cross + "/gcc-cross/" + CandidateTriple.str(), "/" + CandidateTriple.str() + "/gcc/" + CandidateTriple.str(), // The Freescale PPC SDK has the gcc libraries in @@ -1362,8 +1364,13 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( // triple. "/i386-linux-gnu/gcc/" + CandidateTriple.str() }; - const std::string InstallSuffixes[] = { "/../../..", "/../../../..", "/../..", - "/../../../.." }; + const std::string InstallSuffixes[] = { + "/../../..", // gcc/ + "/../../..", // gcc-cross/ + "/../../../..", // <triple>/gcc/ + "/../..", // <triple>/ + "/../../../.." // i386-linux-gnu/gcc/<triple>/ + }; // Only look at the final, weird Ubuntu suffix for i386-linux-gnu. const unsigned NumLibSuffixes = (llvm::array_lengthof(LibSuffixes) - (TargetArch != llvm::Triple::x86)); diff --git a/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/crtbegin.o b/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/crtbegin.o new file mode 100644 index 0000000..c6cac69 --- /dev/null +++ b/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/crtbegin.o @@ -0,0 +1 @@ +empty diff --git a/test/Driver/linux-header-search.cpp b/test/Driver/linux-header-search.cpp index 1a85f9a..e9ccf62 100644 --- a/test/Driver/linux-header-search.cpp +++ b/test/Driver/linux-header-search.cpp @@ -31,6 +31,20 @@ // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/include" // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" // +// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ +// RUN: -target arm-linux-gnueabihf \ +// RUN: --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \ +// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-13-04-CROSS %s +// CHECK-UBUNTU-13-04-CROSS: "{{[^"]*}}clang{{[^"]*}}" "-cc1" +// CHECK-UBUNTU-13-04-CROSS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/c++/4.7" +// CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/c++/4.7/backward" +// CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/arm-linux-gnueabihf/c++/4.7" +// CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/local/include" +// CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "{{.*}}/lib{{(64|32)?}}/clang/{{[0-9]\.[0-9]}}/include" +// CHECK-UBUNTU-13-04-CROSS: "-internal-externc-isystem" "[[SYSROOT]]/include" +// CHECK-UBUNTU-13-04-CROSS: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" +// // Test Ubuntu/Debian's new version of multiarch, with -m32. // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ // RUN: -target x86_64-unknown-linux-gnu -m32 \ -- 1.8.1.2
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
