runtime: set isarchive in initsig
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 1 Dec 2016 05:47:58 +0000 (05:47 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 1 Dec 2016 05:47:58 +0000 (05:47 +0000)
    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
libgo/go/runtime/signal1_unix.go

index 323b07cb8c76bad6bac7cc33fd6c5ac4fc0ee34d..8f5f542fcebf6183c2650d5d5a83c23e4078c874 100644 (file)
@@ -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 d21bf4c31d7ad43ae734362ff7e01f10478a6449..48c549104c4aa178021e3ee353b56b95ba592a8d 100644 (file)
@@ -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