Fix static linking when using MinGW-w64 #15167
Open
+10
−10
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.
Resolves part of #6170.
libcmt.lib
ormsvcrt.lib
is provided by MinGW-w64's built-in spec files directly (seecc -dumpspecs
), so we do not link against it.-lmsvcrt
by default, but this is a symlink or copy of the old C runtime library. Using-static -lmsvcrt -lucrt
all together leads to a crash in the startup code. Passing-mcrtdll=ucrt
suppresses this default and means Crystal doesn't have to provide an explicit@[Link]
annotation for-lucrt
. (This-mcrtdll
in turn is what we comment out in order to support the MINGW64 environment.)