diff mbox

libgo patch committed: Set initarchive in initsig

Message ID CAOyqgcX4HbmxhTnvvA9O2rLeKc98ArV_vRWE_6H=Gn17VUpMug@mail.gmail.com
State New
Headers show

Commit Message

Ian Lance Taylor Dec. 1, 2016, 5:48 a.m. UTC
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.  Bootstrapped and ran Go testsuite
on x86_64-pc-linux-gnu.  Committed to mainline.

Ian
diff mbox

Patch

Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 243084)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -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.
Index: libgo/go/runtime/signal1_unix.go
===================================================================
--- libgo/go/runtime/signal1_unix.go	(revision 243084)
+++ libgo/go/runtime/signal1_unix.go	(working copy)
@@ -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