aboutsummaryrefslogtreecommitdiff
path: root/libgo/runtime/go-panic.c
AgeCommit message (Collapse)AuthorFilesLines
2016-11-22runtime: rewrite panic/defer code from C to GoIan Lance Taylor1-110/+0
The actual stack unwind code is still in C, but the rest of the code, notably all the memory allocation, is now in Go. The names are changed to the names used in the Go 1.7 runtime, but the code is necessarily somewhat different. The __go_makefunc_can_recover function is dropped, as the uses of it were removed in https://golang.org/cl/198770044. Reviewed-on: https://go-review.googlesource.com/33414 From-SVN: r242715
2016-10-20runtime: rewrite interface code into GoIan Lance Taylor1-2/+1
I started to copy the Go 1.7 interface code, but the gc and gccgo representations of interfaces are too different. So instead I rewrote the gccgo interface code from C to Go. The code is largely the same as it was, but the names are more like those used in the gc runtime. I also copied over the string comparison functions, and tweaked the compiler to use eqstring when comparing strings for equality. Reviewed-on: https://go-review.googlesource.com/31591 From-SVN: r241384
2016-08-30runtime: use -fgo-c-header to build C header fileIan Lance Taylor1-21/+20
Use the new -fgo-c-header option to build a header file for the Go runtime code in libgo/go/runtime, and use the new header file in the C runtime code in libgo/runtime. This will ensure that the Go code and C code share the same data structures as we convert the runtime from C to Go. The new file libgo/go/runtime/runtime2.go is copied from the Go 1.7 release, and then edited to remove unnecessary data structures and modify others for use with libgo. The new file libgo/go/runtime/mcache.go is an initial version of the same files in the Go 1.7 release, and will be replaced by the Go 1.7 file when we convert to the new memory allocator. The new file libgo/go/runtime/type.go describes the gccgo version of the reflection data structures, and replaces the Go 1.7 runtime file which describes the gc version of those structures. Using the new header file means changing a number of struct fields to use Go naming conventions (that is, no underscores) and to rename constants to have a leading underscore so that they are not exported from the Go package. These names were updated in the C code. The C code was also changed to drop the thread-local variable m, as was done some time ago in the gc sources. Now the m field is always accessed using g->m, where g is the single remaining thread-local variable. This in turn required some adjustments to set g->m correctly in all cases. Also pass the new -fgo-compiling-runtime option when compiling the runtime package, although that option doesn't do anything yet. Reviewed-on: https://go-review.googlesource.com/28051 From-SVN: r239872
2014-06-06libgo: Merge to master revision 19184.Ian Lance Taylor1-4/+2
The next revision, 19185, renames several runtime files, and will be handled in a separate change. From-SVN: r211328
2013-12-12runtime: Fix defer of unlock thread at program startup.Ian Lance Taylor1-1/+1
Don't free stack allocated defer block. Also ensure we have a Go context in a few more places before freeing the block. From-SVN: r205940
2013-07-23runtime: Support cgo callbacks from threads started by C.Ian Lance Taylor1-1/+9
This adjusts the extram support to work with gccgo. There are some corresponding changes to cgo in https://codereview.appspot.com/11406047/ . From-SVN: r201179
2012-11-01compiler, runtime: More steps toward separating int and intgo.Ian Lance Taylor1-1/+0
From-SVN: r193059
2012-05-24runtime: Copy runtime_printf from other Go library.Ian Lance Taylor1-4/+4
From-SVN: r187848
2012-03-02libgo: Update to weekly.2012-02-14 release.Ian Lance Taylor1-1/+1
From-SVN: r184798
2011-12-21runtime: Catch signals on altstack, disable splitstack signal blocking.Ian Lance Taylor1-4/+4
From-SVN: r182607
2011-11-30runtime: Copy runtime_panicstring from master library.Ian Lance Taylor1-19/+0
From-SVN: r181830
2011-11-28runtime: Multiplex goroutines onto OS threads.Ian Lance Taylor1-0/+3
From-SVN: r181772
2011-11-14runtime: Use some of 6g runtime.c for easier merging.Ian Lance Taylor1-3/+2
From-SVN: r181368
2011-11-11Introduce G structure and thread-local global g.Ian Lance Taylor1-10/+6
From-SVN: r181301
2011-10-26Update Go library to last weekly.Ian Lance Taylor1-0/+1
From-SVN: r180552
2011-09-16Fix defer when not calling recover in function with named results.Ian Lance Taylor1-0/+6
From-SVN: r178905
2011-03-16Update to current version of Go library (revision 94d654be2064).Ian Lance Taylor1-1/+1
From-SVN: r171076
2010-12-03Add Go frontend, libgo library, and Go testsuite.Ian Lance Taylor1-0/+121
gcc/: * gcc.c (default_compilers): Add entry for ".go". * common.opt: Add -static-libgo as a driver option. * doc/install.texi (Configuration): Mention libgo as an option for --enable-shared. Mention go as an option for --enable-languages. * doc/invoke.texi (Overall Options): Mention .go as a file name suffix. Mention go as a -x option. * doc/frontends.texi (G++ and GCC): Mention Go as a supported language. * doc/sourcebuild.texi (Top Level): Mention libgo. * doc/standards.texi (Standards): Add section on Go language. Move references for other languages into their own section. * doc/contrib.texi (Contributors): Mention that I contributed the Go frontend. gcc/testsuite/: * lib/go.exp: New file. * lib/go-dg.exp: New file. * lib/go-torture.exp: New file. * lib/target-supports.exp (check_compile): Match // Go. From-SVN: r167407