-
Notifications
You must be signed in to change notification settings - Fork 258
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
[BUG] NDK r23 armeabi-v7a libs should not use registers d16 to d31 #1672
Comments
Your scan is not clever enough to be accurate. libc.a uses ifuncs. The first d16 register use is in memmove_a15, which will not be called except on an a15 core, which has those registers. libz.a does not use ifuncs and does not report anything with your scan. That's a pretty good indication that our build configuration is correct. All these libraries come from the same build, so that means the others are probably correct too. There doesn't appear to be a bug here. If you're seeing SIGILLs, we'd need to know more about the crashes to figure out where the bad instructions are coming from. |
Copied from https://en.cppreference.com/w/cpp/types/bad_typeid
Note on |
Thanks. Having a function to track down makes this doable. That function I believe comes from the toolchain itself, so we'll need to look into fixing its build config. Need to make sure that is actually where it comes from in r23 first though (it definitely does in later releases, I just don't remember when we made the move and haven't checked the changelog yet). |
Yes, r23 was the release where that library started coming from the toolchain, so presumably there's a bad build configuration there. We'll get that fixed and get a new build out. |
https://android-review.googlesource.com/c/toolchain/llvm_android/+/2069721 should address getting this to build correctly for vfpv3-d16 devices. I don't have such a device to test with, but I will post the prebuilts here too for you to try once they're available. |
Should be fixed in r23 build 8486889. |
Since #1715 is blocking, I can't test. Hopefully libunwind.a will be the ONLY thing that's missing vfpv3-d16. 😅 |
armeabi-v7a libs should not use registers d16 to d31 NDK r23c will be the last NDK to support users setting -mfpu=vfpv3-d16 manually, so we need to build our runtime libraries this way one last time. Future toolchains and NDKs can build things as NEON (or more specifically as the default armv7a Android configuration). Bug: android/ndk#1672 Test: ./build.py Test: android/ndk#1672 (comment) Change-Id: I3bd752cfee799ef1f139c6c9afbe07cdffab746a
Changelog updates are in a separate commit to make cherry-picking to master easier. Bug: android/ndk#1590 Bug: android/ndk#1608 Bug: android/ndk#1619 Bug: android/ndk#1645 Bug: android/ndk#1672 Test: ./checkbuild.py && ./run_tests.py Change-Id: Ie5571ed436cb0a3fe9ad675ed15f62fff4e978d6 (cherry picked from commit 59e8e507c2a2147c2bc806087c953dd36f6b1c41) Merged-In: Ie5571ed436cb0a3fe9ad675ed15f62fff4e978d6
Separate from the toolchain update to avoid merge conflicts. Bug: android/ndk#1590 Bug: android/ndk#1608 Bug: android/ndk#1619 Bug: android/ndk#1645 Bug: android/ndk#1672 Test: None Change-Id: I6e24e582dc0c300db173083009da9a1494360137 (cherry picked from commit 25ab62f84177b8f57782048a01a755c5730d6e6b) Merged-In: I6e24e582dc0c300db173083009da9a1494360137
Description
Since NDK r23 will be the last to support
-mfpu=vfpv3-d16
, hopefully this can be fixed so that no more Illegal instruction errors.Affected versions
r23
Canary version
No response
Host OS
Linux
Host OS version
Ubuntu 21.10
Affected ABIs
armeabi-v7a
Build system
Other (specify below)
Other build system
No response
minSdkVersion
n/a
Device API level
No response
The text was updated successfully, but these errors were encountered: