From b7c20413c5b78b7dfc7f7de52f333a8ca85cd55b Mon Sep 17 00:00:00 2001 From: aimuz Date: Wed, 3 Sep 2025 14:15:06 +0000 Subject: [PATCH] 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. Change-Id: I59990a7df104843955301c5cb8a547614eba145b GitHub-Last-Rev: 8425af458bfaad0d64d21ff3f3e0049d186f44ed GitHub-Pull-Request: golang/go#75246 Reviewed-on: https://go-review.googlesource.com/c/go/+/700555 Reviewed-by: Michael Knyszek Reviewed-by: Michael Pratt LUCI-TryBot-Result: Go LUCI Auto-Submit: Michael Pratt --- src/runtime/os_freebsd_riscv64.go | 7 ------- src/runtime/os_linux.go | 1 - src/runtime/os_linux_arm.go | 2 -- src/runtime/os_linux_arm64.go | 2 -- src/runtime/os_linux_loong64.go | 2 -- src/runtime/os_linux_mips64x.go | 2 -- src/runtime/os_linux_mipsx.go | 2 -- src/runtime/os_linux_ppc64x.go | 2 -- src/runtime/os_linux_riscv64.go | 2 -- src/runtime/os_linux_s390x.go | 2 -- src/runtime/os_linux_x86.go | 9 --------- 11 files changed, 33 deletions(-) delete mode 100644 src/runtime/os_freebsd_riscv64.go delete mode 100644 src/runtime/os_linux_x86.go diff --git a/src/runtime/os_freebsd_riscv64.go b/src/runtime/os_freebsd_riscv64.go deleted file mode 100644 index 0f2ed5096c8..00000000000 --- a/src/runtime/os_freebsd_riscv64.go +++ /dev/null @@ -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() {} diff --git a/src/runtime/os_linux.go b/src/runtime/os_linux.go index 0ec5e430073..c9d25a5be8d 100644 --- a/src/runtime/os_linux.go +++ b/src/runtime/os_linux.go @@ -356,7 +356,6 @@ func getHugePageSize() uintptr { func osinit() { numCPUStartup = getCPUCount() physHugePageSize = getHugePageSize() - osArchInit() vgetrandomInit() } diff --git a/src/runtime/os_linux_arm.go b/src/runtime/os_linux_arm.go index 5e1274ebab0..46b2dc467cb 100644 --- a/src/runtime/os_linux_arm.go +++ b/src/runtime/os_linux_arm.go @@ -48,8 +48,6 @@ func archauxv(tag, val uintptr) { } } -func osArchInit() {} - //go:nosplit func cputicks() int64 { // nanotime() is a poor approximation of CPU ticks that is enough for the profiler. diff --git a/src/runtime/os_linux_arm64.go b/src/runtime/os_linux_arm64.go index 62cead1d221..ccfb92f8ebd 100644 --- a/src/runtime/os_linux_arm64.go +++ b/src/runtime/os_linux_arm64.go @@ -15,8 +15,6 @@ func archauxv(tag, val uintptr) { } } -func osArchInit() {} - //go:nosplit func cputicks() int64 { // nanotime() is a poor approximation of CPU ticks that is enough for the profiler. diff --git a/src/runtime/os_linux_loong64.go b/src/runtime/os_linux_loong64.go index 03926feb8c5..179ae08e54b 100644 --- a/src/runtime/os_linux_loong64.go +++ b/src/runtime/os_linux_loong64.go @@ -14,5 +14,3 @@ func archauxv(tag, val uintptr) { cpu.HWCap = uint(val) } } - -func osArchInit() {} diff --git a/src/runtime/os_linux_mips64x.go b/src/runtime/os_linux_mips64x.go index 770cc27ba78..778db11221c 100644 --- a/src/runtime/os_linux_mips64x.go +++ b/src/runtime/os_linux_mips64x.go @@ -15,8 +15,6 @@ func archauxv(tag, val uintptr) { } } -func osArchInit() {} - //go:nosplit func cputicks() int64 { // nanotime() is a poor approximation of CPU ticks that is enough for the profiler. diff --git a/src/runtime/os_linux_mipsx.go b/src/runtime/os_linux_mipsx.go index 3807e6d0510..ef5d0b867ed 100644 --- a/src/runtime/os_linux_mipsx.go +++ b/src/runtime/os_linux_mipsx.go @@ -9,8 +9,6 @@ package runtime func archauxv(tag, val uintptr) { } -func osArchInit() {} - //go:nosplit func cputicks() int64 { // nanotime() is a poor approximation of CPU ticks that is enough for the profiler. diff --git a/src/runtime/os_linux_ppc64x.go b/src/runtime/os_linux_ppc64x.go index 25d7ccc0356..9abc9ec3d22 100644 --- a/src/runtime/os_linux_ppc64x.go +++ b/src/runtime/os_linux_ppc64x.go @@ -19,5 +19,3 @@ func archauxv(tag, val uintptr) { cpu.HWCap2 = uint(val) } } - -func osArchInit() {} diff --git a/src/runtime/os_linux_riscv64.go b/src/runtime/os_linux_riscv64.go index 65fa601a299..f4f528c736f 100644 --- a/src/runtime/os_linux_riscv64.go +++ b/src/runtime/os_linux_riscv64.go @@ -9,8 +9,6 @@ import ( "unsafe" ) -func osArchInit() {} - type riscvHWProbePairs = struct { key int64 value uint64 diff --git a/src/runtime/os_linux_s390x.go b/src/runtime/os_linux_s390x.go index 0a1d95975ed..c5c095593c1 100644 --- a/src/runtime/os_linux_s390x.go +++ b/src/runtime/os_linux_s390x.go @@ -17,8 +17,6 @@ func archauxv(tag, val uintptr) { } } -func osArchInit() {} - func checkS390xCPU() { // Check if the present z-system has the hardware capability to carryout // floating point operations. Check if hwcap reflects CPU capability for the diff --git a/src/runtime/os_linux_x86.go b/src/runtime/os_linux_x86.go deleted file mode 100644 index c88f61fa2e9..00000000000 --- a/src/runtime/os_linux_x86.go +++ /dev/null @@ -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() {}