From e133ee95384c98aed9306043cda130a4f74df6d5 Mon Sep 17 00:00:00 2001 From: Quan Yong Zhai Date: Tue, 10 Apr 2012 15:05:22 -0400 Subject: [PATCH] runtime: unregister the SIGILL handler after ARM EABI test Part of issue 3381 R=rsc, minux.ma, dave CC=golang-dev https://golang.org/cl/5969064 --- src/pkg/runtime/rt0_linux_arm.s | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/pkg/runtime/rt0_linux_arm.s b/src/pkg/runtime/rt0_linux_arm.s index e08cf907d9..54ea860dc1 100644 --- a/src/pkg/runtime/rt0_linux_arm.s +++ b/src/pkg/runtime/rt0_linux_arm.s @@ -20,15 +20,23 @@ TEXT _rt0_arm_linux(SB),7,$-4 MOVM.DB.W [R0-R3], (R13) MOVW $4, R0 // SIGILL MOVW R13, R1 // sa - MOVW $0, R2 // old_sa + SUB $16, R13 + MOVW R13, R2 // old_sa MOVW $8, R3 // c MOVW $174, R7 // sys_sigaction BL oabi_syscall<>(SB) - ADD $16, R13 + // do an EABI syscall MOVW $20, R7 // sys_getpid - SWI $0 // this will trigger SIGILL on OABI systems - + SWI $0 // this will trigger SIGILL on OABI systems + + MOVW $4, R0 // SIGILL + MOVW R13, R1 // sa + MOVW $0, R2 // old_sa + MOVW $8, R3 // c + MOVW $174, R7 // sys_sigaction + SWI $0 // restore signal handler + ADD $32, R13 B _rt0_arm(SB) TEXT bad_abi<>(SB),7,$-4