Skip to content

Conversation

@etr
Copy link
Owner

@etr etr commented Jan 28, 2026

Summary

Fixes #280 - Users on MSYS2/MinGW64 get build failures when running configure from the wrong shell.

Root cause: MSYS2 has multiple shells with different host triplets:

  • MSYS shell: x86_64-pc-msys - Does NOT match *-mingw* pattern
  • MinGW64 shell: x86_64-w64-mingw32 - Matches *-mingw* pattern

When users run configure from the MSYS shell (default), it falls through to the Unix case, looking for arpa/inet.h instead of winsock2.h.

Changes:

  • Add *-msys* case in configure.ac with Windows headers/libraries and a warning about msys-2.0.dll dependency
  • Add host triplet and Windows build status to configuration summary for easier debugging
  • Add MSYS environment to AppVeyor CI matrix alongside existing MinGW64 build
  • Add comprehensive Windows/MSYS2 build documentation to README.md

Test plan

  • AppVeyor CI passes for both MinGW64 and MSYS matrix entries
  • GitHub Actions verify-build passes

etr added 6 commits January 27, 2026 23:03
Add MSYS environment support to configure.ac so users building from the
MSYS shell get proper Windows configuration (winsock2.h, ws2_32 lib)
instead of falling through to the Unix case (arpa/inet.h).

Changes:
- configure.ac: Add *-msys* case with Windows config and warning about
  msys-2.0.dll dependency
- configure.ac: Add host triplet and Windows build status to summary
- appveyor.yml: Add MSYS environment to CI matrix alongside MinGW64
- README.md: Add Windows/MSYS2 build section with step-by-step
  instructions and explanation of shell differences
Integrate Windows/MSYS2 builds into the existing verify job matrix
instead of using a separate AppVeyor configuration. This consolidates
all CI into GitHub Actions.

- Add MINGW64 and MSYS matrix entries with msys2 shell
- Add MSYS2 setup and package installation steps
- Add Windows-specific libmicrohttpd build with --enable-poll=no
- Remove AppVeyor configuration and badge
Include entries don't inherit matrix defaults, so each needs an
explicit shell value to work with the defaults.run.shell setting.
The git checkout and failure-handling steps need explicit shell: bash
since they may run before MSYS2 is set up or if MSYS2 setup fails.
The curl package doesn't include development headers needed for
compiling tests. Use libcurl-devel which provides curl/curl.h.
The SSL tests (ssl_base, ssl_with_protocol_priorities, ssl_with_trust)
were failing because GnuTLS wasn't installed in the MSYS environment.
@etr etr merged commit 25990b0 into master Jan 28, 2026
38 of 40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] "winsock2.h" not found error on mingw64

2 participants