A little further digging shows that VZEROUPPER is part of the AVX 
instruction set, not supported on any Apple computers prior to 2011 from 
what I can tell.

Given the rc1 code worked fine, that could be an alternative for Darwin 
where the CPU does not support AVX. While not ideal, I'd argue it's better 
than cutting off support for these machines which can run High Sierra. Once 
support for High Sierra is dropped then it should not matter as it takes a 
2013 or later model to run anything after High Sierra.

- James



On Wednesday, February 26, 2020 at 10:29:33 AM UTC-8, James Pettyjohn wrote:
>
> I am trying to run go1.14 on macOS 10.13.2 with on a late 2009 iMac with 
> an i7 but always get the same crash:
>
>
> SIGILL: illegal instruction
> PC=0x1066040 m=0 sigcode=1
>
>
> goroutine 1 [running, locked to thread]:
> runtime.asyncPreempt()
>         /usr/local/go/src/runtime/preempt_amd64.s:8 fp=0xc000058ef0 sp=
> 0xc000058ee8 pc=0x1066040
> fmt.init()
>         /usr/local/go/src/fmt/scan.go:465 fp=0xc000058ef8 sp=0xc000058ef0 
> pc=0x10e6540
> runtime.doInit(0x1a80520)
>         /usr/local/go/src/runtime/proc.go:5414 +0x8a fp=0xc000058f28 sp=
> 0xc000058ef8 pc=0x1043aca
> runtime.doInit(0x1a80ec0)
>         /usr/local/go/src/runtime/proc.go:5409 +0x57 fp=0xc000058f58 sp=
> 0xc000058f28 pc=0x1043a97
> runtime.doInit(0x1a850c0)
>         /usr/local/go/src/runtime/proc.go:5409 +0x57 fp=0xc000058f88 sp=
> 0xc000058f58 pc=0x1043a97
> runtime.main()
>         /usr/local/go/src/runtime/proc.go:190 +0x1ce fp=0xc000058fe0 sp=
> 0xc000058f88 pc=0x103702e
> runtime.goexit()
>         /usr/local/go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc000058fe8 sp
> =0xc000058fe0 pc=0x10647d1
>
>
> rax    0x1a80520
> rbx    0xb
> rcx    0x0
> rdx    0x1a80578
> rdi    0xc0000b2020
> rsi    0x10e6540
> rbp    0xc000058f18
> rsp    0xc000058ee8
> r8     0x3277901
> r9     0x203000
> r10    0x8
> r11    0x55
> r12    0x1
> r13    0x55555555555555
> r14    0x171acac
> r15    0x38
> rip    0x1066040
> rflags 0x10202
> cs     0x2b
> fs     0x0
> gs     0x0
>
>
> Which appears to be a call to VZEROUPPER in preempt_amd64.s 
> <https://github.com/golang/go/blob/go1.14/src/runtime/preempt_amd64.s#L8>.
>
> This was not the case in rc1, which runs just fine. I get the same results 
> from installing it with brew, .pkg and .tgz installs - have done the 
> install from source yet.
>
> Any tips would be appreciated.
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/3ca625a5-c45e-4f05-92f9-36e3e61ff739%40googlegroups.com.

Reply via email to