зеркало из https://github.com/golang/sys.git
8f2aa9fb48
Darwin opmask clobbering bug was fixed in kernel version 21.3.0 as released in MacOS 12.2.0. This commit resolves issue by checking for Darwin AVX512 support via a sysctl call with the addition of a kernel minimum version check. The kernel version check is completed without adding new dependencies to x/sys/cpu. A sysctl call is accomplished by copying a minimal amount of code from x/sys/unix, to retrieve only the needed KERN_OSRELEASE value. This code is structured in the same manner as an existing analogous AIX/PPC64 syscall. The resulting dotted version string value is then parsed for numeric comparison with a dependency free function. All code in this contribution is structured to ease removal of the special darwin/amd64 codepaths when that OS/arch combination is eventually no longer supported by golang. Resolves issue: golang/go#49233, reinstates fix for issue: golang/go#43089 Change-Id: I4755fc8b3865eb6562b0959ecc910e2c46ac6cb4 Reviewed-on: https://go-review.googlesource.com/c/sys/+/620256 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: vsivsi@yahoo.com <vsivsi@yahoo.com> |
||
---|---|---|
.. | ||
asm_aix_ppc64.s | ||
asm_darwin_x86_gc.s | ||
byteorder.go | ||
cpu.go | ||
cpu_aix.go | ||
cpu_arm.go | ||
cpu_arm64.go | ||
cpu_arm64.s | ||
cpu_darwin_x86.go | ||
cpu_gc_arm64.go | ||
cpu_gc_s390x.go | ||
cpu_gc_x86.go | ||
cpu_gc_x86.s | ||
cpu_gccgo_arm64.go | ||
cpu_gccgo_s390x.go | ||
cpu_gccgo_x86.c | ||
cpu_gccgo_x86.go | ||
cpu_linux.go | ||
cpu_linux_arm.go | ||
cpu_linux_arm64.go | ||
cpu_linux_mips64x.go | ||
cpu_linux_noinit.go | ||
cpu_linux_ppc64x.go | ||
cpu_linux_riscv64.go | ||
cpu_linux_s390x.go | ||
cpu_loong64.go | ||
cpu_mips64x.go | ||
cpu_mipsx.go | ||
cpu_netbsd_arm64.go | ||
cpu_openbsd_arm64.go | ||
cpu_openbsd_arm64.s | ||
cpu_other_arm.go | ||
cpu_other_arm64.go | ||
cpu_other_mips64x.go | ||
cpu_other_ppc64x.go | ||
cpu_other_riscv64.go | ||
cpu_other_x86.go | ||
cpu_ppc64x.go | ||
cpu_riscv64.go | ||
cpu_s390x.go | ||
cpu_s390x.s | ||
cpu_s390x_test.go | ||
cpu_test.go | ||
cpu_wasm.go | ||
cpu_x86.go | ||
cpu_zos.go | ||
cpu_zos_s390x.go | ||
endian_big.go | ||
endian_little.go | ||
endian_test.go | ||
hwcap_linux.go | ||
parse.go | ||
parse_test.go | ||
proc_cpuinfo_linux.go | ||
runtime_auxv.go | ||
runtime_auxv_go121.go | ||
runtime_auxv_go121_test.go | ||
syscall_aix_gccgo.go | ||
syscall_aix_ppc64_gc.go | ||
syscall_darwin_x86_gc.go |