From 6e7f1be7aeabdb64c863f90e317ec1c80920adfa Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 1 Dec 2016 05:47:58 +0000 Subject: [PATCH] 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 --- gcc/go/gofrontend/MERGE | 2 +- libgo/go/runtime/signal1_unix.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 323b07cb8c7..8f5f542fceb 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -9be198d960e4bc46e21e4da1e3d4a1619266b8ab +97b949f249515a61d3c09e9e06f08c8af189e967 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/runtime/signal1_unix.go b/libgo/go/runtime/signal1_unix.go index d21bf4c31d7..48c549104c4 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 -- 2.30.2