Abi: Only have one "generic" flavor

Replace GenericLinuxFlavor, GenericUnixFlavor, GenericDarwinFlavor,
GenericQnxFlavor and GenericBareMetalFlavor with GenericFlavor. They
can all be distinguished from each other by the OS property, so having
separate enum values for all of them is not necessary.

Remove a unit test that made sure that each flavor (with exceptions)
is only listed for one OS, which no longer is the case now.

Change-Id: I88dad5d37eaa4c288568e40b95337a39b78a8352
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2018-06-14 16:13:46 +02:00
parent 4ceed778f8
commit 23e27ead9e
6 changed files with 49 additions and 102 deletions

View File

@@ -85,7 +85,7 @@ QList<Abi> IosQtVersion::detectQtAbis() const
for (int i = 0; i < abis.count(); ++i) { for (int i = 0; i < abis.count(); ++i) {
abis[i] = Abi(abis.at(i).architecture(), abis[i] = Abi(abis.at(i).architecture(),
abis.at(i).os(), abis.at(i).os(),
Abi::GenericDarwinFlavor, Abi::GenericFlavor,
abis.at(i).binaryFormat(), abis.at(i).binaryFormat(),
abis.at(i).wordWidth()); abis.at(i).wordWidth());
} }

View File

@@ -109,17 +109,17 @@ static quint32 getBEUint16(const QByteArray &ba, int pos)
static Abi macAbiForCpu(quint32 type) { static Abi macAbiForCpu(quint32 type) {
switch (type) { switch (type) {
case 7: // CPU_TYPE_X86, CPU_TYPE_I386 case 7: // CPU_TYPE_X86, CPU_TYPE_I386
return Abi(Abi::X86Architecture, Abi::DarwinOS, Abi::GenericDarwinFlavor, Abi::MachOFormat, 32); return Abi(Abi::X86Architecture, Abi::DarwinOS, Abi::GenericFlavor, Abi::MachOFormat, 32);
case 0x01000000 + 7: // CPU_TYPE_X86_64 case 0x01000000 + 7: // CPU_TYPE_X86_64
return Abi(Abi::X86Architecture, Abi::DarwinOS, Abi::GenericDarwinFlavor, Abi::MachOFormat, 64); return Abi(Abi::X86Architecture, Abi::DarwinOS, Abi::GenericFlavor, Abi::MachOFormat, 64);
case 18: // CPU_TYPE_POWERPC case 18: // CPU_TYPE_POWERPC
return Abi(Abi::PowerPCArchitecture, Abi::DarwinOS, Abi::GenericDarwinFlavor, Abi::MachOFormat, 32); return Abi(Abi::PowerPCArchitecture, Abi::DarwinOS, Abi::GenericFlavor, Abi::MachOFormat, 32);
case 0x01000000 + 18: // CPU_TYPE_POWERPC64 case 0x01000000 + 18: // CPU_TYPE_POWERPC64
return Abi(Abi::PowerPCArchitecture, Abi::DarwinOS, Abi::GenericDarwinFlavor, Abi::MachOFormat, 32); return Abi(Abi::PowerPCArchitecture, Abi::DarwinOS, Abi::GenericFlavor, Abi::MachOFormat, 32);
case 12: // CPU_TYPE_ARM case 12: // CPU_TYPE_ARM
return Abi(Abi::ArmArchitecture, Abi::DarwinOS, Abi::GenericDarwinFlavor, Abi::MachOFormat, 32); return Abi(Abi::ArmArchitecture, Abi::DarwinOS, Abi::GenericFlavor, Abi::MachOFormat, 32);
case 0x01000000 + 12: // CPU_TYPE_ARM64 case 0x01000000 + 12: // CPU_TYPE_ARM64
return Abi(Abi::ArmArchitecture, Abi::DarwinOS, Abi::GenericDarwinFlavor, Abi::MachOFormat, 64); return Abi(Abi::ArmArchitecture, Abi::DarwinOS, Abi::GenericFlavor, Abi::MachOFormat, 64);
default: default:
return Abi(); return Abi();
} }
@@ -223,7 +223,7 @@ static QList<Abi> abiOf(const QByteArray &data)
quint8 osAbi = getUint8(data, 7); quint8 osAbi = getUint8(data, 7);
Abi::OS os = Abi::UnixOS; Abi::OS os = Abi::UnixOS;
Abi::OSFlavor flavor = Abi::GenericUnixFlavor; Abi::OSFlavor flavor = Abi::GenericFlavor;
// http://www.sco.com/developers/gabi/latest/ch4.eheader.html#elfid // http://www.sco.com/developers/gabi/latest/ch4.eheader.html#elfid
switch (osAbi) { switch (osAbi) {
#if defined(Q_OS_NETBSD) #if defined(Q_OS_NETBSD)
@@ -242,7 +242,7 @@ static QList<Abi> abiOf(const QByteArray &data)
case 3: // Linux: case 3: // Linux:
case 97: // ARM, also linux most of the time. case 97: // ARM, also linux most of the time.
os = Abi::LinuxOS; os = Abi::LinuxOS;
flavor = Abi::GenericLinuxFlavor; flavor = Abi::GenericFlavor;
break; break;
case 6: // Solaris: case 6: // Solaris:
os = Abi::UnixOS; os = Abi::UnixOS;
@@ -347,7 +347,7 @@ Abi::Abi(const Architecture &a, const OS &o,
m_osFlavor = UnknownFlavor; m_osFlavor = UnknownFlavor;
break; break;
case LinuxOS: case LinuxOS:
if (m_osFlavor < GenericLinuxFlavor || m_osFlavor > AndroidLinuxFlavor) if (m_osFlavor != GenericFlavor && m_osFlavor != AndroidLinuxFlavor)
m_osFlavor = UnknownFlavor; m_osFlavor = UnknownFlavor;
break; break;
case BsdOS: case BsdOS:
@@ -355,11 +355,11 @@ Abi::Abi(const Architecture &a, const OS &o,
m_osFlavor = UnknownFlavor; m_osFlavor = UnknownFlavor;
break; break;
case DarwinOS: case DarwinOS:
if (m_osFlavor < GenericDarwinFlavor || m_osFlavor > GenericDarwinFlavor) if (m_osFlavor != GenericFlavor)
m_osFlavor = UnknownFlavor; m_osFlavor = UnknownFlavor;
break; break;
case UnixOS: case UnixOS:
if (m_osFlavor < GenericUnixFlavor || m_osFlavor > SolarisUnixFlavor) if (m_osFlavor != GenericFlavor && m_osFlavor != SolarisUnixFlavor)
m_osFlavor = UnknownFlavor; m_osFlavor = UnknownFlavor;
break; break;
case WindowsOS: case WindowsOS:
@@ -371,12 +371,12 @@ Abi::Abi(const Architecture &a, const OS &o,
m_osFlavor = VxWorksFlavor; m_osFlavor = VxWorksFlavor;
break; break;
case QnxOS: case QnxOS:
if (m_osFlavor != GenericQnxFlavor) if (m_osFlavor != GenericFlavor)
m_osFlavor = UnknownFlavor; m_osFlavor = UnknownFlavor;
break; break;
case BareMetalOS: case BareMetalOS:
if (m_osFlavor != GenericBareMetalFlavor) if (m_osFlavor != GenericFlavor)
m_osFlavor = GenericBareMetalFlavor; m_osFlavor = GenericFlavor;
break; break;
} }
} }
@@ -409,7 +409,7 @@ Abi Abi::abiFromTargetTriplet(const QString &triple)
} else if (p == "xtensa") { } else if (p == "xtensa") {
arch = XtensaArchitecture; arch = XtensaArchitecture;
os = BareMetalOS; os = BareMetalOS;
flavor = GenericBareMetalFlavor; flavor = GenericFlavor;
format = ElfFormat; format = ElfFormat;
width = 32; width = 32;
} else if (p.startsWith("arm")) { } else if (p.startsWith("arm")) {
@@ -421,7 +421,7 @@ Abi Abi::abiFromTargetTriplet(const QString &triple)
} else if (p == "avr") { } else if (p == "avr") {
arch = AvrArchitecture; arch = AvrArchitecture;
os = BareMetalOS; os = BareMetalOS;
flavor = GenericBareMetalFlavor; flavor = GenericFlavor;
format = ElfFormat; format = ElfFormat;
width = 16; width = 16;
} else if (p.startsWith("mips")) { } else if (p.startsWith("mips")) {
@@ -439,7 +439,7 @@ Abi Abi::abiFromTargetTriplet(const QString &triple)
} else if (p == "linux" || p == "linux6e") { } else if (p == "linux" || p == "linux6e") {
os = LinuxOS; os = LinuxOS;
if (flavor == UnknownFlavor) if (flavor == UnknownFlavor)
flavor = GenericLinuxFlavor; flavor = GenericFlavor;
format = ElfFormat; format = ElfFormat;
} else if (p == "android") { } else if (p == "android") {
flavor = AndroidLinuxFlavor; flavor = AndroidLinuxFlavor;
@@ -464,7 +464,7 @@ Abi Abi::abiFromTargetTriplet(const QString &triple)
format = PEFormat; format = PEFormat;
} else if (p == "apple") { } else if (p == "apple") {
os = DarwinOS; os = DarwinOS;
flavor = GenericDarwinFlavor; flavor = GenericFlavor;
format = MachOFormat; format = MachOFormat;
} else if (p == "darwin10") { } else if (p == "darwin10") {
width = 64; width = 64;
@@ -480,7 +480,7 @@ Abi Abi::abiFromTargetTriplet(const QString &triple)
format = ElfFormat; format = ElfFormat;
} else if (p.startsWith("qnx")) { } else if (p.startsWith("qnx")) {
os = QnxOS; os = QnxOS;
flavor = GenericQnxFlavor; flavor = GenericFlavor;
format = ElfFormat; format = ElfFormat;
} else { } else {
++unknownCount; ++unknownCount;
@@ -527,7 +527,7 @@ bool Abi::isCompatibleWith(const Abi &other) const
// work for them. // work for them.
if (!isCompat && (architecture() == other.architecture() || other.architecture() == UnknownArchitecture) if (!isCompat && (architecture() == other.architecture() || other.architecture() == UnknownArchitecture)
&& ((os() == other.os()) && (os() == LinuxOS)) && ((os() == other.os()) && (os() == LinuxOS))
&& (osFlavor() == GenericLinuxFlavor || other.osFlavor() == GenericLinuxFlavor) && (osFlavor() == GenericFlavor || other.osFlavor() == GenericFlavor)
&& (binaryFormat() == other.binaryFormat() || other.binaryFormat() == UnknownFormat) && (binaryFormat() == other.binaryFormat() || other.binaryFormat() == UnknownFormat)
&& ((wordWidth() == other.wordWidth() && wordWidth() != 0) || other.wordWidth() == 0)) { && ((wordWidth() == other.wordWidth() && wordWidth() != 0) || other.wordWidth() == 0)) {
isCompat = true; isCompat = true;
@@ -619,11 +619,7 @@ QString Abi::toString(const OS &o)
QString Abi::toString(const OSFlavor &of) QString Abi::toString(const OSFlavor &of)
{ {
switch (of) { switch (of) {
case GenericLinuxFlavor: case GenericFlavor:
case GenericDarwinFlavor:
case GenericUnixFlavor:
case GenericBareMetalFlavor:
case GenericQnxFlavor:
return QLatin1String("generic"); return QLatin1String("generic");
case AndroidLinuxFlavor: case AndroidLinuxFlavor:
return QLatin1String("android"); return QLatin1String("android");
@@ -782,25 +778,7 @@ Abi::OSFlavor Abi::osFlavorFromString(const QStringRef &of, const OS os)
{ {
Abi::OSFlavor result = UnknownFlavor; Abi::OSFlavor result = UnknownFlavor;
if (of == "generic") { if (of == "generic") {
switch (os) { result = GenericFlavor;
case LinuxOS:
result = GenericLinuxFlavor;
break;
case DarwinOS:
result = GenericDarwinFlavor;
break;
case UnixOS:
result = GenericUnixFlavor;
break;
case BareMetalOS:
result = GenericBareMetalFlavor;
break;
case QnxOS:
result = GenericQnxFlavor;
break;
default:
result = UnknownFlavor;
}
} else if (of == "android") { } else if (of == "android") {
result = AndroidLinuxFlavor; result = AndroidLinuxFlavor;
} else if (of == "freebsd") { } else if (of == "freebsd") {
@@ -874,11 +852,11 @@ QList<Abi::OSFlavor> Abi::flavorsForOs(const Abi::OS &o)
case BsdOS: case BsdOS:
return {FreeBsdFlavor, OpenBsdFlavor, NetBsdFlavor, UnknownFlavor}; return {FreeBsdFlavor, OpenBsdFlavor, NetBsdFlavor, UnknownFlavor};
case LinuxOS: case LinuxOS:
return {GenericLinuxFlavor, AndroidLinuxFlavor, UnknownFlavor}; return {GenericFlavor, AndroidLinuxFlavor, UnknownFlavor};
case DarwinOS: case DarwinOS:
return {GenericDarwinFlavor, UnknownFlavor}; return {GenericFlavor, UnknownFlavor};
case UnixOS: case UnixOS:
return {GenericUnixFlavor, SolarisUnixFlavor, UnknownFlavor}; return {GenericFlavor, SolarisUnixFlavor, UnknownFlavor};
case WindowsOS: case WindowsOS:
return {WindowsMsvc2005Flavor, WindowsMsvc2008Flavor, WindowsMsvc2010Flavor, return {WindowsMsvc2005Flavor, WindowsMsvc2008Flavor, WindowsMsvc2010Flavor,
WindowsMsvc2012Flavor, WindowsMsvc2013Flavor, WindowsMsvc2015Flavor, WindowsMsvc2012Flavor, WindowsMsvc2013Flavor, WindowsMsvc2015Flavor,
@@ -886,9 +864,9 @@ QList<Abi::OSFlavor> Abi::flavorsForOs(const Abi::OS &o)
case VxWorks: case VxWorks:
return {VxWorksFlavor, UnknownFlavor}; return {VxWorksFlavor, UnknownFlavor};
case QnxOS: case QnxOS:
return {GenericQnxFlavor, UnknownFlavor}; return {GenericFlavor, UnknownFlavor};
case BareMetalOS: case BareMetalOS:
return {GenericBareMetalFlavor, RtosFlavor, UnknownFlavor}; return {GenericFlavor, RtosFlavor, UnknownFlavor};
case UnknownOS: case UnknownOS:
return {UnknownFlavor}; return {UnknownFlavor};
} }
@@ -934,11 +912,11 @@ Abi Abi::hostAbi()
format = PEFormat; format = PEFormat;
#elif defined (Q_OS_LINUX) #elif defined (Q_OS_LINUX)
os = LinuxOS; os = LinuxOS;
subos = GenericLinuxFlavor; subos = GenericFlavor;
format = ElfFormat; format = ElfFormat;
#elif defined (Q_OS_DARWIN) #elif defined (Q_OS_DARWIN)
os = DarwinOS; os = DarwinOS;
subos = GenericDarwinFlavor; subos = GenericFlavor;
format = MachOFormat; format = MachOFormat;
#elif defined (Q_OS_BSD4) #elif defined (Q_OS_BSD4)
os = BsdOS; os = BsdOS;
@@ -1034,11 +1012,7 @@ QList<Abi> Abi::abisOfBinary(const Utils::FileName &path)
static bool isGenericFlavor(ProjectExplorer::Abi::OSFlavor f) static bool isGenericFlavor(ProjectExplorer::Abi::OSFlavor f)
{ {
return f == ProjectExplorer::Abi::GenericBareMetalFlavor return f == ProjectExplorer::Abi::GenericFlavor;
|| f == ProjectExplorer::Abi::GenericDarwinFlavor
|| f == ProjectExplorer::Abi::GenericLinuxFlavor
|| f == ProjectExplorer::Abi::GenericQnxFlavor
|| f == ProjectExplorer::Abi::GenericUnixFlavor;
} }
void ProjectExplorer::ProjectExplorerPlugin::testAbiRoundTrips() void ProjectExplorer::ProjectExplorerPlugin::testAbiRoundTrips()
@@ -1059,7 +1033,7 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiRoundTrips()
for (int os = 0; os <= Abi::UnknownOS; ++os) { for (int os = 0; os <= Abi::UnknownOS; ++os) {
const Abi::OS osEnum = static_cast<Abi::OS>(os); const Abi::OS osEnum = static_cast<Abi::OS>(os);
const Abi::OSFlavor flavor = Abi::osFlavorFromString(QStringRef(&string), osEnum); const Abi::OSFlavor flavor = Abi::osFlavorFromString(QStringRef(&string), osEnum);
if (isGenericFlavor(flavorEnum) && flavor != Abi::UnknownFlavor) if (flavorEnum == Abi::GenericFlavor && flavor != Abi::UnknownFlavor)
QVERIFY(isGenericFlavor(flavor)); QVERIFY(isGenericFlavor(flavor));
else if (flavor == Abi::UnknownFlavor && i != Abi::UnknownFlavor) else if (flavor == Abi::UnknownFlavor && i != Abi::UnknownFlavor)
QVERIFY(!Abi::flavorsForOs(osEnum).contains(flavorEnum)); QVERIFY(!Abi::flavorsForOs(osEnum).contains(flavorEnum));
@@ -1220,25 +1194,6 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiOfBinary()
QCOMPARE(result.at(i).toString(), abis.at(i)); QCOMPARE(result.at(i).toString(), abis.at(i));
} }
void ProjectExplorer::ProjectExplorerPlugin::testFlavorForOs()
{
QList<QList<Abi::OSFlavor> > flavorLists;
for (int i = 0; i != static_cast<int>(Abi::UnknownOS); ++i)
flavorLists.append(Abi::flavorsForOs(static_cast<Abi::OS>(i)));
int foundCounter = 0;
for (int i = 0; i != Abi::UnknownFlavor; ++i) {
foundCounter = 0;
// make sure i is in exactly on of the flavor lists!
foreach (const QList<Abi::OSFlavor> &l, flavorLists) {
QVERIFY(l.contains(Abi::UnknownFlavor));
if (l.contains(static_cast<Abi::OSFlavor>(i)))
++foundCounter;
}
QCOMPARE(foundCounter, 1);
}
}
void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data() void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
{ {
QTest::addColumn<int>("architecture"); QTest::addColumn<int>("architecture");
@@ -1248,15 +1203,15 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
QTest::addColumn<int>("wordWidth"); QTest::addColumn<int>("wordWidth");
QTest::newRow("x86_64-apple-darwin") << int(Abi::X86Architecture) QTest::newRow("x86_64-apple-darwin") << int(Abi::X86Architecture)
<< int(Abi::DarwinOS) << int(Abi::GenericDarwinFlavor) << int(Abi::DarwinOS) << int(Abi::GenericFlavor)
<< int(Abi::MachOFormat) << 64; << int(Abi::MachOFormat) << 64;
QTest::newRow("x86_64-apple-darwin12.5.0") << int(Abi::X86Architecture) QTest::newRow("x86_64-apple-darwin12.5.0") << int(Abi::X86Architecture)
<< int(Abi::DarwinOS) << int(Abi::GenericDarwinFlavor) << int(Abi::DarwinOS) << int(Abi::GenericFlavor)
<< int(Abi::MachOFormat) << 64; << int(Abi::MachOFormat) << 64;
QTest::newRow("x86_64-linux-gnu") << int(Abi::X86Architecture) QTest::newRow("x86_64-linux-gnu") << int(Abi::X86Architecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 64; << int(Abi::ElfFormat) << 64;
QTest::newRow("x86_64-pc-mingw32msvc") << int(Abi::X86Architecture) QTest::newRow("x86_64-pc-mingw32msvc") << int(Abi::X86Architecture)
@@ -1268,7 +1223,7 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
<< int(Abi::PEFormat) << 32; << int(Abi::PEFormat) << 32;
QTest::newRow("i686-linux-gnu") << int(Abi::X86Architecture) QTest::newRow("i686-linux-gnu") << int(Abi::X86Architecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 32; << int(Abi::ElfFormat) << 32;
QTest::newRow("i686-linux-android") << int(Abi::X86Architecture) QTest::newRow("i686-linux-android") << int(Abi::X86Architecture)
@@ -1312,7 +1267,7 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
<< int(Abi::ElfFormat) << 32; << int(Abi::ElfFormat) << 32;
QTest::newRow("arm-none-linux-gnueabi") << int(Abi::ArmArchitecture) QTest::newRow("arm-none-linux-gnueabi") << int(Abi::ArmArchitecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 32; << int(Abi::ElfFormat) << 32;
QTest::newRow("mipsel-linux-android") << int(Abi::MipsArchitecture) QTest::newRow("mipsel-linux-android") << int(Abi::MipsArchitecture)
@@ -1324,7 +1279,7 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
<< int(Abi::ElfFormat) << 32; << int(Abi::ElfFormat) << 32;
QTest::newRow("mips-linux-gnu") << int(Abi::MipsArchitecture) QTest::newRow("mips-linux-gnu") << int(Abi::MipsArchitecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 32; << int(Abi::ElfFormat) << 32;
QTest::newRow("mips64el-linux-android") << int(Abi::MipsArchitecture) QTest::newRow("mips64el-linux-android") << int(Abi::MipsArchitecture)
@@ -1336,11 +1291,11 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
<< int(Abi::ElfFormat) << 64; << int(Abi::ElfFormat) << 64;
QTest::newRow("mips64-linux-octeon-gnu") << int(Abi::MipsArchitecture) QTest::newRow("mips64-linux-octeon-gnu") << int(Abi::MipsArchitecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 64; << int(Abi::ElfFormat) << 64;
QTest::newRow("mips64el-linux-gnuabi") << int(Abi::MipsArchitecture) QTest::newRow("mips64el-linux-gnuabi") << int(Abi::MipsArchitecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 64; << int(Abi::ElfFormat) << 64;
QTest::newRow("arm-wrs-vxworks") << int(Abi::ArmArchitecture) QTest::newRow("arm-wrs-vxworks") << int(Abi::ArmArchitecture)
@@ -1352,15 +1307,15 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiFromTargetTriplet_data()
<< int(Abi::ElfFormat) << 64; << int(Abi::ElfFormat) << 64;
QTest::newRow("aarch64-unknown-linux-gnu") << int(Abi::ArmArchitecture) QTest::newRow("aarch64-unknown-linux-gnu") << int(Abi::ArmArchitecture)
<< int(Abi::LinuxOS) << int(Abi::GenericLinuxFlavor) << int(Abi::LinuxOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 64; << int(Abi::ElfFormat) << 64;
QTest::newRow("xtensa-lx106-elf") << int(Abi::XtensaArchitecture) QTest::newRow("xtensa-lx106-elf") << int(Abi::XtensaArchitecture)
<< int(Abi::BareMetalOS) << int(Abi::GenericBareMetalFlavor) << int(Abi::BareMetalOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 32; << int(Abi::ElfFormat) << 32;
// Yes, that's the entire triplet // Yes, that's the entire triplet
QTest::newRow("avr") << int(Abi::AvrArchitecture) QTest::newRow("avr") << int(Abi::AvrArchitecture)
<< int(Abi::BareMetalOS) << int(Abi::GenericBareMetalFlavor) << int(Abi::BareMetalOS) << int(Abi::GenericFlavor)
<< int(Abi::ElfFormat) << 16; << int(Abi::ElfFormat) << 16;
} }

View File

@@ -72,14 +72,9 @@ public:
OpenBsdFlavor, OpenBsdFlavor,
// Linux // Linux
GenericLinuxFlavor,
AndroidLinuxFlavor, AndroidLinuxFlavor,
// Darwin
GenericDarwinFlavor,
// Unix // Unix
GenericUnixFlavor,
SolarisUnixFlavor, SolarisUnixFlavor,
// Windows // Windows
@@ -95,13 +90,12 @@ public:
// Embedded // Embedded
VxWorksFlavor, VxWorksFlavor,
GenericQnxFlavor,
GenericBareMetalFlavor,
// Generic: // Generic:
RtosFlavor, RtosFlavor,
GenericFlavor,
UnknownFlavor UnknownFlavor // keep last in this enum!
}; };
enum BinaryFormat { enum BinaryFormat {

View File

@@ -707,7 +707,7 @@ FileNameList GccToolChain::suggestedMkspecList() const
} }
if (abi.os() == Abi::LinuxOS) { if (abi.os() == Abi::LinuxOS) {
if (abi.osFlavor() != Abi::GenericLinuxFlavor) if (abi.osFlavor() != Abi::GenericFlavor)
return FileNameList(); // most likely not a desktop, so leave the mkspec alone. return FileNameList(); // most likely not a desktop, so leave the mkspec alone.
if (abi.wordWidth() == host.wordWidth()) { if (abi.wordWidth() == host.wordWidth()) {
// no need to explicitly set the word width, but provide that mkspec anyway to make sure // no need to explicitly set the word width, but provide that mkspec anyway to make sure

View File

@@ -225,7 +225,6 @@ private slots:
void testAbiRoundTrips(); void testAbiRoundTrips();
void testAbiOfBinary_data(); void testAbiOfBinary_data();
void testAbiOfBinary(); void testAbiOfBinary();
void testFlavorForOs();
void testAbiFromTargetTriplet_data(); void testAbiFromTargetTriplet_data();
void testAbiFromTargetTriplet(); void testAbiFromTargetTriplet();

View File

@@ -241,15 +241,14 @@ QList<QnxTarget> QnxUtils::findTargets(const Utils::FileName &basePath)
Abi QnxUtils::convertAbi(const Abi &abi) Abi QnxUtils::convertAbi(const Abi &abi)
{ {
if (abi.os() == Abi::LinuxOS && abi.osFlavor() == Abi::GenericLinuxFlavor) { if (abi.os() == Abi::LinuxOS && abi.osFlavor() == Abi::GenericFlavor) {
return Abi(abi.architecture(), return Abi(abi.architecture(),
Abi::QnxOS, Abi::QnxOS,
Abi::GenericQnxFlavor, Abi::GenericFlavor,
abi.binaryFormat(), abi.binaryFormat(),
abi.wordWidth()); abi.wordWidth());
} else {
return abi;
} }
return abi;
} }
QList<Abi> QnxUtils::convertAbis(const QList<Abi> &abis) QList<Abi> QnxUtils::convertAbis(const QList<Abi> &abis)