-
Notifications
You must be signed in to change notification settings - Fork 15.4k
[LLVM] adjust lit.cfg.py for Cygwin #151416
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
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, more tests fail if -elf is appended to the target triple on Cygwin than if it is not, so remove cygwin from that case rather than adding windows-cygnus to it.
| # Windows. FIXME: the process target triple should be used here, but this is | ||
| # difficult to obtain on Windows. | ||
| if re.search(r"cygwin|windows-gnu|windows-msvc", config.host_triple): | ||
| if re.search(r"windows-gnu|windows-msvc", config.host_triple): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not so sure about this one in particular - for the (rather odd) JIT cases where we construct an ELF file in memory and map that, I would think that it should work the same on cygwin as on regular Windows?
mstorsjo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking mostly good, but I do find the -elf case curious, why it should fail more on cygwin than on native windows.
|
I am extremely curious about these tests on Windows (or at least MinGW) because it seems at least some of them don't run, but I can't find an obvious place that they are excluded. |
|
With that These remote tests seem to all fail with: |
All of those tests in the remote category are marked as XFAIL for Windows, see e.g. https://github.com/llvm/llvm-project/blob/llvmorg-22-init/llvm/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll#L2 - this since 5bbf576 and 4b6e021 very very long ago. And when actually running them, we hit this: So if I understand it correctly - enabling |
Yes. The remote mechanism uses unix pipes, and fork/exec |
Ok, I see. So as we now know how the |
mstorsjo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to `__register_frame` not being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to `__register_frame` not being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to `__register_frame` not being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to `__register_frame` not being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to `__register_frame` not being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures. However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to `__register_frame` not being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.
Cygwin is like Windows in that it uses COFF, and doesn't emit .debug_frame on 64-bit architectures.
However, if -elf is appended to the target triple on Cygwin MCJIT remote tests fail due to
__register_framenot being defined. Only one test fails without -elf that succeeds with it, so mark just that test as XFAIL on Cygwin.