I got confused about the code where the heap scavenger starts forcegchelper in libgo. This patch corrects the argument passed in. This should fix the segmentation violation reported in PR 56172. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu, where it is less important because the code uses futexes rather than semaphores. Committed to mainline.
Ian
diff -r 192e2bd0c012 libgo/runtime/mheap.c --- a/libgo/runtime/mheap.c Tue Feb 05 14:21:50 2013 -0800 +++ b/libgo/runtime/mheap.c Tue Feb 05 15:56:49 2013 -0800 @@ -405,7 +405,7 @@ // GC blocks other goroutines via the runtime_worldsema. runtime_noteclear(¬e); notep = ¬e; - __go_go(forcegchelper, (void*)¬ep); + __go_go(forcegchelper, (void*)notep); runtime_entersyscall(); runtime_notesleep(¬e); runtime_exitsyscall();