Uh oh!
There was an error while loading. Please reload this page.
Run s390x tests on qemu system - #820
Conversation
malbarbo
commented
Oct 27, 2017
Android tests are failing. Maybe https://travis-ci.org/rust-lang/libc/jobs/293607888#L4848
|
alexcrichton
commented
Oct 27, 2017
Nice! Something about the android tests do indeed look funny, I'll take a look. Looks like s390x is also failing? |
alexcrichton
commented
Oct 27, 2017
@malbarbo so it looks like the Android docker images no longer have I think you've done some work with Android/CI in the past, mind helping me investigate? It looks like the |
malbarbo
commented
Oct 27, 2017
@alexcrichton I'm trying to solve the android issue. |
alexcrichton
commented
Oct 27, 2017
Awesome, thanks! |
59038c4 to
ff1b2cfComparemalbarbo
commented
Oct 27, 2017
I've tried many things but none made s390x builder works... It works locally... Next week I will take a look at this again. |
alexcrichton
commented
Oct 27, 2017
Oops sorry didn't mean to close. I see you installed binfmt support in the container, is that needed to run foreign binaries? I haven't looked too closely at this yet, but historically I've seen the need for installing that package outside the container as well, for example directly on Travis , maybe that's what is up? |
f33efca to
8ba5798Comparebors
commented
Oct 28, 2017
☔ The latest upstream changes (presumably #825) made this pull request unmergeable. Please resolve the merge conflicts. |
malbarbo
commented
Oct 31, 2017
I have changed to a simpler (and faster) approach that do not use qemu-user. Hopefully this will work on travis. I'm testing this approach with sparc64. |
alexcrichton
commented
Oct 31, 2017
@bors: r+ Nice! |
bors
commented
Oct 31, 2017
📌 Commit a6c7091 has been approved by |
bors
commented
Oct 31, 2017
Run s390x tests on qemu system qemu in user mode cannot run binaries produced by rustc (it hangs), so we run the tests in a fully virtualized s390x machine using qemu-system-s390x. Some constants had to be fixed.
alexcrichton
commented
Oct 31, 2017
This feels "more correct" to me in terms of emulation in QEMU, so if this is easily adaptable to other architectures I'd be totally on board with doing this across the board for all cross-compiled arches |
bors
commented
Oct 31, 2017
☀️ Test successful - status-appveyor, status-travis |
malbarbo
commented
Oct 31, 2017
I opened #829 issue to track the use of qemu system. |
Since [1], s390x has been an exception in that it runs in system mode rather than user mode. The reason cited at that PR is that the s390x user-mode qemu could not run rust-built binaries, which has long since no longer been true (the PR is from 2017). There may be some arguments in favor of running in system mode, such as having better control over kernel version than what GHA+Docker gives us. However, the time cost is high and the benefit isn't huge, and it certainly doesn't make sense to run only a single target in system mode. Thus, switch to user mode to match other targets. Closes: rust-lang#829 [1]: rust-lang#820
Since [1], s390x has been an exception in that it runs in system mode rather than user mode. The reason cited at that PR is that the s390x user-mode qemu could not run rust-built binaries, which has long since no longer been true (the PR is from 2017). There may be some arguments in favor of running in system mode, such as having better control over kernel version than what GHA+Docker gives us. However, the time cost is high and the benefit isn't huge, and it certainly doesn't make sense to run only a single target in system mode. Thus, switch to user mode to match other targets. Closes: rust-lang#829 [1]: rust-lang#820 (backport <rust-lang#5210>) (cherry picked from commit 5dba84e)
Since [1], s390x has been an exception in that it runs in system mode rather than user mode. The reason cited at that PR is that the s390x user-mode qemu could not run rust-built binaries, which has long since no longer been true (the PR is from 2017). There may be some arguments in favor of running in system mode, such as having better control over kernel version than what GHA+Docker gives us. However, the time cost is high and the benefit isn't huge, and it certainly doesn't make sense to run only a single target in system mode. Thus, switch to user mode to match other targets. Closes: rust-lang#829 [1]: rust-lang#820 (backport <rust-lang#5210>) (cherry picked from commit 5dba84e)
qemu in user mode cannot run binaries produced by rustc (it hangs), so we run the tests in a fully virtualized s390x machine using qemu-system-s390x.
Some constants had to be fixed.