-
Notifications
You must be signed in to change notification settings - Fork 13.3k
ARMv6 architecture support broken in nightly-2019-07-18 #62841
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
Presumably due to LLVM update. Can you determine what the illegal instruction is? (E.g. via gdb and |
did you try compiling code on your raspberry pi 0 ? |
Looks like even compilation directly on RPi0 is broken as the compiler/cargo crashes:
Running under gdb:
@nikic I'm not sure if this helpful at all, I can send (e-mail) you the coredump or do anything else you need, unfortunately I have basically no experience debugging low-level ASM issues. |
The problematic instruction is There were some changes in LLVM 9 around the sp/dp handling on ARM ( |
According to the ARM1176JZF-S™ Technical Reference Manual (which is the CPU used in Raspberry Pi Zero) it contains a VFP11 coprocessor (VFP2 implementation with full support for single-precision and double-precision math operations). ARM refs: |
Thanks for the references. So both vfp2 and fp64 should be supported. Something I missed before is that the instruction uses the It looks like the corresponding armv7 target does disable Possibly the default flipped here, in which case we should just add |
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
This issue might be related to this one #62932 - libc's CI is broken since the LLVM upgrade. |
This is probably caused by llvm/llvm-project@760df47 EDIT: Ah nevermind, someone found this already |
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
Reopening until there is confirmation that this is fixed... |
Great, closing as fixed |
The support for ARMv6 architecture was broken somewhere between 07e0c36...bc2e84c:
nightly-2019-07-16
compiles file whilenightly-2019-07-17
produces binary that crashes withIllegal instruction
.More specifically, this is a binary cross-compiled from
x86_64-unknown-linux-gnu
forarm-unknown-linux-gnueabihf
arch, linked with a custom linker for ARMv6.The hardware is part of Raspberry Pi Zero rev. 1.1, the processor information is as follows:
The text was updated successfully, but these errors were encountered: