-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mingw: delete support for legacy mingw.org toolchain #11625
Conversation
I may have missed some bits, feel free to update, or report. Also, I'm uncertain if we announced this for 8.3.0 (released in September), or after 8.3.0. If the latter, feel free to flag it "next-feature-window". |
The checks for The predef details seems to suggest that's only set by v1? |
I think we have said we will remove this in September, so it misses the August feature window. |
Either way, good idea to check these. I'll review them. |
This |
139414a
to
5bac934
Compare
note __MINGW64_VERSION_MAJOR is not a compiler predefine, it is defined by _mingw.h so if we have to evaluate it in the future then we'll need that include |
I'm aware. This patch deletes all uses of |
I just landed #10056 which has a legacy mingw workaround so when you rebase on master you'll want to remove these lines: |
1b7f309
to
b7a50f6
Compare
Thanks @jay, it's done now. |
I deleted a list of compatibility constants, that were not marked "old mingw"-specific in the source. Part of them had this information in the commit message of 3d3a3f9. With the rest I took a chance and assumed that if those constants were already defined by mingw-w64 1.0 (2011-09-26), they were also present in the official SDK released with supported MSVC versions (2010 and later). curl also seems to support Pelles C. I have no idea about what's available there and CI doesn't test it. AFAIR Pelles C used to have fairly decent Windows headers. Tried to download it but even binaries are only offered via cleartext HTTP and even that was a 404. The compiler feels abandoned. We can restore any necessary compatibility macro as we go. Also, there may be more compatibility macros that were added for old-mingw, but not marked as such. We might also exclude such updates from this PR if this feels risky. |
a00680b
to
20940b1
Compare
20940b1
to
0f416a5
Compare
Drop support for "old" / "legacy" / "classic" MinGW or "mingw32": https://en.wikipedia.org/wiki/MinGW, https://osdn.net/projects/mingw/ Its homepage used to be http://mingw.org/ [no HTTPS], and broken now. It supported the x86 CPU only and used a old Windows API header and implib set, often causing issues. It also misses most modern Windows features, offering old versions of both binutils and gcc (no llvm/clang support). It was last updated 2 years ago. curl now relies on toolchains based on the mingw-w64 project: https://www.mingw-w64.org/ https://sourceforge.net/projects/mingw-w64/ https://www.msys2.org/ https://github.com/msys2/msys2 https://github.com/mstorsjo/llvm-mingw Also available via Linux and macOS package managers. Closes curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
cegcc uses the headers from "old-mingw" and thus suffer from some of the same limitations. Restore some code deleted when dropping old-mingw. Adapt the rest to build with wince. Certificate verification always fails with cegcc due the limitations. Drop a pre-existing wince #error and let the build finish anyway. Ref: 3802910 curl#11625
Drop support for "old" / "legacy" / "classic" / "v1" / "mingw32" MinGW:
https://en.wikipedia.org/wiki/MinGW, https://osdn.net/projects/mingw/
Its homepage used to be http://mingw.org/ [no HTTPS], and broken now.
It supported the x86 CPU only and used a old Windows API header and
implib set, often causing issues. It also misses most modern Windows
features, offering old versions of both binutils and gcc (no llvm/clang
support). It was last updated 2 years ago.
curl now relies on toolchains based on the mingw-w64 project:
https://www.mingw-w64.org/ https://sourceforge.net/projects/mingw-w64/
https://www.msys2.org/ https://github.com/msys2/msys2
https://github.com/mstorsjo/llvm-mingw
(Also available via Linux and macOS package managers.)
Closes #11625