e848126
I guess it is because you need a longer sysname, but it breaks the ABI compatibility. Though the dll we link could distinguish the binary for cygwin of msys2, the difference makes it hard to create bindings for other languages. For example, a recent PR in Rust libc complains about that.
I am the maintainer of the cygwin target of Rust, and I would like to provide more information. At the very beginning, I decided to distinguish cygwin and msys2 into 2 separate target. But after the discussions with the Rust maintainers, we thought that the difference of the two runtime was only the linked dll (and some runtime behaviors). Therefore we made them as one. After some time, the MSYS2 devel package also provide libcygwin.a to link with msys-2.0.dll, making the runtime difference opaque to the compiler and the linker. The cygwin target of rustc links to libcygwin.a, and it's the linker (gcc) to determine which runtime it is.
e848126
I guess it is because you need a longer sysname, but it breaks the ABI compatibility. Though the dll we link could distinguish the binary for cygwin of msys2, the difference makes it hard to create bindings for other languages. For example, a recent PR in Rust
libccomplains about that.I am the maintainer of the cygwin target of Rust, and I would like to provide more information. At the very beginning, I decided to distinguish cygwin and msys2 into 2 separate target. But after the discussions with the Rust maintainers, we thought that the difference of the two runtime was only the linked dll (and some runtime behaviors). Therefore we made them as one. After some time, the MSYS2 devel package also provide
libcygwin.ato link withmsys-2.0.dll, making the runtime difference opaque to the compiler and the linker. The cygwin target of rustc links tolibcygwin.a, and it's the linker (gcc) to determine which runtime it is.