-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[android] Fix PIC test for Android ARMv7/AArch64 #23614
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
I think I would rather see it duplicated. Making the |
8b6626f
to
8d41b22
Compare
Split the test into Linux/Windows/Android (iOS should use |
@drodriguez @compnerd This test also needs fixing for Linux/AArch64 |
For the AArch64 test, the only change is making the @page piece optional. LLVM doesn't seem to generate that part when targetting Android or Linux. For the ARMv7 tests, it is a little bit more complicated. Android seems to use a different structure for PIC, which involve two labels and instructions which are not movw/movt. To keep the iOS test undisturbed, I added an extra check for the target-sdk-name. That allows iOS to be the same, and Android to have their own checks. For Linux (the only other SDK I can find that targets ARMv7), I used the Android solution, because that seems to be what LLVM generates when using armv7-none-linux.
8d41b22
to
0dee84a
Compare
Done. I wonder if Windows do not have the @compnerd: can you restart the tests and review this again for merging (last Android AArch64 test failing!) |
Great, thanks. |
@swift-ci please test |
Build failed |
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.
This looks fine to me.
For the AArch64 test, the only change is making the @page piece
optional. LLVM doesn't seem to generate that part when targetting
Android.
For the ARMv7 tests, it is a little bit more complicated. Android seems
to use a different structure for PIC, which involve two labels and
instructions which are not movw/movt. To keep the iOS test undisturbed,
I added an extra check for the target-sdk-name. That allows iOS to be
the same, and Android to have their own checks. For Linux (the only
other SDK I can find that targets ARMv7), I used the Android solution,
because that seems to be what LLVM generates when using
armv7-none-linux.