When I updated to Go 1.8, the initsig function moved from signal1_unix.go to signal_unix.go, and lost a gccgo-specific change in the move. Add it back.
This would have been caught by the misc/cgo/testcarchive tests in the gc repository, but we don't run those in the gccgo repository. We should fix that, somehow. 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 244946) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -f8c451ed42fd71b85afab54a33fc321df0ff3b0b +2c62d5223e814887801b1540162c72b90299d910 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 244484) +++ libgo/go/runtime/signal_unix.go (working copy) @@ -66,6 +66,11 @@ var signalsOK bool //go:nosplit //go:nowritebarrierrec func initsig(preinit bool) { + if preinit { + // preinit is only passed as true if isarchive should be true. + isarchive = true + } + if !preinit { // It's now OK for signal handlers to run. signalsOK = true