Po Lu wrote:
John Ericson <l...@johnericson.me> writes:

Thanks Jacob,

That's absolutely right that Win NT supports multiple personalities
and so all sorts of things are possible. (Indeed that is how WSL1
worked.)

MinGW stands for "Minimalist GNU for Windows" [1], and I suspect that
is why Saleem choose windows-gnu in that commit almost a decade ago. I
supposed we could say that "minimalist GNU" is not "GNU", and do
windows-mingnu or something, and then I could submit an LLVM patch to
try to support that. But I suppose I lean towards support configs that
at least one of GCC or Clang supports already, rather than making up
completely new stuff.

GNU config is part of the GNU project, developing the GNU operating
system, which opted for ``mingw'' many, many moons ago.  We are under no
obligation to adhere to LLVM standards, especially when they require us
to misrepresent the nature of a specific system configuration.

This is also correct: `windows-gnu' does not currently exist and its use to describe MinGW in LLVM is /wrong/. The GNU system implements/extends POSIX and MinGW attempts to port GNU utilities to run under native Windows, which does *not* implement POSIX, therefore MinGW is *not* `windows-gnu'.

Also, I would like to point out that the "scales to more variations"
argument is not at all hypothetical. If one looks at [2] one will see
that MSYS is a variation of Cygwin, and a mingw-style environments can
be made from the newer ucrt or older msvcrt. Today there are just too
many subtle variations to capture them all with sensible. It looks
like MSYS [3] reuses a triple for multiple configurations, and just
relies on users getting the PATH right, but that clearly isn't
ideal. Creating windows-* variants to handle them all in a consistent
and predictable manner is much better.

We can create new triplets for new environments once they do come into
existence.  But they should not duplicate existing ones, and they must
conform to the existing naming convention for configuration triplets.

This is why I am arguing that we should acknowledge that the naming conventions have, in practice, already changed to CPU-VENDOR-KERNEL-OS-LIBCABI, with only 3-or-4-of-5 elements present at the moment.


-- Jacob

Reply via email to