This patch by Cherry Zhang changes the libgo runtime to install a
SIGURG handler in c-archive mode.  The precise stack scan uses SIGURG
to trigger a stack scan, so we need to have Go signal handler
installed for SIGURG.  Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu.  Committed to mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE     (revision 268158)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-e3271f3e09337b951822ba5c596d8cfe3b94508e
+d67c4bf0c42b79d54925ba8c5f23278ee6c3efb6
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/go/runtime/signal_unix.go
===================================================================
--- libgo/go/runtime/signal_unix.go     (revision 268158)
+++ libgo/go/runtime/signal_unix.go     (working copy)
@@ -142,8 +142,8 @@ func sigInstallGoHandler(sig uint32) boo
        }
 
        // When built using c-archive or c-shared, only install signal
-       // handlers for synchronous signals and SIGPIPE.
-       if (isarchive || islibrary) && t.flags&_SigPanic == 0 && sig != 
_SIGPIPE {
+       // handlers for synchronous signals, SIGPIPE, and SIGURG.
+       if (isarchive || islibrary) && t.flags&_SigPanic == 0 && sig != 
_SIGPIPE && sig != _SIGURG {
                return false
        }
 

Reply via email to