This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libgo patch committed: fix isSystemGoroutine


The gc toolchain decides whether a goroutine is a system goroutine by
comparing startpc to a list of saved special PCs.  In gccgo that
approach does not work as startpc is often a thunk that invokes the
real function with arguments, so the thunk address never matches the
saved special PCs.

This patch fixes gccgo's understanding of system goroutines.  Since
there are only a limited number of them, we simply change each one to
mark itself as special.

This fixes stack dumps and functions like runtime.NumGoroutine to
behave more like gc.  It also fixes the goprint test in the gc
testsuite.

Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
to mainline.

Ian

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]