// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build netbsd #include #include static void threadentry_platform(void) { // On NetBSD, a new thread inherits the signal stack of the // creating thread. That confuses minit, so we remove that // signal stack here before calling the regular mstart. It's // a bit baroque to remove a signal stack here only to add one // in minit, but it's a simple change that keeps NetBSD // working like other OS's. At this point all signals are // blocked, so there is no race. stack_t ss; memset(&ss, 0, sizeof ss); ss.ss_flags = SS_DISABLE; sigaltstack(&ss, NULL); } void (*x_cgo_threadentry_platform)(void) = threadentry_platform;