From 61a5551f882e6f373b91e5ebdf0b63ef28d90d24 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sat, 3 Jun 2017 22:31:06 +0000 Subject: [PATCH] ADT: handle special case of ARM environment for SUSE SUSE treats "gnueabi" as "gnueabihf" so make sure that we normalise the environment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304670 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/Triple.cpp | 4 ++++ unittests/ADT/TripleTest.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp index f7b7ad89e95..dc059f86241 100644 --- a/lib/Support/Triple.cpp +++ b/lib/Support/Triple.cpp @@ -877,6 +877,10 @@ std::string Triple::normalize(StringRef Str) { } } + // SUSE uses "gnueabi" to mean "gnueabihf" + if (Vendor == Triple::SUSE && Environment == llvm::Triple::GNUEABI) + Components[3] = "gnueabihf"; + if (OS == Triple::Win32) { Components.resize(4); Components[2] = "windows"; diff --git a/unittests/ADT/TripleTest.cpp b/unittests/ADT/TripleTest.cpp index 6d25526e5ad..a67d5951350 100644 --- a/unittests/ADT/TripleTest.cpp +++ b/unittests/ADT/TripleTest.cpp @@ -1090,11 +1090,16 @@ TEST(TripleTest, NormalizeARM) { EXPECT_EQ("armv6eb--netbsd-eabihf", Triple::normalize("armv6eb-netbsd-eabihf")); EXPECT_EQ("armv7eb--netbsd-eabihf", Triple::normalize("armv7eb-netbsd-eabihf")); + EXPECT_EQ("armv7-suse-linux-gnueabihf", + Triple::normalize("armv7-suse-linux-gnueabi")); + Triple T; T = Triple("armv6--netbsd-eabi"); EXPECT_EQ(Triple::arm, T.getArch()); T = Triple("armv6eb--netbsd-eabi"); EXPECT_EQ(Triple::armeb, T.getArch()); + T = Triple("armv7-suse-linux-gnueabihf"); + EXPECT_EQ(Triple::GNUEABIHF, T.getEnvironment()); } TEST(TripleTest, ParseARMArch) { -- 2.50.1