-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
ARMv6 architecture support broken in nightly-2019-07-18 #62841
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: