first hardcore commit for supporting gccgo coroutines