-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Enable tests on Android bot #9120
Comments
When the pull request is merged, |
Doesn't this involve having hardware with an arm processor on it? Right now I don't think that build artifacts are transferred between builders which is what it seems like this would have to do. This would be awesome to be able to run tests on arm though, especially if it wasn't a huge slowdown on cycle time. |
There is already an (admittedly hacky) necessary automation in place to transfer build artifacts to (and results from) an Android device using adb. It can be used with either a hardware Android device, or an Android emulator. |
Ignore failing tests on Android to prepare for #9120.
Pinging @brson. |
We can't get this done before 0.8. Let's try afterward. |
Unfortunately, this regressed, and currently all binaries result in segmentation fault on ARM. I bisected the problem down to #9301. Any idea what might be causing this? |
That commit had to do with changing how the global crate map is passed around. It was no longer passed explicitly to main, but rather exposed as a weak symbol through various platform-defined methods. It perhaps means that the symbol/linker on arm does something a tad bit unusual, but it would probably warrant more investigation. If the symbol returned NULL, then that'd kill all programs because one of the first things the runtime does is to set up logging. |
I tried a quick test by running a simple hello world (with some caveats as documented at #9632) with the android emulator and I can't reproduce a segfault. |
Logging seems to work fine too. @sanxiyn Could you get a stacktrace? |
I can reproduce the segfault with the Android emulator. I am not sure what's going on... Also, does anyone know how can one get a stack trace on Android? |
My current hypothesis is that Android dynamic linker does something different for weak symbols. See this comment for example. I also confirmed that Android dynamic linker behaves differently from Linux dynamic linker with respect to weak symbols using a simple C code. So 1. is this plausible, and 2. is it possible to avoid use of weak symbols? Thanks. |
Does that mean that weak symbols don't work at all on android, or does that means that weak symbols just work differently on android? If they don't work at all, we may have to re-think how we do this, but if they do work in some situations, then we can certainly have android-specific behavior. |
@sanxiyn It's werid that you're seeing a segfault but I'm not. I just confirmed again with
|
@luqman if you make your avd device with API level 17 not 18, you can see segfault.
|
I also confirm that android-18 emulator does not segfault, and android-17 emulator does, and hardware devices we have (whose API level is below 18) segfault. For the current issue "enabling tests on Android bot", I think we can proceed with android-18 emulator. If we setup it sooner, it will prevent further regressions. I still want to understand what is going on with API level <18 and fix the issue, if only for hardware devices. |
I tested @sanxiyn's executable on my Galaxy Nexus (4.3, android-18); it didn't segfault. |
This regressed again, now failing 62 tests. Bisected to #9695. Probably related to changes to runtime reseeding random number generator, but haven't figured it out yet. Any suspect? |
That PR changes What're the failures? |
I posted the list of tests failed to Gist: https://gist.github.com/sanxiyn/7007168 |
To enable test on android bot #9120 some tests are disabled and can be fixed further.
To enable test on android bot #9120 workcache::test disabled and run-pass/core-run-destroy.rs fixed on android
This has been enabled. Closing. https://mail.mozilla.org/pipermail/rust-dev/2014-January/008223.html |
Fix ICE in sugg::DerefDelegate with (named) closures rustc comiler internals helpfully tell us how to fix the issue: ``` to get the signature of a closure, use `substs.as_closure().sig()` not `fn_sig()` ``` Fixes ICE in rust-lang#9041 This also makes this code in `sugg::DerefDelegate` match a different use `typ.fn_sig(…)` I found: in `mixed_read_write_in_expression` -- being strict on the value of `typ.kind()` will hopefully reduce any future possibility of ICE crashes in this area. --- changelog: none
Android port is pretty stable now. It is stable enough to compile working Servo, for example. Let's enable tests on Android bot and start to block pull requests on it. We can reconsider if it is causing problems.
The text was updated successfully, but these errors were encountered: