-
Notifications
You must be signed in to change notification settings - Fork 229
Errors building latest version on arm-android #641
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
Comments
For reference - I compiled for the target ( Symbols available from current master (06db2de)
Symbols available from my revert test (tgross35/android-testing, 42538d8). `weak-intrinsics` feature not enabled.
Looks like most of the |
Building one of the failing tests
Complete shot in the dark here but I wonder if the |
Missing dunder symbols for each: hashmap-memory.o
issue-87707.o
mpsc-stress.o
multi-panic.o
terse.o
Disassembly of section .text._ZN17compiler_builtins9arm_linux29__sync_val_compare_and_swap_417h38f45028923f7fb2E:
00000000 <_ZN17compiler_builtins9arm_linux29__sync_val_compare_and_swap_417h38f45028923f7fb2E>:
0: e92d48f0 push {r4, r5, r6, r7, fp, lr}
4: e59f7034 ldr r7, [pc, #52] @ 40 <_ZN17compiler_builtins9arm_linux29__sync_val_compare_and_swap_417h38f45028923f7fb2E+0x40>
8: e1a05002 mov r5, r2
c: e1a04001 mov r4, r1
10: e1a06000 mov r6, r0
14: e5960000 ldr r0, [r6]
18: e1500004 cmp r0, r4
1c: 1a000006 bne 3c <_ZN17compiler_builtins9arm_linux29__sync_val_compare_and_swap_417h38f45028923f7fb2E+0x3c>
20: e1a00004 mov r0, r4
24: e1a01005 mov r1, r5
28: e1a02006 mov r2, r6
2c: e12fff37 blx r7
30: e3500000 cmp r0, #0
34: 1afffff6 bne 14 <_ZN17compiler_builtins9arm_linux29__sync_val_compare_and_swap_417h38f45028923f7fb2E+0x14>
38: e1a00004 mov r0, r4
3c: e8bd88f0 pop {r4, r5, r6, r7, fp, pc}
40: ffff0fc0 .word 0xffff0fc |
Making the |
I just realized that another thing changed by #598, probably inadvertently, is that It seems unlikely but if (1) the system I'm going to do another try run with only this fix just to get a better answer here. Edit: try rust-lang/rust#127561 (comment) |
After <rust-lang#598>, arm-android was failing to complete in CI because it was hanging on some tests. This issue appears to have been caused by symbols related to atomics, e.g. `__sync_val_compare_and_swap_4`, to have become weak. It turns out that these symbols were always strong before, even though Android was always setting the `weak-intrinsics` feature. So, making them weak presumably caused the system implementation to get linked, which appears buggy. Resolve this by making `__sync_*` symbols weak on Android. (this includes a recursion limit increase, our macros are getting big). Link: rust-lang#641
Looks like maybe it's only the ABI and not weak/strong, see #642 (comment) |
With the ABI fix at e7fd5be that adds Disassembly of section .text._ZN17compiler_builtins9arm_linux29__sync_val_compare_and_swap_417hfe807ac00790ab96E:
00000000 <__sync_val_compare_and_swap_4>:
0: e92d48f0 push {r4, r5, r6, r7, r11, lr}
4: e59f7034 ldr r7, [pc, #52] @ 0x40 <$d.720>
8: e1a05002 mov r5, r2
c: e1a04001 mov r4, r1
10: e1a06000 mov r6, r0
14: e5960000 ldr r0, [r6]
18: e1500004 cmp r0, r4
1c: 1a000006 bne 0x3c <__sync_val_compare_and_swap_4+0x3c> @ imm = #24
20: e1a00004 mov r0, r4
24: e1a01005 mov r1, r5
28: e1a02006 mov r2, r6
2c: e12fff37 blx r7
30: e3500000 cmp r0, #0
34: 1afffff6 bne 0x14 <__sync_val_compare_and_swap_4+0x14> @ imm = #-40
38: e1a00004 mov r0, r4
3c: e8bd88f0 pop {r4, r5, r6, r7, r11, pc}
00000040 <$d.720>:
40: c0 0f ff ff .word 0xffff0fc0 Identical asm except for which registers get pushed or popped. Got you! |
In rust-lang/rust#125016 (comment), android tests are timing out attempting to update CB to 0.1.113. I'm just making this issue for a place to track the debugging effort.
#598 seems to have caused this; I tested reverting it and the job passed rust-lang/rust#127561 (comment). Also reverted VisionOS to avoid conflicts, but that should be unrelated.
@maurer tested locally and was able to identify these tests as failing:
The text was updated successfully, but these errors were encountered: