aboutsummaryrefslogtreecommitdiff
path: root/libgo/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2016-12-01 05:47:58 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2016-12-01 05:47:58 +0000
commit6e7f1be7aeabdb64c863f90e317ec1c80920adfa (patch)
treee58c2df7e7df5f0dc66335b432241c685482b0c3 /libgo/go
parent974afa584b18a3713eb4ada1b5d657ca0f94f498 (diff)
downloadgcc-6e7f1be7aeabdb64c863f90e317ec1c80920adfa.zip
gcc-6e7f1be7aeabdb64c863f90e317ec1c80920adfa.tar.gz
gcc-6e7f1be7aeabdb64c863f90e317ec1c80920adfa.tar.bz2
runtime: set isarchive in initsig
The library initialization code in go-libmain.c sets the C variable runtime_isarchive but failed to set the Go variable runtime.isarchive. We don't currently have a way to let C code access an unexported Go variable, but fortunately the only time the Go function initsig is called with an argument of true is exactly where we want to set isarchive. So let initsig do it. Reviewed-on: https://go-review.googlesource.com/33753 From-SVN: r243094
Diffstat (limited to 'libgo/go')
-rw-r--r--libgo/go/runtime/signal1_unix.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/libgo/go/runtime/signal1_unix.go b/libgo/go/runtime/signal1_unix.go
index d21bf4c..48c5491 100644
--- a/libgo/go/runtime/signal1_unix.go
+++ b/libgo/go/runtime/signal1_unix.go
@@ -65,6 +65,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