-
Notifications
You must be signed in to change notification settings - Fork 18k
Illegal Instruction during early init on Armv7 (xcompiled from darwin/amd64) #18483
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
Labels
Comments
Probably your SoC only support VFPv1, not VFPv3 as required
by GOARM=7.
Try rebuilding with GOARM=6 to see if it fixes the problem.
|
I tried with GOARM=6. I get the same signal, but on a different instruction. Thanks for the reply!
|
Can you post /proc/cpuinfo for us? Thank.
…On Sun, 1 Jan 2017, 13:21 jdizzle ***@***.***> wrote:
I tried with GOARM=6. I get the same signal, but on a different
instruction. Thanks for the reply!
Program received signal SIGILL, Illegal instruction.
0x0004a084 in runtime.check () at /usr/local/Cellar/go/1.6.3/libexec/src/runtime/runtime1.go:152
152 /usr/local/Cellar/go/1.6.3/libexec/src/runtime/runtime1.go: No such file or directory.
(gdb) disass
Dump of assembler code for function runtime.check:
0x0004a044 <+0>: ldr r1, [r10, #8]
0x0004a048 <+4>: cmp sp, r1
0x0004a04c <+8>: bls 0x4a5f4 <runtime.check+1456>
0x0004a050 <+12>: str lr, [sp, #-76]! ; 0xffffffb4
0x0004a054 <+16>: mov r0, #0
0x0004a058 <+20>: mov r0, #0
0x0004a05c <+24>: mov r0, #0
0x0004a060 <+28>: mov r0, #0
0x0004a064 <+32>: mov r0, #0
0x0004a068 <+36>: str r0, [sp, #48] ; 0x30
0x0004a06c <+40>: mov r0, #0
0x0004a070 <+44>: mov r0, #0
0x0004a074 <+48>: mov r1, #0
0x0004a078 <+52>: mov r0, #0
0x0004a07c <+56>: mov r1, #0
0x0004a080 <+60>: ldr r11, [pc, #1404] ; 0x4a604 <runtime.check+1472>
=> 0x0004a084 <+64>: vldr s0, [r11]
0x0004a088 <+68>: vstr s0, [sp, #44] ; 0x2c
0x0004a08c <+72>: ldr r11, [pc, #1392] ; 0x4a604 <runtime.check+1472>
0x0004a090 <+76>: vldr s0, [r11]
0x0004a094 <+80>: vstr s0, [sp, #40] ; 0x28
0x0004a098 <+84>: ldr r11, [pc, #1384] ; 0x4a608 <runtime.check+1476>
0x0004a09c <+88>: vldr d0, [r11]
0x0004a0a0 <+92>: vstr d0, [sp, #60] ; 0x3c
0x0004a0a4 <+96>: ldr r11, [pc, #1372] ; 0x4a608 <runtime.check+1476>
0x0004a0a8 <+100>: vldr d0, [r11]
0x0004a0ac <+104>: vstr d0, [sp, #52] ; 0x34
0x0004a0b0 <+108>: mov r0, #0
0x0004a0b4 <+112>: str r0, [sp, #72] ; 0x48
0x0004a0b8 <+116>: mov r0, #0
0x0004a0bc <+120>: mov r0, #0
0x0004a0c0 <+124>: mov r0, #0
0x0004a0c4 <+128>: strb r0, [sp, #36] ; 0x24
0x0004a0c8 <+132>: strb r0, [sp, #37] ; 0x25
0x0004a0cc <+136>: strb r0, [sp, #38] ; 0x26
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#18483 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAAcA5I0b72HuKahCbF342Dlj-LADXiCks5rNw2rgaJpZM4LYpnB>
.
|
|
looks like either the processor doesn't have VFP at all,
or the kernel has disabled VFP support. You will need to
use GOARM=5.
If it's the first case, do you mind disclose the SoC part number?
(Just curious, because I haven't seen any ARMv7 SoC without
VFP.)
|
Sadly you'll have to compile with GOARM=5 to use soft float emulation.
…On Sun, 1 Jan 2017, 14:04 Minux Ma ***@***.***> wrote:
looks like either the processor doesn't have VFP at all,
or the kernel has disabled VFP support.
If it's the first case, do you mind disclose the SoC part number?
(Just curious, because I haven't seen any ARMv7 SoC without
VFP.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#18483 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAAcA2xXCU0UTjyN2K0QFuZpkPkMZVvpks5rNxewgaJpZM4LYpnB>
.
|
I'm using a BCM58625. I checked and found my kernel has VFP=n in the config. I switched it to VFP=y, recompiled, and the go code works! Thank you very much for your prompt and useful assistance. |
Not a problem, I'm glad you got it working. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (
go version
)?go version go1.6.3 darwin/amd64
installed via brew
What operating system and processor architecture are you using (
go env
)?However I am cross compiling for a linux arm7 system
What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
What did you see instead?
The executable immediately crashes due to an illegal instruction signal. Here is the output of gdserver:
It appears that the vmov.f32 instruction is not supported? I'm using a Cortex A9 chip, and the datasheet for the SoC shows the FPU. Is this possibly a software configuration issue on my end. I have ARM_THUMB=n in my kernel configuration.
The text was updated successfully, but these errors were encountered: