-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Fix setting of PATH for make check
on windows
#27553
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
r? @pcwalton (rust_highfive has picked a reviewer for you, use r? to override) |
Let's think carefully before merging this. The configuration here is tricky and it may be intentional. It seems possible to me that we intentionally configured the tests on windows to load the 'host' libs and not the 'target' libs. I do vaguely recall stage1 tests not working on windows for known reasons (known years ago and now forgotten). @alexcrichton what do you think of this? cc @vadimcn |
@Diggsey, any idea which dlls is it not finding? For me, |
@vadimcn When running How is the executable supposed to find the DLLs? I've checked, and nothing in the makefile rules triggered by The only other ways I know of how windows could find the DLLs were if PATH already included a directory containing the DLLs, or if the DLLs happened to be loaded by another process at the time (and I'm still not sure about that one, it's not clear from msdn when that applies). |
Yeah I think this was an accidental omission (unix already does this). Depending on the ordering of what |
I have no idea how bors keeps working without this - I can only assume it's some peculiarity of how windows searches for DLLs. Without this change, running `make check` on windows will not correctly set PATH to include eg. `x86_64-pc-windows-gnu\stage1\bin\rustlib\x86_64-pc-windows-gnu\lib`, and when it tries to run eg. `stage1/test/stdtest-x86_64-pc-windows-gnu.exe`, it will fail because windows can't find the DLLs on which it relies. It seems to be just a mistake: when the equivalent was added for the branch that deals with unix-like platforms, the windows branch was left unchanged.
⛄ The build was interrupted to prioritize another pull request. |
I have no idea how bors keeps working without this - I can only assume it's some peculiarity of how windows searches for DLLs. Without this change, running `make check` on windows will not correctly set PATH to include eg. `x86_64-pc-windows-gnu\stage1\bin\rustlib\x86_64-pc-windows-gnu\lib`, and when it tries to run eg. `stage1/test/stdtest-x86_64-pc-windows-gnu.exe`, it will fail because windows can't find the DLLs on which it relies. It seems to be just a mistake: when the equivalent was added for the branch that deals with unix-like platforms, the windows branch was left unchanged.
I have no idea how bors keeps working without this - I can only assume it's some peculiarity of how windows searches for DLLs.
Without this change, running
make check
on windows will not correctly set PATH to include eg.x86_64-pc-windows-gnu\stage1\bin\rustlib\x86_64-pc-windows-gnu\lib
, and when it tries to run eg.stage1/test/stdtest-x86_64-pc-windows-gnu.exe
, it will fail because windows can't find the DLLs on which it relies.It seems to be just a mistake: when the equivalent was added for the branch that deals with unix-like platforms, the windows branch was left unchanged.