aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqmuntal <quimmuntal@gmail.com>2023-01-23 12:59:29 +0100
committerQuim Muntal <quimmuntal@gmail.com>2023-01-24 12:56:06 +0000
commit7b5a34418cd32ec4d2c0f7d6e4c7e6fe7585a17f (patch)
treea14b2e6edcbbdd789633f924f4d0af222c183e23
parentcf9263dee1bb160f013a080bbda3532a7d35da15 (diff)
downloadgo-7b5a34418cd32ec4d2c0f7d6e4c7e6fe7585a17f.tar.xz
runtime: remove unused badsignal2 on windows
This CL removes badsignal2 function, as it is unused on Windows. badsignal2 was originally intended to abort the process when an exception was raised on a non-Go thread, following the same approach as Linux and others. Since it was added, back on https://golang.org/cl/5797068, it has caused several issues on Windows, see #8224 and #50877. That's because we can't know wether the signal is bad or not, as our trap might not be at the end of the exception handler chain. To fix those issues, https://golang.org/cl/104200046 and CL 442896 stopped calling badsignal2, and CL 458135 removed one last incorrect call on amd64 and 386. Change-Id: I5bd31ee2672118ae0f1a2c8b46a1bb0f4893a011 Reviewed-on: https://go-review.googlesource.com/c/go/+/463116 Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Quim Muntal <quimmuntal@gmail.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
-rw-r--r--src/runtime/os_windows.go2
-rw-r--r--src/runtime/signal_windows.go19
-rw-r--r--src/runtime/sys_windows_386.s22
-rw-r--r--src/runtime/sys_windows_amd64.s24
-rw-r--r--src/runtime/sys_windows_arm.s24
-rw-r--r--src/runtime/sys_windows_arm64.s26
6 files changed, 0 insertions, 117 deletions
diff --git a/src/runtime/os_windows.go b/src/runtime/os_windows.go
index 44718f1d21..60741f321f 100644
--- a/src/runtime/os_windows.go
+++ b/src/runtime/os_windows.go
@@ -546,8 +546,6 @@ func initLongPathSupport() {
func osinit() {
asmstdcallAddr = unsafe.Pointer(abi.FuncPCABI0(asmstdcall))
- setBadSignalMsg()
-
loadOptionalSyscalls()
disableWER()
diff --git a/src/runtime/signal_windows.go b/src/runtime/signal_windows.go
index 0686be4635..1ea0d1e06c 100644
--- a/src/runtime/signal_windows.go
+++ b/src/runtime/signal_windows.go
@@ -375,19 +375,6 @@ func sigpanic() {
throw("fault")
}
-var (
- badsignalmsg [100]byte
- badsignallen int32
-)
-
-func setBadSignalMsg() {
- const msg = "runtime: signal received on thread not created by Go.\n"
- for i, c := range msg {
- badsignalmsg[i] = byte(c)
- badsignallen++
- }
-}
-
// Following are not implemented.
func initsig(preinit bool) {
@@ -402,12 +389,6 @@ func sigdisable(sig uint32) {
func sigignore(sig uint32) {
}
-func badsignal2()
-
-func raisebadsignal(sig uint32) {
- badsignal2()
-}
-
func signame(sig uint32) string {
return ""
}
diff --git a/src/runtime/sys_windows_386.s b/src/runtime/sys_windows_386.s
index 0983cc7b1f..d120746bb6 100644
--- a/src/runtime/sys_windows_386.s
+++ b/src/runtime/sys_windows_386.s
@@ -44,28 +44,6 @@ TEXT runtime·asmstdcall(SB),NOSPLIT,$0
RET
-TEXT runtime·badsignal2(SB),NOSPLIT,$24
- // stderr
- MOVL $-12, 0(SP)
- MOVL SP, BP
- CALL *runtime·_GetStdHandle(SB)
- MOVL BP, SP
-
- MOVL AX, 0(SP) // handle
- MOVL $runtime·badsignalmsg(SB), DX // pointer
- MOVL DX, 4(SP)
- MOVL runtime·badsignallen(SB), DX // count
- MOVL DX, 8(SP)
- LEAL 20(SP), DX // written count
- MOVL $0, 0(DX)
- MOVL DX, 12(SP)
- MOVL $0, 16(SP) // overlapped
- CALL *runtime·_WriteFile(SB)
-
- // Does not return.
- CALL runtime·abort(SB)
- RET
-
// faster get/set last error
TEXT runtime·getlasterror(SB),NOSPLIT,$0
MOVL 0x34(FS), AX
diff --git a/src/runtime/sys_windows_amd64.s b/src/runtime/sys_windows_amd64.s
index 04e649539c..7cab08efa6 100644
--- a/src/runtime/sys_windows_amd64.s
+++ b/src/runtime/sys_windows_amd64.s
@@ -75,30 +75,6 @@ loadregs:
RET
-TEXT runtime·badsignal2(SB),NOSPLIT|NOFRAME,$48
- // stderr
- MOVQ $-12, CX // stderr
- MOVQ CX, 0(SP)
- MOVQ runtime·_GetStdHandle(SB), AX
- CALL AX
-
- MOVQ AX, CX // handle
- MOVQ CX, 0(SP)
- MOVQ $runtime·badsignalmsg(SB), DX // pointer
- MOVQ DX, 8(SP)
- MOVL $runtime·badsignallen(SB), R8 // count
- MOVQ R8, 16(SP)
- LEAQ 40(SP), R9 // written count
- MOVQ $0, 0(R9)
- MOVQ R9, 24(SP)
- MOVQ $0, 32(SP) // overlapped
- MOVQ runtime·_WriteFile(SB), AX
- CALL AX
-
- // Does not return.
- CALL runtime·abort(SB)
- RET
-
// faster get/set last error
TEXT runtime·getlasterror(SB),NOSPLIT,$0
MOVQ 0x30(GS), AX
diff --git a/src/runtime/sys_windows_arm.s b/src/runtime/sys_windows_arm.s
index a00fd16670..78cc3333c7 100644
--- a/src/runtime/sys_windows_arm.s
+++ b/src/runtime/sys_windows_arm.s
@@ -76,30 +76,6 @@ loadregs:
MOVM.IA.W (R13), [R4, R5, R15]
-TEXT runtime·badsignal2(SB),NOSPLIT|NOFRAME,$0
- MOVM.DB.W [R4, R14], (R13) // push {r4, lr}
- MOVW R13, R4 // save original stack pointer
- SUB $8, R13 // space for 2 variables
- BIC $0x7, R13 // alignment for ABI
-
- // stderr
- MOVW runtime·_GetStdHandle(SB), R1
- MOVW $-12, R0
- BL (R1)
-
- MOVW $runtime·badsignalmsg(SB), R1 // lpBuffer
- MOVW $runtime·badsignallen(SB), R2 // lpNumberOfBytesToWrite
- MOVW (R2), R2
- ADD $0x4, R13, R3 // lpNumberOfBytesWritten
- MOVW $0, R12 // lpOverlapped
- MOVW R12, (R13)
-
- MOVW runtime·_WriteFile(SB), R12
- BL (R12)
-
- // Does not return.
- B runtime·abort(SB)
-
TEXT runtime·getlasterror(SB),NOSPLIT,$0
MRC 15, 0, R0, C13, C0, 2
MOVW 0x34(R0), R0
diff --git a/src/runtime/sys_windows_arm64.s b/src/runtime/sys_windows_arm64.s
index 67fe21b2d0..ab6944c9ea 100644
--- a/src/runtime/sys_windows_arm64.s
+++ b/src/runtime/sys_windows_arm64.s
@@ -99,32 +99,6 @@ _0args:
LDP.P 32(RSP), (R29, R30)
RET
-TEXT runtime·badsignal2(SB),NOSPLIT,$16-0
- NO_LOCAL_POINTERS
-
- // stderr
- MOVD runtime·_GetStdHandle(SB), R1
- MOVD $-12, R0
- SUB $16, RSP // skip over saved frame pointer below RSP
- BL (R1)
- ADD $16, RSP
-
- // handle in R0 already
- MOVD $runtime·badsignalmsg(SB), R1 // lpBuffer
- MOVD $runtime·badsignallen(SB), R2 // lpNumberOfBytesToWrite
- MOVD (R2), R2
- // point R3 to stack local that will receive number of bytes written
- ADD $16, RSP, R3 // lpNumberOfBytesWritten
- MOVD $0, R4 // lpOverlapped
- MOVD runtime·_WriteFile(SB), R12
- SUB $16, RSP // skip over saved frame pointer below RSP
- BL (R12)
-
- // Does not return.
- B runtime·abort(SB)
-
- RET
-
TEXT runtime·getlasterror(SB),NOSPLIT|NOFRAME,$0
MOVD TEB_error(R18_PLATFORM), R0
MOVD R0, ret+0(FP)