build: bump minimum required mingw-w64 to v3.0 (from v1.0)#18010
Closed
vszakats wants to merge 9 commits intocurl:masterfrom
Closed
build: bump minimum required mingw-w64 to v3.0 (from v1.0)#18010vszakats wants to merge 9 commits intocurl:masterfrom
vszakats wants to merge 9 commits intocurl:masterfrom
Conversation
13 tasks
f95ff6f to
f8fba50
Compare
Member
Author
|
curl confirmed to build with mingw-w64 3.0, via a temporary CI job within this PR. Though the job failed building lib517 due to an unrelated problem. I'll address in |
Member
Author
|
I'm considering bumping the minimum further, possibly to v4, v5 or v6.
v4 was released on 2015-Mar-05. Never offered by Debian, also not present in well-known pre-built toolchains. |
This reverts commit f8fba50.
vszakats
added a commit
that referenced
this pull request
Jul 29, 2025
vszakats
added a commit
to vszakats/curl
that referenced
this pull request
Jul 30, 2025
It's supported by mingw-w64 v3+ and MS SDK 7.1A. Only used for Vista+ builds. Follow-up to a28f5f6 curl#18010
vszakats
added a commit
to vszakats/curl
that referenced
this pull request
Nov 30, 2025
The macro is present in all supported Windows toolchains. It's present in mingw-w64 v3+, and in MS SDK 6.0A+ (possibly earlier). Note: It may not be supported by `USE_LWIPSOCK`. Follow-up to a28f5f6 curl#18010 Follow-up to ca3f6de curl#10975
vszakats
added a commit
that referenced
this pull request
Nov 30, 2025
The macro is present in all supported Windows toolchains. It's present in mingw-w64 v3+, and in MS SDK 6.0A+ (maybe earlier). Also: - restrict this logic to `USE_WINSOCK` (was: `_WIN32`), to exclude alternate socket libraries (i.e. lwIP). lwIP supports `IPV6_V6ONLY` since its 2.0.0 (2016-11-10) release and it's disabled by default, unlike in Winsock. Ref: lwip-tcpip/lwip@e65202f - delete interim setter function/dummy macro `set_ipv6_v6only()`. Follow-up to a28f5f6 #18010 Follow-up to ca3f6de #10975 Closes #19769
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mingw-w64 3.0 was released on 2013-09-20. Offered by Debian jessie.
1.0 and 2.0 were released in 2011. It seems unlikely that many people
use them. The oldest downloadable toolchain (that I know of) comes with
3.0. Due to this, older versions weren't CI tested, and probably seldom
tested elsewhere. The last bugfix update for both 1.0 and 2.0 was
released in 2015.
curl can now assume availability of these 3.0 features/fixes:
ADDRESS_FAMILYtype.__MINGW_PRINTF_FORMATmacro. (in public curl headers)Public curl headers keep supporting older mingw-w64 versions.
Fixes #17984
LL64-bit literals & re-enable a test case (time_t) #18032. (No longer needed)Since in autotools this needs verbose code and feeling overkill, let's do this if this is causing an actual issue.
The version is checked in source anyway. CMake does check, but it's just 3 extra lines.
The patch is in the commit history and may become useful if curl happens to bump this requirement higher.
ADDRESS_FAMILYtype. → windows: assumeADDRESS_FAMILY, drop feature checks #18057__MINGW32__throughout the code, see if all is still needed.in particular in: lib/vtls/schannel_int.h and lib/curl_setup.h → schannel: drop old-mingw special case #18084
The
curl_setup.hcase forCURL_FORMAT_CURL_OFF*is complex and still seems necessary depending on a variety of build-time flags and mingw-64 build-time defaults and settings.