Search
SailfishOS Open Build Service
>
Projects
>
home:piggz
>
llvm
> _service:tar_git:0001-LLVM-Add-MeeGo-vendor-type.patch
Log In
Username
Password
Cancel
Repository 'sailfish_latest_armv7hl' is invalid.
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File _service:tar_git:0001-LLVM-Add-MeeGo-vendor-type.patch of Package llvm
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ruben De Smet <ruben.de.smet@rubdos.be> Date: Sun, 26 Jun 2022 10:48:13 +0200 Subject: [PATCH] LLVM: Add MeeGo vendor type --- llvm/include/llvm/ADT/Triple.h | 3 ++- llvm/lib/Support/Triple.cpp | 12 ++++++++++++ llvm/unittests/ADT/TripleTest.cpp | 6 ++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h index 42277c013035..9e36dfd4d2d5 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -165,7 +165,8 @@ public: Mesa, SUSE, OpenEmbedded, - LastVendorType = OpenEmbedded + MeeGo, + LastVendorType = MeeGo }; enum OSType { UnknownOS, diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp index a9afcc9db96a..c4307bf457c7 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -177,6 +177,7 @@ StringRef Triple::getVendorTypeName(VendorType Kind) { case Freescale: return "fsl"; case IBM: return "ibm"; case ImaginationTechnologies: return "img"; + case MeeGo: return "meego"; case Mesa: return "mesa"; case MipsTechnologies: return "mti"; case Myriad: return "myriad"; @@ -507,6 +508,7 @@ static Triple::VendorType parseVendor(StringRef VendorName) { .Case("mesa", Triple::Mesa) .Case("suse", Triple::SUSE) .Case("oe", Triple::OpenEmbedded) + .Case("meego", Triple::MeeGo) .Default(Triple::UnknownVendor); } @@ -802,6 +804,9 @@ Triple::Triple(const Twine &Str) OS = parseOS(Components[2]); if (Components.size() > 3) { Environment = parseEnvironment(Components[3]); + // MeeGo uses "gnueabi" to mean "gnueabihf" + if (Vendor == Triple::MeeGo && Environment == Triple::GNUEABI) + Environment = Triple::GNUEABIHF; ObjectFormat = parseFormat(Components[3]); } } @@ -853,6 +858,10 @@ Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr, ObjectFormat(parseFormat(EnvironmentStr.str())) { if (ObjectFormat == Triple::UnknownObjectFormat) ObjectFormat = getDefaultFormat(*this); + + // MeeGo uses "gnueabi" to mean "gnueabihf" + if (Vendor == Triple::MeeGo && Environment == Triple::GNUEABI) + Environment = Triple::GNUEABIHF; } std::string Triple::normalize(StringRef Str) { @@ -1103,6 +1112,9 @@ static VersionTuple parseVersionFromName(StringRef Name) { VersionTuple Triple::getEnvironmentVersion() const { StringRef EnvironmentName = getEnvironmentName(); StringRef EnvironmentTypeName = getEnvironmentTypeName(getEnvironment()); + // MeeGo uses "gnueabi" to mean "gnueabihf" + if (Vendor == Triple::MeeGo && getEnvironment() == Triple::GNUEABIHF) + EnvironmentTypeName = "gnueabi"; if (EnvironmentName.startswith(EnvironmentTypeName)) EnvironmentName = EnvironmentName.substr(EnvironmentTypeName.size()); diff --git a/llvm/unittests/ADT/TripleTest.cpp b/llvm/unittests/ADT/TripleTest.cpp index 3006ab6d40e8..7a28ed624232 100644 --- a/llvm/unittests/ADT/TripleTest.cpp +++ b/llvm/unittests/ADT/TripleTest.cpp @@ -384,6 +384,12 @@ TEST(TripleTest, ParsedIDs) { EXPECT_EQ(Triple::Linux, T.getOS()); EXPECT_EQ(Triple::GNUEABI, T.getEnvironment()); + T = Triple("armv7hl-meego-linux-gnueabi"); + EXPECT_EQ(Triple::arm, T.getArch()); + EXPECT_EQ(Triple::MeeGo, T.getVendor()); + EXPECT_EQ(Triple::Linux, T.getOS()); + EXPECT_EQ(Triple::GNUEABIHF, T.getEnvironment()); + T = Triple("i586-pc-haiku"); EXPECT_EQ(Triple::x86, T.getArch()); EXPECT_EQ(Triple::PC, T.getVendor());