1
0
mirror of https://github.com/golang/go synced 2024-10-04 06:21:23 -06:00
go/src/pkg/runtime
Russ Cox 32ecf57d22 runtime: reject onM calls from gsignal stack
The implementation and use patterns of onM assume
that they run on either the m->curg or m->g0 stack.

Calling onM from m->gsignal has two problems:

(1) When not on g0, onM switches to g0 and then "back" to curg.
If we didn't start at curg, bad things happen.

(2) The use of scalararg/ptrarg to pass C arguments and results
assumes that there is only one onM call at a time.
If a gsignal starts running, it may have interrupted the
setup/teardown of the args for an onM on the curg or g0 stack.
Using scalararg/ptrarg itself would smash those.

We can fix (1) by remembering what g was running before the switch.

We can fix (2) by requiring that uses of onM that might happen
on a signal handling stack must save the old scalararg/ptrarg
and restore them after the call, instead of zeroing them.
The only sane way to do this is to introduce a separate
onM_signalsafe that omits the signal check, and then if you
see a call to onM_signalsafe you know the surrounding code
must preserve the old scalararg/ptrarg values.
(The implementation would be that onM_signalsafe just calls
fn if on the signal stack or else jumps to onM. It's not necessary
to have two whole copies of the function.)

(2) is not a problem if the caller and callee are both Go and
a closure is used instead of the scalararg/ptrarg slots.

For now, I think we can avoid calling onM from code executing
on gsignal stacks, so just reject it.

In the long term, (2) goes away (as do the scalararg/ptrarg slots)
once everything is in Go, and at that point fixing (1) would be
trivial and maybe worth doing just for regularity.

LGTM=iant
R=golang-codereviews, iant
CC=dvyukov, golang-codereviews, khr, r
https://golang.org/cl/135400043
2014-09-04 00:10:10 -04:00
..
cgo runtime: translate env*.c to Go 2014-08-30 14:53:47 -04:00
debug runtime,runtime/debug: Converted some functions from goc to Go. 2014-08-24 20:27:00 -07:00
pprof runtime: convert select implementation to Go. 2014-09-02 14:13:29 -07:00
race runtime/race: better handling of atomic operations 2014-09-01 08:04:33 -04:00
alg.go runtime: unify fastrand1 and fastrand2 2014-09-02 14:33:33 -07:00
append_test.go runtime: smarter slice grow 2014-01-27 15:11:12 +04:00
arch_386.go cmd/cc, runtime: preserve C runtime type names in generated Go 2014-08-27 21:59:49 -04:00
arch_386.h cmd/gc: allocate select descriptor on stack 2014-07-20 15:07:10 +04:00
arch_amd64.go cmd/cc, runtime: preserve C runtime type names in generated Go 2014-08-27 21:59:49 -04:00
arch_amd64.h cmd/gc: allocate select descriptor on stack 2014-07-20 15:07:10 +04:00
arch_amd64p32.go cmd/cc, runtime: preserve C runtime type names in generated Go 2014-08-27 21:59:49 -04:00
arch_amd64p32.h cmd/gc: allocate select descriptor on stack 2014-07-20 15:07:10 +04:00
arch_arm.go cmd/cc, runtime: preserve C runtime type names in generated Go 2014-08-27 21:59:49 -04:00
arch_arm.h cmd/gc: allocate select descriptor on stack 2014-07-20 15:07:10 +04:00
asm_386.s runtime: reject onM calls from gsignal stack 2014-09-04 00:10:10 -04:00
asm_amd64.s runtime: reject onM calls from gsignal stack 2014-09-04 00:10:10 -04:00
asm_amd64p32.s runtime: reject onM calls from gsignal stack 2014-09-04 00:10:10 -04:00
asm_arm.s runtime: reject onM calls from gsignal stack 2014-09-04 00:10:10 -04:00
atomic_386.c
atomic_amd64x.c all: nacl import round 2 2014-02-25 17:00:08 -05:00
atomic_arm.c runtime: rename Lock to Mutex 2014-08-27 23:32:49 -04:00
cgocall.c cmd/cgo, runtime: write cgo stub wrappers in Go, not C 2014-09-03 11:36:14 -04:00
cgocall.h cmd/cgo, runtime: write cgo stub wrappers in Go, not C 2014-09-03 11:36:14 -04:00
chan_test.go runtime: add fast paths to non-blocking channel operations 2014-08-25 11:55:42 +04:00
chan.go runtime: introduce, use funcPC to convert Go func to PC 2014-09-03 11:10:38 -04:00
chan.h runtime: convert select implementation to Go. 2014-09-02 14:13:29 -07:00
closure_test.go
compiler.go
complex_test.go
complex.go runtime: convert complex128div to go. 2014-07-25 15:12:45 -07:00
cpuprof.go runtime: adopt race detector for runtime written in Go 2014-09-03 20:47:30 +04:00
crash_cgo_test.go
crash_test.go runtime: start goroutine ids at 1 2014-07-16 12:19:33 +04:00
debug.go runtime: convert cpuprof from C to Go 2014-09-02 00:14:22 -04:00
defs1_linux.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs2_linux.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_android_arm.h all: add GOOS=android 2014-07-01 17:21:50 -04:00
defs_arm_linux.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_darwin_386.h runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
defs_darwin_amd64.h runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
defs_darwin.go
defs_dragonfly_386.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_dragonfly_amd64.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_dragonfly.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_freebsd_386.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_freebsd_amd64.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_freebsd_arm.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_freebsd.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_linux_386.h runtime: fix Linux build 2014-08-30 18:15:55 -07:00
defs_linux_amd64.h cmd/cc: generate error if #pragma pack off does anything 2014-08-30 14:54:09 -04:00
defs_linux_arm.h runtime: fix Linux build 2014-08-30 18:15:55 -07:00
defs_linux.go cmd/cgo: fix handling of defs_linux.go 2014-08-05 18:12:32 -07:00
defs_nacl_386.h all: nacl import round 2 2014-02-25 17:00:08 -05:00
defs_nacl_amd64p32.h runtime: fix nacl/amd64p32 build 2014-08-07 23:47:01 +04:00
defs_nacl_arm.h runtime: nacl/arm support. 2014-07-10 15:14:49 -04:00
defs_netbsd_386.go
defs_netbsd_386.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_netbsd_amd64.go
defs_netbsd_amd64.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_netbsd_arm.go
defs_netbsd_arm.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_netbsd.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_openbsd_386.h runtime: retry fix openbsd build 2014-08-29 23:13:17 -07:00
defs_openbsd_amd64.h runtime: retry fix openbsd build 2014-08-29 23:13:17 -07:00
defs_openbsd.go runtime: retry fix openbsd build 2014-08-29 23:13:17 -07:00
defs_plan9_386.h cmd/cc, runtime: eliminate use of the unnamed substructure C extension 2014-08-07 09:00:02 -04:00
defs_plan9_amd64.h liblink, runtime: preliminary support for plan9/amd64 2014-07-02 21:04:10 +10:00
defs_solaris_amd64.go runtime, net: add support for GOOS=solaris 2014-02-24 22:31:01 -05:00
defs_solaris_amd64.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_solaris.go runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
defs_windows_386.h
defs_windows_amd64.h
defs_windows.go
defs.c runtime: convert mprof.goc to mprof.go 2014-09-01 18:51:12 -04:00
env_plan9.go runtime: handle empty environment variables on Plan 9 2014-09-03 00:56:31 +02:00
env_posix.go runtime: translate env*.c to Go 2014-08-30 14:53:47 -04:00
error.go runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
export_futex_test.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
export_test.go runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
extern.go runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
float.c
funcdata.h runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
futex_test.go runtime: fix flakiness on futexsleep test 2014-03-10 12:20:16 +09:00
gc_test.go runtime: relax flaky GC pause test 2014-09-03 09:54:53 -07:00
gcinfo_test.go cmd/gc, runtime: treat slices and strings like pointers in garbage collection 2014-08-25 14:38:19 -04:00
hash_test.go runtime: test distribution of interface hashes. 2014-08-07 12:33:20 -07:00
hashmap_fast.go runtime: introduce, use funcPC to convert Go func to PC 2014-09-03 11:10:38 -04:00
hashmap.go runtime: introduce, use funcPC to convert Go func to PC 2014-09-03 11:10:38 -04:00
heapdump.c runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
iface_test.go
iface.go runtime: move finalizer thread to Go. 2014-08-28 13:23:10 -07:00
lfstack_test.go runtime: fix TestLFStackStress 2014-01-17 17:42:24 -05:00
lfstack.c runtime: convert lfstack to Go 2014-08-21 21:10:45 +04:00
lock_futex.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
lock_sema.go runtime: give 2 words back in notetsleep_internal 2014-09-03 23:10:15 -04:00
Makefile
malloc_test.go runtime: Loosen conditions in TestMemstat in an attempt to fix the nacl/arm build. 2014-08-25 11:29:53 +04:00
malloc.c runtime: deferproc/deferreturn in Go 2014-09-03 08:49:43 -07:00
malloc.go runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
malloc.h runtime: deferproc/deferreturn in Go 2014-09-03 08:49:43 -07:00
map_test.go src, misc: applied gofmt -s -w 2014-07-16 16:29:51 -07:00
mapspeed_test.go src, misc: applied gofmt -s -w 2014-07-16 16:29:51 -07:00
mcache.c runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
mcentral.c runtime: implement transfer cache 2014-08-18 16:52:31 +04:00
mem_darwin.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_dragonfly.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_freebsd.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_linux.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_nacl.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_netbsd.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_openbsd.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_plan9.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_solaris.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem_windows.c runtime: rename SysAlloc to sysAlloc for Go 2014-08-30 00:54:40 -04:00
mem.go runtime: rewrite malloc in Go. 2014-07-30 09:01:52 -07:00
memclr_386.s runtime: prevent pointless jmp in amd64 and 386 memmove 2014-08-01 06:21:08 -07:00
memclr_amd64.s runtime: prevent pointless jmp in amd64 and 386 memmove 2014-08-01 06:21:08 -07:00
memclr_arm.s runtime: faster memclr on x86. 2014-02-06 17:43:22 -08:00
memclr_plan9_386.s runtime: prevent pointless jmp in amd64 and 386 memmove 2014-08-01 06:21:08 -07:00
memclr_plan9_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
memmove_386.s runtime: prevent pointless jmp in amd64 and 386 memmove 2014-08-01 06:21:08 -07:00
memmove_amd64.s runtime: prevent pointless jmp in amd64 and 386 memmove 2014-08-01 06:21:08 -07:00
memmove_arm.s
memmove_linux_amd64_test.go
memmove_nacl_amd64p32.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
memmove_plan9_386.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
memmove_plan9_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
memmove_test.go runtime: add Benchmark[Clear|Copy]Fat[8|12] 2014-07-21 11:23:29 -07:00
mfinal_test.go runtime: ignore pointers to global objects in SetFinalizer 2014-04-02 10:19:28 +04:00
mfixalloc.c
mgc0.c runtime: Start and stop individual goroutines at gc safepoints 2014-09-03 12:06:36 -04:00
mgc0.go runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
mgc0.h cmd/gc, runtime: treat slices and strings like pointers in garbage collection 2014-08-25 14:38:19 -04:00
mheap.c runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
mknacl.sh all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
mprof.go runtime: convert traceback*.c to Go 2014-09-02 15:12:53 -04:00
msize.c runtime: mark some C globals as having no pointers. 2014-05-31 19:21:17 -04:00
netpoll_epoll.c runtime: fix Linux build 2014-08-30 18:15:55 -07:00
netpoll_kqueue.c runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
netpoll_nacl.c all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
netpoll_solaris.c runtime: allow sysvicall functions to be called from Go 2014-08-29 12:28:09 +02:00
netpoll_stub.c
netpoll_windows.c runtime: allow to call stdcall from Go on windows 2014-08-29 12:44:07 +04:00
netpoll.goc runtime: rename Lock to Mutex 2014-08-27 23:32:49 -04:00
noasm_arm.go runtime: compare only until min(len(s1), len(s2)) 2014-08-28 12:07:52 -04:00
norace_test.go runtime: use RunParallel in more benchmarks 2014-02-24 20:50:12 +04:00
os_android.c runtime: export _rt0 for android 2014-07-07 07:35:39 -04:00
os_android.h all: add GOOS=android 2014-07-01 17:21:50 -04:00
os_darwin.c runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
os_darwin.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_darwin.h runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
os_dragonfly.c runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
os_dragonfly.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_dragonfly.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_freebsd_arm.c
os_freebsd.c runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
os_freebsd.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_freebsd.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_linux_386.c
os_linux_arm.c runtime: remove non-extern decls of runtime.goarm 2013-12-09 19:35:07 -05:00
os_linux.c runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_linux.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_linux.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_nacl_arm.c runtime: nacl/arm support. 2014-07-10 15:14:49 -04:00
os_nacl.c all: remove 'extern register M *m' from runtime 2014-06-26 11:54:39 -04:00
os_nacl.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_nacl.h all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
os_netbsd_386.c
os_netbsd_amd64.c
os_netbsd_arm.c
os_netbsd.c runtime: include constants and defs_*_*.h types in generated Go defs 2014-08-29 16:00:31 -04:00
os_netbsd.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_netbsd.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_openbsd.c runtime: retry fix openbsd build 2014-08-29 23:13:17 -07:00
os_openbsd.go undo CL 135230043 / 60812bad3769 2014-08-30 00:16:07 -04:00
os_openbsd.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_plan9_386.c all: remove 'extern register M *m' from runtime 2014-06-26 11:54:39 -04:00
os_plan9_amd64.c all: remove 'extern register M *m' from runtime 2014-06-26 11:54:39 -04:00
os_plan9.c runtime: fix plan9/windows build 2014-08-07 13:28:10 +04:00
os_plan9.go runtime: include os_*.h in the generated Go structs 2014-09-01 17:25:10 -04:00
os_plan9.h runtime: include os_*.h in the generated Go structs 2014-09-01 17:25:10 -04:00
os_solaris.c runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_solaris.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_solaris.h runtime: rename Sigaltstack to SigaltstackT 2014-08-29 16:11:05 -07:00
os_windows_386.c cmd/{ld,link,objdump}, runtime, debug/gosym: move linker-defined symbols into runtime package 2014-08-27 20:15:05 -04:00
os_windows_386.go runtime: convert traceback*.c to Go 2014-09-02 15:12:53 -04:00
os_windows_amd64.c cmd/{ld,link,objdump}, runtime, debug/gosym: move linker-defined symbols into runtime package 2014-08-27 20:15:05 -04:00
os_windows_amd64.go runtime: convert traceback*.c to Go 2014-09-02 15:12:53 -04:00
os_windows.c runtime: increase windows prof thread priority sooner 2014-09-03 14:17:04 +10:00
os_windows.go runtime: convert lock*.c to Go 2014-08-29 16:20:48 -04:00
os_windows.h runtime: allow to call stdcall from Go on windows 2014-08-29 12:44:07 +04:00
panic.c runtime: deferproc/deferreturn in Go 2014-09-03 08:49:43 -07:00
panic.go runtime: deferproc/deferreturn in Go 2014-09-03 08:49:43 -07:00
parfor_test.go
parfor.c runtime: convert parfor to Go 2014-08-24 11:47:06 +04:00
print1.go runtime: don't allocate a new string in snprintf 2014-09-03 00:56:50 +02:00
proc_test.go runtime: make a test more robust 2014-07-15 10:30:12 +04:00
proc.c runtime: make entersyscall/exitsyscall safe for stack splits 2014-09-03 17:42:35 -04:00
proc.go runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
race0.c runtime: use custom thunks for race calls instead of cgo 2014-03-06 23:48:30 +04:00
race0.go runtime: convert select implementation to Go. 2014-09-02 14:13:29 -07:00
race_amd64.s runtime/race: better handling of atomic operations 2014-09-01 08:04:33 -04:00
race.c runtime: adopt race detector for runtime written in Go 2014-09-03 20:47:30 +04:00
race.go runtime: convert select implementation to Go. 2014-09-02 14:13:29 -07:00
race.h runtime: use custom thunks for race calls instead of cgo 2014-03-06 23:48:30 +04:00
rdebug.go runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
rt0_android_arm.s all: add GOOS=android 2014-07-01 17:21:50 -04:00
rt0_darwin_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_darwin_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_dragonfly_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_dragonfly_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_freebsd_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_freebsd_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_freebsd_arm.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_linux_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_linux_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_linux_arm.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_nacl_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_nacl_amd64p32.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_nacl_arm.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_netbsd_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_netbsd_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_netbsd_arm.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_openbsd_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_openbsd_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_plan9_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_plan9_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_solaris_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_windows_386.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rt0_windows_amd64.s runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
rune.go runtime: implement string ops in Go 2014-06-16 23:03:03 -07:00
runtime_linux_test.go
runtime_test.go runtime: skip crash test on android 2014-07-08 14:47:52 -04:00
runtime_unix_test.go runtime: fix crash in runtime.GoroutineProfile 2013-12-13 15:44:57 -05:00
runtime-gdb.py all: fix "the the" typos. 2014-05-20 14:42:07 -04:00
runtime.c runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
runtime.h runtime: make entersyscall/exitsyscall safe for stack splits 2014-09-03 17:42:35 -04:00
select.go runtime: introduce, use funcPC to convert Go func to PC 2014-09-03 11:10:38 -04:00
sema.go runtime: rename Lock to Mutex 2014-08-27 23:32:49 -04:00
signal_386.c all: remove 'extern register M *m' from runtime 2014-06-26 11:54:39 -04:00
signal_amd64x.c all: remove 'extern register M *m' from runtime 2014-06-26 11:54:39 -04:00
signal_android_386.h all: add GOOS=android 2014-07-01 17:21:50 -04:00
signal_android_arm.h all: add GOOS=android 2014-07-01 17:21:50 -04:00
signal_arm.c runtime: no need to set R9 to m for runtime.sigpanic anymore 2014-08-11 17:10:23 -04:00
signal_darwin_386.h
signal_darwin_amd64.h
signal_dragonfly_386.h
signal_dragonfly_amd64.h
signal_freebsd_386.h
signal_freebsd_amd64.h
signal_freebsd_arm.h
signal_linux_386.h
signal_linux_amd64.h
signal_linux_arm.h
signal_nacl_386.h all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
signal_nacl_amd64p32.h runtime: fix nacl/amd64p32 build 2014-08-07 23:47:01 +04:00
signal_nacl_arm.h runtime: nacl/arm support. 2014-07-10 15:14:49 -04:00
signal_netbsd_386.h
signal_netbsd_amd64.h
signal_netbsd_arm.h
signal_openbsd_386.h
signal_openbsd_amd64.h
signal_solaris_amd64.h runtime, net: add support for GOOS=solaris 2014-02-24 22:31:01 -05:00
signal_unix.c all: remove 'extern register M *m' from runtime 2014-06-26 11:54:39 -04:00
signal_unix.h
signals_android.h all: add GOOS=android 2014-07-01 17:21:50 -04:00
signals_darwin.h
signals_dragonfly.h
signals_freebsd.h runtime: make SIGSYS notifiable on FreeBSD 2014-03-03 07:08:44 +09:00
signals_linux.h runtime: co-exist with NPTL's pthread_cancel. 2014-01-09 09:34:04 -08:00
signals_nacl.h all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
signals_netbsd.h
signals_openbsd.h
signals_plan9.h runtime: fix signal handling on Plan 9 2014-03-13 09:00:12 -07:00
signals_solaris.h runtime, net: add support for GOOS=solaris 2014-02-24 22:31:01 -05:00
signals_windows.h
sigqueue.c runtime: convert sigqueue to Go 2014-08-24 11:50:37 +04:00
sigqueue.go runtime: make onM and mcall take Go func values 2014-09-03 11:35:22 -04:00
slice.go runtime: introduce, use funcPC to convert Go func to PC 2014-09-03 11:10:38 -04:00
softfloat64_test.go
softfloat64.go
softfloat_arm.c runtime: mark global var as NOPTR 2014-07-29 15:18:01 +04:00
sqrt.go runtime: add copy of math.sqrt for use by arm softfloat 2014-05-12 10:55:33 -04:00
stack_gen_test.go runtime: add stack growth tests 2014-03-19 17:22:56 +04:00
stack_test.go runtime: fix Stack 2014-09-01 19:42:22 -04:00
stack.c runtime: make entersyscall/exitsyscall safe for stack splits 2014-09-03 17:42:35 -04:00
stack.go runtime: increase nosplit area to 192 2014-08-30 00:56:52 -04:00
stack.h runtime: increase nosplit area to 192 2014-08-30 00:56:52 -04:00
string_test.go src, misc: applied gofmt -s -w 2014-07-16 16:29:51 -07:00
string.c runtime: don't allocate a new string in printf 2014-08-28 23:26:50 -07:00
string.go runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
stubs.go runtime: reject onM calls from gsignal stack 2014-09-04 00:10:10 -04:00
stubs.goc runtime: convert runtime1.goc, noasm_arm.goc to Go 2014-08-28 10:46:59 -04:00
symtab_test.go
symtab.go runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
sys_arm.c
sys_darwin_386.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_darwin_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_dragonfly_386.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_dragonfly_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_freebsd_386.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_freebsd_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_freebsd_arm.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_linux_386.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_linux_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_linux_arm.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_nacl_386.s runtime: fix nacl/386 build 2014-08-27 23:41:43 -04:00
sys_nacl_amd64p32.s runtime: fix nacl build 2014-08-27 22:50:08 -04:00
sys_nacl_arm.s runtime: fix nacl build 2014-08-27 22:50:08 -04:00
sys_netbsd_386.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_netbsd_amd64.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_netbsd_arm.s cmd/cc, runtime: convert C compilers to use Go calling convention 2014-08-27 11:32:17 -04:00
sys_openbsd_386.s runtime: fix openbsd/386 2014-08-28 14:23:25 -07:00
sys_openbsd_amd64.s runtime: fix openbsd/386 2014-08-28 14:23:25 -07:00
sys_plan9_386.s runtime: fix Plan 9 build for new C calling convention 2014-08-28 16:02:15 -07:00
sys_plan9_amd64.s runtime: translate env*.c to Go 2014-08-30 14:53:47 -04:00
sys_solaris_amd64.s runtime: fix solaris build 2014-08-27 14:52:25 -04:00
sys_windows_386.s runtime: fix windows signal handlers 2014-08-27 14:43:07 -04:00
sys_windows_amd64.s runtime: fix windows signal handlers 2014-08-27 14:43:07 -04:00
sys_x86.c all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
syscall_nacl.h all: merge NaCl branch (part 1) 2014-02-25 09:47:42 -05:00
syscall_solaris.goc runtime: avoid runtime·cgocall in functions called by forkAndExecInChild 2014-03-13 18:26:01 +11:00
syscall_windows_test.go runtime: use VEH, not SEH, for windows/386 exception handling 2014-03-24 21:22:16 -04:00
syscall_windows.go cmd/api: fix for Lock⇒Mutex change 2014-08-27 23:41:10 -04:00
syscall_windows.goc runtime: convert NewCallback and NewCallbackCDecl to Go 2014-08-25 15:59:13 +10:00
thunk.s runtime: convert select implementation to Go. 2014-09-02 14:13:29 -07:00
time.go runtime: rename Lock to Mutex 2014-08-27 23:32:49 -04:00
tls_arm.s runtime: nacl/arm support. 2014-07-10 15:14:49 -04:00
traceback_windows.go runtime: convert a few traceback-related functions from proc.c to traceback.go 2014-09-03 11:11:16 -04:00
traceback.go runtime: convert symtab.c into symtab.go 2014-09-03 13:02:48 -04:00
type.h runtime: convert type algorithms to Go 2014-08-30 08:40:56 +04:00
typekind.go cmd/gc, runtime: refactor interface inlining decision into compiler 2014-08-18 21:13:11 -04:00
typekind.h cmd/gc, runtime: refactor interface inlining decision into compiler 2014-08-18 21:13:11 -04:00
vdso_linux_amd64.c runtime: fix VDSO lookup to use dynamic hash table 2014-06-13 13:29:26 -07:00
vlop_386.s runtime: implement 64 bit division in Go 2014-08-29 09:55:33 -07:00
vlop_arm_test.go
vlop_arm.s runtime: implement 64 bit division in Go 2014-08-29 09:55:33 -07:00
vlrt.c runtime: implement 64 bit division in Go 2014-08-29 09:55:33 -07:00
vlrt.go runtime: deferproc/deferreturn in Go 2014-09-03 08:49:43 -07:00