diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp index 8366fc9ce4d..1b4eda2dc96 100644 --- a/src/plugins/projectexplorer/abi.cpp +++ b/src/plugins/projectexplorer/abi.cpp @@ -466,13 +466,16 @@ bool Abi::isCompatibleWith(const Abi &other) const && (osFlavor() == other.osFlavor() || other.osFlavor() == Abi::UnknownFlavor) && (binaryFormat() == other.binaryFormat() || other.binaryFormat() == Abi::UnknownFormat) && ((wordWidth() == other.wordWidth() && wordWidth() != 0) || other.wordWidth() == 0); - // *-linux-generic-* is compatible with *-linux-*: - if (!isCompat && architecture() == other.architecture() - && os() == other.os() - && osFlavor() == GenericLinuxFlavor - && other.os() == LinuxOS - && binaryFormat() == other.binaryFormat() - && wordWidth() == other.wordWidth()) + // *-linux-generic-* is compatible with *-linux-* (both ways): This is for the benefit of + // people building Qt themselves using e.g. a meego toolchain. + // + // We leave it to the specific targets to catch filter out the tool chains that do not + // work for them. + if (!isCompat && (architecture() == other.architecture() || other.architecture() == Abi::UnknownArchitecture) + && (os() == other.os() == LinuxOS) + && (osFlavor() == GenericLinuxFlavor || other.osFlavor() == GenericLinuxFlavor) + && (binaryFormat() == other.binaryFormat() || other.binaryFormat() == Abi::UnknownFormat) + && ((wordWidth() == other.wordWidth() && wordWidth() != 0) || other.wordWidth() == 0)) isCompat = true; return isCompat; }