From 90b6ea19de89b30f592d6d8dfbfd616686627681 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 11 Oct 2023 08:14:31 +0200 Subject: Canonicalize Clang's *-w64-windows-gnu to *-w64-mingw32 (GH issue #288) Note that config.guess doesn't recognize *-w64-windows-gnu as a valid target triplet: Invalid configuration 'x86_64-w64-windows-gnu': Kernel 'windows' not known to work with OS 'gnu'. --- libbutl/target-triplet.cxx | 2 ++ libbutl/target-triplet.hxx | 1 + tests/target-triplet/driver.cxx | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/libbutl/target-triplet.cxx b/libbutl/target-triplet.cxx index 4c02efc..e28f119 100644 --- a/libbutl/target-triplet.cxx +++ b/libbutl/target-triplet.cxx @@ -92,6 +92,8 @@ namespace butl // if (system == "linux") system = "linux-gnu"; // Per config.sub. + else if (system == "windows-gnu" && vendor == "w64") // Clang's innovation. + system = "mingw32"; // Extract VERSION for some recognized systems. // diff --git a/libbutl/target-triplet.hxx b/libbutl/target-triplet.hxx index e03bdaf..bfb2c00 100644 --- a/libbutl/target-triplet.hxx +++ b/libbutl/target-triplet.hxx @@ -75,6 +75,7 @@ namespace butl // arm-softfloat-linux-gnu arm softfloat linux-gnu // i686-pc-mingw32 i686 mingw32 // i686-w64-mingw32 i686 w64 mingw32 + // i686-w64-windows-gnu i686 w64 mingw32 // i686-lfs-linux-gnu i686 lfs linux-gnu // x86_64-unknown-linux-gnu x86_64 linux-gnu // x86_64-redhat-linux x86_64 redhat linux-gnu diff --git a/tests/target-triplet/driver.cxx b/tests/target-triplet/driver.cxx index 30153a1..8c08a90 100644 --- a/tests/target-triplet/driver.cxx +++ b/tests/target-triplet/driver.cxx @@ -74,6 +74,10 @@ main () "i686-w64-mingw32", "i686", "w64", "mingw32", "", "windows")); + assert (test ("x86_64-w64-windows-gnu", + "x86_64-w64-mingw32", + "x86_64", "w64", "mingw32", "", "windows")); + assert (test ("i686-lfs-linux-gnu", "i686-lfs-linux-gnu", "i686", "lfs", "linux-gnu", "", "linux")); -- cgit v1.1