From 104050795090eab74c1f96fcf0be0e2a98056b73 Mon Sep 17 00:00:00 2001 From: hpoussin <32227662+hpoussin@users.noreply.github.com> Date: Tue, 15 Oct 2024 04:49:17 +0200 Subject: [PATCH] [Triple] Make mipsel-*-windows-* use COFF files by default (#107809) Windows NT/MIPS and Windows CE/MIPS always used COFF format. This is an extract of PR #107744. --- llvm/lib/TargetParser/Triple.cpp | 6 +++++- llvm/unittests/TargetParser/TripleTest.cpp | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index f07eb8fafc73737..b271f29d265cfe0 100644 --- a/llvm/lib/TargetParser/Triple.cpp +++ b/llvm/lib/TargetParser/Triple.cpp @@ -925,7 +925,6 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { case Triple::mips64: case Triple::mips64el: case Triple::mips: - case Triple::mipsel: case Triple::msp430: case Triple::nvptx64: case Triple::nvptx: @@ -950,6 +949,11 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { case Triple::xtensa: return Triple::ELF; + case Triple::mipsel: + if (T.isOSWindows()) + return Triple::COFF; + return Triple::ELF; + case Triple::ppc64: case Triple::ppc: if (T.isOSAIX()) diff --git a/llvm/unittests/TargetParser/TripleTest.cpp b/llvm/unittests/TargetParser/TripleTest.cpp index df40bb2292cc9e5..cb2fa95d431c66f 100644 --- a/llvm/unittests/TargetParser/TripleTest.cpp +++ b/llvm/unittests/TargetParser/TripleTest.cpp @@ -2468,6 +2468,10 @@ TEST(TripleTest, NormalizeWindows) { Triple::normalize("i686-pc-windows-elf-elf")); EXPECT_TRUE(Triple("x86_64-pc-win32").isWindowsMSVCEnvironment()); + + EXPECT_TRUE(Triple(Triple::normalize("mipsel-windows-msvccoff")).isOSBinFormatCOFF()); + EXPECT_TRUE(Triple(Triple::normalize("mipsel-windows-msvc")).isOSBinFormatCOFF()); + EXPECT_TRUE(Triple(Triple::normalize("mipsel-windows-gnu")).isOSBinFormatCOFF()); } TEST(TripleTest, NormalizeAndroid) {