aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2016-11-30 02:09:24 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2016-11-30 02:09:24 +0000
commitfbe9724cc368a76c8bb04c822a9877b9096758e6 (patch)
treec1565b1daa9faf905ef5d66188008c4603dd4f77 /gcc
parentf521b29334903c4e3c27d4ef67fbf602ac427df7 (diff)
downloadgcc-fbe9724cc368a76c8bb04c822a9877b9096758e6.zip
gcc-fbe9724cc368a76c8bb04c822a9877b9096758e6.tar.gz
gcc-fbe9724cc368a76c8bb04c822a9877b9096758e6.tar.bz2
runtime: fixes for -buildmode=c-archive
With -buildmode=c-archive, initsig is called before the memory allocator has been initialized. The code was doing a memory allocation because of the call to funcPC(sigtramp). When escape analysis is fully implemented, that call should not allocate. For now, finesse the issue by calling a C function to get the C function pointer value of sigtramp. When returning from a call from C to a Go function, a deferred function is run to go back to syscall mode. When the call occurs on a non-Go thread, that call sets g to nil, making it impossible to add the _defer struct back to the pool. Just drop it and let the garbage collector clean it up. Reviewed-on: https://go-review.googlesource.com/33675 From-SVN: r242992
Diffstat (limited to 'gcc')
-rw-r--r--gcc/go/gofrontend/MERGE2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index fec65b8..ead134c 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-4d8e00e730897cc7e73b1582522ecab031cfcaf2
+1d3e0ceee45012a1c3b4ff7f5119a72f90bfcf6a
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.