-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
mingw: build all CRT libraries #16273
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
Conversation
|
Could / should this maybe be rebased onto #16109 (unless there's an intentional difference in approach?) |
|
CI failures are due to the CI libs being compiled against msvcrt.
I hadn't seen that PR, but the mingw commit here adds a lot of files not included there. I'm happy to rebase if that's preferable for maintainers though. |
|
Yes, please rebase on top of the We will need to communicate on what files you would like to be added, because I must verify all files added by non- core team members. I hope you understand this is nothing personal, but it is standard security practice that our users expect from a programming language project. |
|
Thanks, it should be much easier to review now (relatively at least). All new files are unmodified from upstream mingw-w64 except |
|
@ypsvlq can you please remove all mingw source files from this PR and just tell me the process that you followed to make the PR so that I can repeat your work? |
|
@andrewrk What this PR does is recreate the logic from the mingw-w64-crt Makefile.am in mingw.zig and add the required source files. The process looked like this:
The mingw commits have been removed as requested, but are still needed for this branch to work. |
|
This has been updated to compile post-#16058, but not yet extensively re-tested. |
|
Closing in favor of #16109. As for fixing those issues, this is too many files added. A more surgical approach is needed. Also, there is a rule: all tools must be written in Zig. That means no Python, no Bash. |
fixes #9364, fixes #14727
Zig currently does not ship most of the mingw-w64 CRT, which is required for proper behaviour when linking system libraries. This patch updates mingw-w64 to the latest version and adds build logic for the missing/incomplete libraries.
This wiki diff implies the UCRT is intended to be the default libc, which has been changed here. As with a normal installation of mingw, different libc versions can be explicitly linked to.