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  

View as plain text