Commit 064ae118 authored by Hiroshi Ioka's avatar Hiroshi Ioka Committed by Ian Lance Taylor

cmd/link: correct runtime/cgo detection for -linkshared

Current code detect runtime/cgo iff the package or sub packages imports
runtime/cgo directly. However, when we are using linkshared, imported
shared libraries might have already included runtime/cgo.
This CL handles later case by looking an actual runtime/cgo symbol.

Change-Id: I35e7dfdb5e1a939eafc95a0259ee1af9782bc864
Reviewed-on: https://go-review.googlesource.com/56310Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent f52ce422
...@@ -421,7 +421,6 @@ func (ctxt *Link) loadlib() { ...@@ -421,7 +421,6 @@ func (ctxt *Link) loadlib() {
var i int var i int
for i = 0; i < len(ctxt.Library); i++ { for i = 0; i < len(ctxt.Library); i++ {
iscgo = iscgo || ctxt.Library[i].Pkg == "runtime/cgo"
if ctxt.Library[i].Shlib == "" { if ctxt.Library[i].Shlib == "" {
if ctxt.Debugvlog > 1 { if ctxt.Debugvlog > 1 {
ctxt.Logf("%5.2f autolib: %s (from %s)\n", Cputime(), ctxt.Library[i].File, ctxt.Library[i].Objref) ctxt.Logf("%5.2f autolib: %s (from %s)\n", Cputime(), ctxt.Library[i].File, ctxt.Library[i].Objref)
...@@ -439,6 +438,8 @@ func (ctxt *Link) loadlib() { ...@@ -439,6 +438,8 @@ func (ctxt *Link) loadlib() {
} }
} }
iscgo = ctxt.Syms.ROLookup("x_cgo_init", 0) != nil
// We now have enough information to determine the link mode. // We now have enough information to determine the link mode.
determineLinkMode(ctxt) determineLinkMode(ctxt)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment