`utsname` is ABI incompatible with cygwin
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 240
- Forks
- 60
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 1
Description
https://github.com/msys2/msys2-runtime/commit/e848126e887a2545ace898fe1c1c82089d94ec05
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked msys2-runtime commit and the referenced Rust libc PR, then inspect how the utsname structure differs between MSYS2 and Cygwin. Confirm the ABI and binding compatibility requirements with the issue discussion; done means an agreed, compatible structure layout or a documented resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100