Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upIllegal Instruction during early init on Armv7 (xcompiled from darwin/amd64) #18483
Labels
Comments
This comment has been minimized.
This comment has been minimized.
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.
|
This comment has been minimized.
This comment has been minimized.
I tried with GOARM=6. I get the same signal, but on a different instruction. Thanks for the reply!
|
This comment has been minimized.
This comment has been minimized.
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>
.
|
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
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.)
|
This comment has been minimized.
This comment has been minimized.
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>
.
|
This comment has been minimized.
This comment has been minimized.
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. |
This comment has been minimized.
This comment has been minimized.
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.