Index: lib/Support/Triple.cpp =================================================================== --- lib/Support/Triple.cpp +++ lib/Support/Triple.cpp @@ -871,6 +871,10 @@ } } + // 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"; Index: unittests/ADT/TripleTest.cpp =================================================================== --- unittests/ADT/TripleTest.cpp +++ unittests/ADT/TripleTest.cpp @@ -1090,11 +1090,16 @@ 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) {