]> Cypherpunks repositories - gostls13.git/commit
cmd/link: link dynamic library automatically
authorCherry Zhang <cherryyz@google.com>
Thu, 13 Aug 2020 00:27:57 +0000 (20:27 -0400)
committerCherry Zhang <cherryyz@google.com>
Mon, 17 Aug 2020 14:50:17 +0000 (14:50 +0000)
commit7ee26224436d80dca3f7e98c8fcf21185522d8e6
tree7ca5e4c4eff940efd681c93addf815d7d86cf3c0
parenta22ec6e650669f5101c7e0955d82e29d644eef4e
cmd/link: link dynamic library automatically

cgo_import_dynamic pragma indicates a symbol is imported from a
dynamic library. Currently, the linker does not actually link
against the dynamic library, so we have to "force" it by using

//go:cgo_import_dynamic _ _ "dylib"

syntax, which links in the library unconditionally.

This CL changes it to link in the library automatically when a
symbol is imported from the library, without using the "force"
syntax. (The "force" syntax is still supported.)

Remove the unconditional imports in the runtime. Now,
Security.framework and CoreFoundation.framework are only linked
when the x509 package is imported (or otherwise specified).

Fixes #40727.

Change-Id: Ied36b1f621cdcc5dc4a8f497cdf1c554a182d0e0
Reviewed-on: https://go-review.googlesource.com/c/go/+/248333
Run-TryBot: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/link/internal/ld/go.go
src/runtime/sys_darwin.go