https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66870
--- Comment #1 from Ian Lance Taylor <ian at airs dot com> --- The various issues in this bug are in different parts of the code base. The bug is assigned to me, but, to be clear, I have no plans to work on anything in the PPC-specific code. For x86, TARGET_CAN_SPLIT_STACK is defined in gcc/config/i386/gnu-user-common.h. The intent of the code in gospec.c is to pass -fsplit-stack and -Wl,-u,pthread_create when linking. When compiling, split stack is turned on by the code in go_langhook_init_options_struct in gcc/go/go-lang.c. When linking, we want to pass -fsplit-stack so that gcc/gcc.c uses STACK_SPLIT_SPEC. If the target defines TARGET_CAN_SPLIT_STACK for all cases where it might support it, I think the code will more or less work even for cases where split stack is not supported. If we don't pass those options, then the split-stack code will not work entirely correctly because new threads won't know their stack size.