Source file src/runtime/cgo/cgo.go
1 // Copyright 2010 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 /* 6 Package cgo contains runtime support for code generated 7 by the cgo tool. See the documentation for the cgo command 8 for details on using cgo. 9 */ 10 package cgo 11 12 /* 13 14 #cgo darwin,!arm64 LDFLAGS: -lpthread 15 #cgo darwin,arm64 LDFLAGS: -framework CoreFoundation 16 #cgo dragonfly LDFLAGS: -lpthread 17 #cgo freebsd LDFLAGS: -lpthread 18 #cgo android LDFLAGS: -llog 19 #cgo !android,linux LDFLAGS: -lpthread 20 #cgo netbsd LDFLAGS: -lpthread 21 #cgo openbsd LDFLAGS: -lpthread 22 #cgo aix LDFLAGS: -Wl,-berok 23 24 // Use -fno-stack-protector to avoid problems locating the 25 // proper support functions. See issues #52919, #54313, #58385. 26 // Use -Wdeclaration-after-statement because some CI builds use it. 27 #cgo CFLAGS: -Wall -Werror -fno-stack-protector -Wdeclaration-after-statement 28 29 // Use -std=gnu90 to maintain portability; 30 // we don't use c90 because that doesn't permit C++ line comments, 31 // which is just too painful. 32 // We don't do it on windows-386 because it causes test failures. 33 #cgo (!windows||!386) CFLAGS: -std=gnu90 34 35 #cgo solaris CPPFLAGS: -D_POSIX_PTHREAD_SEMANTICS 36 37 */ 38 import "C" 39 40 import "internal/runtime/sys" 41 42 // Incomplete is used specifically for the semantics of incomplete C types. 43 type Incomplete struct { 44 _ sys.NotInHeap 45 } 46