runtime: remove obsolete osArchInit function

The osArchInit function was introduced as a workaround for a Linux kernel bug
that corrupted vector registers on x86 CPUs during signal delivery.
The bug was introduced in Linux 5.2 and fixed in 5.3.15, 5.4.2, and all 5.5 and later kernels.
The fix was also back-ported by major distros.

Signed-off-by: aimuz <mr.imuz@gmail.com>
This commit is contained in:
aimuz 2025-09-03 17:29:26 +08:00
parent 2a7f1d47b0
commit 8425af458b
11 changed files with 0 additions and 33 deletions

View file

@ -1,7 +0,0 @@
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package runtime
func osArchInit() {}

View file

@ -356,7 +356,6 @@ func getHugePageSize() uintptr {
func osinit() { func osinit() {
numCPUStartup = getCPUCount() numCPUStartup = getCPUCount()
physHugePageSize = getHugePageSize() physHugePageSize = getHugePageSize()
osArchInit()
vgetrandomInit() vgetrandomInit()
} }

View file

@ -48,8 +48,6 @@ func archauxv(tag, val uintptr) {
} }
} }
func osArchInit() {}
//go:nosplit //go:nosplit
func cputicks() int64 { func cputicks() int64 {
// nanotime() is a poor approximation of CPU ticks that is enough for the profiler. // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.

View file

@ -15,8 +15,6 @@ func archauxv(tag, val uintptr) {
} }
} }
func osArchInit() {}
//go:nosplit //go:nosplit
func cputicks() int64 { func cputicks() int64 {
// nanotime() is a poor approximation of CPU ticks that is enough for the profiler. // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.

View file

@ -14,5 +14,3 @@ func archauxv(tag, val uintptr) {
cpu.HWCap = uint(val) cpu.HWCap = uint(val)
} }
} }
func osArchInit() {}

View file

@ -15,8 +15,6 @@ func archauxv(tag, val uintptr) {
} }
} }
func osArchInit() {}
//go:nosplit //go:nosplit
func cputicks() int64 { func cputicks() int64 {
// nanotime() is a poor approximation of CPU ticks that is enough for the profiler. // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.

View file

@ -9,8 +9,6 @@ package runtime
func archauxv(tag, val uintptr) { func archauxv(tag, val uintptr) {
} }
func osArchInit() {}
//go:nosplit //go:nosplit
func cputicks() int64 { func cputicks() int64 {
// nanotime() is a poor approximation of CPU ticks that is enough for the profiler. // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.

View file

@ -19,5 +19,3 @@ func archauxv(tag, val uintptr) {
cpu.HWCap2 = uint(val) cpu.HWCap2 = uint(val)
} }
} }
func osArchInit() {}

View file

@ -9,8 +9,6 @@ import (
"unsafe" "unsafe"
) )
func osArchInit() {}
type riscvHWProbePairs = struct { type riscvHWProbePairs = struct {
key int64 key int64
value uint64 value uint64

View file

@ -17,8 +17,6 @@ func archauxv(tag, val uintptr) {
} }
} }
func osArchInit() {}
func checkS390xCPU() { func checkS390xCPU() {
// Check if the present z-system has the hardware capability to carryout // Check if the present z-system has the hardware capability to carryout
// floating point operations. Check if hwcap reflects CPU capability for the // floating point operations. Check if hwcap reflects CPU capability for the

View file

@ -1,9 +0,0 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build linux && (386 || amd64)
package runtime
func osArchInit() {}