-
Notifications
You must be signed in to change notification settings - Fork 654
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
arm-linux-androideabi build fails (sched, unistd, signal) #313
Comments
Regarding the For some reason android uses unsigned values for The linux man page suggests that it might be an I suggest we introduce a type definition |
Looks like the namespace related Opened rust-lang/libc#227 |
Per servo/servo#14171 (comment), changes to support Android would unfortunately probably need to go into nix itself instead of being reflected through libstd. |
Disable the debugger on Android until mio works on Android <!-- Please describe your changes on the following line: --> r? @nox The recent change to `ws-rs` introduced a dependency on `mio`, which depends on `nix`, which does not build on Android (nix-rust/nix#313). I've disabled the debugger in this change. Fixes #14171 cc @mmatyas --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14270) <!-- Reviewable:end -->
… on Android (from larsbergstrom:disable_android_debugger); r=nox <!-- Please describe your changes on the following line: --> r? @nox The recent change to `ws-rs` introduced a dependency on `mio`, which depends on `nix`, which does not build on Android (nix-rust/nix#313). I've disabled the debugger in this change. Fixes #14171 cc @mmatyas --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 9c6f6ebf3e789c251f34d865a4a713988ba81cdb
I cannot compile nix using the target arm-linux-androideabi (beside the mismatched types for the SA_ flags) for some symbols not being defined in libc for that platform. These are the missing symbols:
I do not know if these symbols are effectively absent from Android headers and if it's an issue in libc or in nix. Should I report it in libc repository ? Thanks |
Those missing symbols are all issues in libc, if the symbols exist at all on Android. You should report it to libc. |
@ndusart When you post a |
So I just looked at the android NDK headers (which should be, AFAIK, the source of truth). The thing is, none of those symbols are defined in Each android version has a minimum version requirement for the kernel. As new version of android got released, this minimum version has gone up. Which is why on android-21, some of those symbols are defined. Furthermore, android doesn't use glibc. It uses bionic as a libc. Bionic isn't 100% compatible with glibc. For instance, old versions of bionic (the one included in android-18 at least) don't provide some functions such as Now the question is, what's the correct thing to do for In the meantime, maybe we can |
@roblabla libc's current versioning strategy is to write FFI bindings for the OS's most recent version (for Android I think it's 24) and assume that once a symbol is defined, it will never be removed or changed. There are obviously some big problems with that approach (see rust-lang/libc#570 ) but we can't fix it in Nix. The best that we can do is to |
Thanks for your feedback, I just posted an issue in libc. |
… on Android (from larsbergstrom:disable_android_debugger); r=nox <!-- Please describe your changes on the following line: --> r? nox The recent change to `ws-rs` introduced a dependency on `mio`, which depends on `nix`, which does not build on Android (nix-rust/nix#313). I've disabled the debugger in this change. Fixes #14171 cc mmatyas --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 9c6f6ebf3e789c251f34d865a4a713988ba81cdb UltraBlame original commit: 9d91cefb5476e1da0840406029ce219d3d99aef1
… on Android (from larsbergstrom:disable_android_debugger); r=nox <!-- Please describe your changes on the following line: --> r? nox The recent change to `ws-rs` introduced a dependency on `mio`, which depends on `nix`, which does not build on Android (nix-rust/nix#313). I've disabled the debugger in this change. Fixes #14171 cc mmatyas --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 9c6f6ebf3e789c251f34d865a4a713988ba81cdb UltraBlame original commit: 9d91cefb5476e1da0840406029ce219d3d99aef1
… on Android (from larsbergstrom:disable_android_debugger); r=nox <!-- Please describe your changes on the following line: --> r? nox The recent change to `ws-rs` introduced a dependency on `mio`, which depends on `nix`, which does not build on Android (nix-rust/nix#313). I've disabled the debugger in this change. Fixes #14171 cc mmatyas --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 9c6f6ebf3e789c251f34d865a4a713988ba81cdb UltraBlame original commit: 9d91cefb5476e1da0840406029ce219d3d99aef1
With the new test infrastructure (still being stabilized):
The text was updated successfully, but these errors were encountered: