summaryrefslogtreecommitdiff
path: root/src/runtime/cgo/openbsd.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/cgo/openbsd.go')
-rw-r--r--src/runtime/cgo/openbsd.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/runtime/cgo/openbsd.go b/src/runtime/cgo/openbsd.go
new file mode 100644
index 000000000..61af3a8e7
--- /dev/null
+++ b/src/runtime/cgo/openbsd.go
@@ -0,0 +1,31 @@
+// Copyright 2010 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.
+
+// +build openbsd
+
+package cgo
+
+import _ "unsafe" // for go:linkname
+
+// Supply environ, __progname and __guard_local, because
+// we don't link against the standard OpenBSD crt0.o and
+// the libc dynamic library needs them.
+
+//go:linkname _environ environ
+//go:linkname _progname __progname
+//go:linkname _guard_local __guard_local
+
+var _environ uintptr
+var _progname uintptr
+var _guard_local uintptr
+
+//go:cgo_export_dynamic environ environ
+//go:cgo_export_dynamic __progname __progname
+
+// This is normally marked as hidden and placed in the
+// .openbsd.randomdata section.
+//go:cgo_export_dynamic __guard_local __guard_local
+
+// We override pthread_create to support PT_TLS.
+//go:cgo_export_dynamic pthread_create pthread_create