On Thu, Jan 18, 2018 at 11:53 AM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > >> This patch to the Go frontend by Cherry Zhang enables escape analysis >> for the runtime package in the Go frontend. The runtime package was >> hard-coded non-escape, and the escape analysis was not run for the >> runtime package. This patch removes the hard-code, and lets the >> escape analysis decide. It is not allowed for local variables and >> closures in the runtime to be heap allocated. This patch adds the >> check that make sure that they indeed do not escape. >> >> The escape analysis is always run when compiling the runtime now. >> >> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed >> to mainline. > > this broke Solaris bootstrap: > > /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:182:57: > error: n escapes to heap, not allowed in runtime > if port_getn(portfd, &events[0], uint32(len(events)), &n, wait) < 0 { > ^ > /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:176:11: > error: zero escapes to heap, not allowed in runtime > wait = &zero > ^ > /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:174:6: error: > .runtime.zero escapes to heap, not allowed in runtime > var zero timespec > ^ > /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:179:6: error: > .runtime.events escapes to heap, not allowed in runtime > var events [128]portevent > ^ > /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:181:6: error: > .runtime.n escapes to heap, not allowed in runtime > var n uint32 = 1 > ^ > > Fixed as follows. i386-pc-solaris2.11 and sparc-sun-solaris2.11 builds > have completed, make check still running.
Thanks, patch committed. Ian