mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/cgo: record CGO_LDFLAGS env var in _cgo_flags
cgo stores cgo LDFLAGS in _cgo_flags and _cgo_defun.c. The _cgo_defun.c records the flags via "#pragma cgo_ldflag <flag>", which external linking relies upon for passing libraries (and search paths) to the host linker. The go command will allow LDFLAGS for cgo to be passed through the environment (CGO_LDFLAGS); cgo ignores this environment variable, and so its value doesn't make it into the above mentioned files. This CL changes cgo to record CGO_LDFLAGS also. Fixes #5205. R=iant, minux.ma CC=golang-dev https://golang.org/cl/8465043
This commit is contained in:
parent
5bb3a66a97
commit
afb49aada5
1 changed files with 9 additions and 0 deletions
|
|
@ -208,6 +208,15 @@ func main() {
|
|||
|
||||
p := newPackage(args[:i])
|
||||
|
||||
// Record CGO_LDFLAGS from the environment for external linking.
|
||||
if ldflags := os.Getenv("CGO_LDFLAGS"); ldflags != "" {
|
||||
args, err := splitQuoted(ldflags)
|
||||
if err != nil {
|
||||
fatalf("bad CGO_LDFLAGS: %q (%s)", ldflags, err)
|
||||
}
|
||||
p.addToFlag("LDFLAGS", args)
|
||||
}
|
||||
|
||||
// Need a unique prefix for the global C symbols that
|
||||
// we use to coordinate between gcc and ourselves.
|
||||
// We already put _cgo_ at the beginning, so the main
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue