mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: use libmsvcrt.a during internal link
When using recent versions of gcc with cgo, internal link fails with c:\>go test debug/pe --- FAIL: TestInternalLinkerDWARF (0.94s) file_test.go:394: building test executable for linktype 2 failed: exit status 2 # command-line-arguments runtime/cgo(.text): relocation target __acrt_iob_func not defined for ABI0 (but is defined for ABI0) runtime/cgo(.text): relocation target __acrt_iob_func not defined for ABI0 (but is defined for ABI0) runtime/cgo(.text): relocation target __acrt_iob_func not defined for ABI0 (but is defined for ABI0) FAIL FAIL debug/pe 4.572s FAIL It appears that __acrt_iob_func is defined in libmsvcrt.a. And this change adds libmsvcrt.a to the list of libraries always used byi internal linker. libmsvcrt.a also implements __imp___acrt_iob_func. So this change also prevents rewriting __imp___acrt_iob_func name into __acrt_iob_func, otherwise we end up with duplicate __acrt_iob_func symbol error. Fixes #23649 Change-Id: Ie9864cd17e907501e9a8a3672bbc33e02ca20e5c Reviewed-on: https://go-review.googlesource.com/c/go/+/197977 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
39cfb7609d
commit
e4c3925925
2 changed files with 25 additions and 3 deletions
|
|
@ -582,6 +582,11 @@ func (ctxt *Link) loadlib() {
|
|||
if p := ctxt.findLibPath("libmingw32.a"); p != "none" {
|
||||
hostArchive(ctxt, p)
|
||||
}
|
||||
// Link libmsvcrt.a to resolve '__acrt_iob_func' symbol
|
||||
// (see https://golang.org/issue/23649 for details).
|
||||
if p := ctxt.findLibPath("libmsvcrt.a"); p != "none" {
|
||||
hostArchive(ctxt, p)
|
||||
}
|
||||
// TODO: maybe do something similar to peimporteddlls to collect all lib names
|
||||
// and try link them all to final exe just like libmingwex.a and libmingw32.a:
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue