mirror of
https://github.com/golang/sys.git
synced 2026-02-09 04:06:04 +03:00
cpu: avoid illegal instruction on netbsd/arm64
On NetBSD, this package tries to read a privileged register, which results in a SIGILL. Use the same workaround as Android and iOS. In the future, we could use sysctl(3) instead. Update golang/go#30824 Change-Id: Ifd9aa2a2cf4dac43341d013602d1ccb4b8d6eb6d Reviewed-on: https://go-review.googlesource.com/c/sys/+/235097 Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
fe76b779f2
commit
0598657881
@@ -10,8 +10,14 @@ const cacheLineSize = 64
|
||||
|
||||
func init() {
|
||||
switch runtime.GOOS {
|
||||
case "android", "darwin":
|
||||
case "android", "darwin", "netbsd":
|
||||
// Android and iOS don't seem to allow reading these registers.
|
||||
//
|
||||
// NetBSD:
|
||||
// ID_AA64ISAR0_EL1 is a privileged register and cannot be read from EL0.
|
||||
// It can be read via sysctl(3). Example for future implementers:
|
||||
// https://nxr.netbsd.org/xref/src/usr.sbin/cpuctl/arch/aarch64.c
|
||||
//
|
||||
// Fake the minimal features expected by
|
||||
// TestARM64minimalFeatures.
|
||||
ARM64.HasASIMD = true
|
||||
|
||||
Reference in New Issue
Block a user