121 lines
6.0 KiB
Diff
121 lines
6.0 KiB
Diff
From d84a971ba917569829b51fff6057e5fd0d85e402 Mon Sep 17 00:00:00 2001
|
|
From: Tom Stellard <tstellar@redhat.com>
|
|
Date: Thu, 18 Jan 2018 02:57:51 +0000
|
|
Subject: [PATCH] Driver: Prefer vendor supplied gcc toolchain
|
|
|
|
Summary:
|
|
This patch fixes an issue on Fedora where if you had the x86_64 cross
|
|
compiler installed on your x86_64 system, then clang would use that compiler
|
|
as the default toolchain. This was happening because the cross compiler
|
|
is installed to /usr/lib/gcc/x86_64-linux-gnu/ and this directory comes before
|
|
the default compiler directory (/usr/lib/gcc/x86_64-redhat-linux/) in the search
|
|
list.
|
|
|
|
This patch re-orders the search list so that vendor supplied gcc toolchains
|
|
are selected before toolchains with a generic target, which should prevent
|
|
these kind of issues on other OSes too.
|
|
|
|
Subscribers: srhines, cfe-commits
|
|
|
|
Differential Revision: https://reviews.llvm.org/D42608
|
|
---
|
|
lib/Driver/ToolChains/Gnu.cpp | 47 ++++++++++++++++++++++---------------------
|
|
1 file changed, 24 insertions(+), 23 deletions(-)
|
|
|
|
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
|
|
--- a/lib/Driver/ToolChains/Gnu.cpp
|
|
+++ b/lib/Driver/ToolChains/Gnu.cpp
|
|
@@ -1870,8 +1870,8 @@
|
|
// lifetime or initialization issues.
|
|
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
|
|
static const char *const AArch64Triples[] = {
|
|
- "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux",
|
|
- "aarch64-suse-linux", "aarch64-linux-android"};
|
|
+ "aarch64-redhat-linux", "aarch64-suse-linux", "aarch64-linux-android",
|
|
+ "aarch64-none-linux-gnu", "aarch64-linux-gnu"};
|
|
static const char *const AArch64beLibDirs[] = {"/lib"};
|
|
static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
|
|
"aarch64_be-linux-gnu"};
|
|
@@ -1879,31 +1879,34 @@
|
|
static const char *const ARMLibDirs[] = {"/lib"};
|
|
static const char *const ARMTriples[] = {"arm-linux-gnueabi",
|
|
"arm-linux-androideabi"};
|
|
- static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
|
|
- "armv7hl-redhat-linux-gnueabi",
|
|
+ static const char *const ARMHFTriples[] = {"armv7hl-redhat-linux-gnueabi",
|
|
"armv6hl-suse-linux-gnueabi",
|
|
- "armv7hl-suse-linux-gnueabi"};
|
|
+ "armv7hl-suse-linux-gnueabi",
|
|
+ "arm-linux-gnueabihf"};
|
|
static const char *const ARMebLibDirs[] = {"/lib"};
|
|
static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
|
|
"armeb-linux-androideabi"};
|
|
static const char *const ARMebHFTriples[] = {
|
|
- "armeb-linux-gnueabihf", "armebv7hl-redhat-linux-gnueabi"};
|
|
+ "armebv7hl-redhat-linux-gnueabi", "armeb-linux-gnueabihf"};
|
|
|
|
static const char *const X86_64LibDirs[] = {"/lib64", "/lib"};
|
|
static const char *const X86_64Triples[] = {
|
|
- "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
|
|
- "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E",
|
|
+ "x86_64-redhat-linux6E",
|
|
"x86_64-redhat-linux", "x86_64-suse-linux",
|
|
"x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
|
|
"x86_64-slackware-linux", "x86_64-unknown-linux",
|
|
- "x86_64-amazon-linux", "x86_64-linux-android"};
|
|
+ "x86_64-amazon-linux", "x86_64-linux-android",
|
|
+ "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
|
|
+ "x86_64-pc-linux-gnu"
|
|
+ };
|
|
static const char *const X32LibDirs[] = {"/libx32"};
|
|
static const char *const X86LibDirs[] = {"/lib32", "/lib"};
|
|
static const char *const X86Triples[] = {
|
|
- "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu",
|
|
- "i386-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux",
|
|
+ "i386-redhat-linux6E", "i686-redhat-linux",
|
|
"i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux",
|
|
- "i486-slackware-linux", "i686-montavista-linux", "i586-linux-gnu",
|
|
+ "i486-slackware-linux", "i686-montavista-linux",
|
|
+ "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu",
|
|
+ "i386-linux-gnu", "i586-linux-gnu",
|
|
"i686-linux-android", "i386-gnu", "i486-gnu",
|
|
"i586-gnu", "i686-gnu"};
|
|
|
|
@@ -1940,16 +1943,16 @@
|
|
|
|
static const char *const PPCLibDirs[] = {"/lib32", "/lib"};
|
|
static const char *const PPCTriples[] = {
|
|
- "powerpc-linux-gnu", "powerpc-unknown-linux-gnu", "powerpc-linux-gnuspe",
|
|
- "powerpc-suse-linux", "powerpc-montavista-linuxspe"};
|
|
+ "powerpc-suse-linux", "powerpc-montavista-linuxspe",
|
|
+ "powerpc-linux-gnu", "powerpc-unknown-linux-gnu", "powerpc-linux-gnuspe"};
|
|
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"};
|
|
+ "powerpc64-suse-linux", "ppc64-redhat-linux",
|
|
+ "powerpc64-linux-gnu", "powerpc64-unknown-linux-gnu"};
|
|
static const char *const PPC64LELibDirs[] = {"/lib64", "/lib"};
|
|
static const char *const PPC64LETriples[] = {
|
|
- "powerpc64le-linux-gnu", "powerpc64le-unknown-linux-gnu",
|
|
- "powerpc64le-suse-linux", "ppc64le-redhat-linux"};
|
|
+ "powerpc64le-suse-linux", "ppc64le-redhat-linux",
|
|
+ "powerpc64le-linux-gnu", "powerpc64le-unknown-linux-gnu"};
|
|
|
|
static const char *const RISCV32LibDirs[] = {"/lib", "/lib32"};
|
|
static const char *const RISCVTriples[] = {"riscv32-unknown-linux-gnu",
|
|
@@ -1965,8 +1968,8 @@
|
|
|
|
static const char *const SystemZLibDirs[] = {"/lib64", "/lib"};
|
|
static const char *const SystemZTriples[] = {
|
|
- "s390x-linux-gnu", "s390x-unknown-linux-gnu", "s390x-ibm-linux-gnu",
|
|
- "s390x-suse-linux", "s390x-redhat-linux"};
|
|
+ "s390x-ibm-linux-gnu", "s390x-suse-linux", "s390x-redhat-linux",
|
|
+ "s390x-linux-gnu", "s390x-unknown-linux-gnu"};
|
|
|
|
|
|
using std::begin;
|
|
--
|
|
1.8.3.1
|
|
|