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.
I come across this problem recently, and see the mailing list of cygwin: https://inbox.sourceware.org/cygwin/TYCPR01MB10926F334CDC9344A89527583F89CA@TYCPR01MB10926.jpnprd01.prod.outlook.com/
TL;DR: rustc fails to execute the linker when proc macro DLLs are too many.
As we don't need to reload these them when executing the linker, I think it's OK to set
FORK_NO_RELOAD
for the loaded proc macro DLLs. It's a little hacky though.dlfork
is a cygwin extension without documents, and it cannot set whether to reload a specific DLL on fork. If available, I prefer such an option fordlopen
.Not sure what does the rustc maintainers think about this workaround. I'll also ask for advice from the cygwin maintainers.