mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: emit better error for duplicated definition
Print the packages where the duplicates come from. Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996 Reviewed-on: https://go-review.googlesource.com/c/go/+/315949 Trust: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
d7473fd907
commit
053fe2f485
1 changed files with 2 additions and 2 deletions
|
|
@ -471,14 +471,14 @@ func (st *loadState) addSym(name string, ver int, r *oReader, li uint32, kind in
|
||||||
// new symbol overwrites old symbol.
|
// new symbol overwrites old symbol.
|
||||||
oldtyp := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
|
oldtyp := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
|
||||||
if !(oldtyp.IsData() && oldr.DataSize(oldli) == 0) {
|
if !(oldtyp.IsData() && oldr.DataSize(oldli) == 0) {
|
||||||
log.Fatalf("duplicated definition of symbol " + name)
|
log.Fatalf("duplicated definition of symbol %s, from %s and %s", name, r.unit.Lib.Pkg, oldr.unit.Lib.Pkg)
|
||||||
}
|
}
|
||||||
l.objSyms[oldi] = objSym{r.objidx, li}
|
l.objSyms[oldi] = objSym{r.objidx, li}
|
||||||
} else {
|
} else {
|
||||||
// old symbol overwrites new symbol.
|
// old symbol overwrites new symbol.
|
||||||
typ := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
|
typ := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
|
||||||
if !typ.IsData() { // only allow overwriting data symbol
|
if !typ.IsData() { // only allow overwriting data symbol
|
||||||
log.Fatalf("duplicated definition of symbol " + name)
|
log.Fatalf("duplicated definition of symbol %s, from %s and %s", name, r.unit.Lib.Pkg, oldr.unit.Lib.Pkg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return oldi
|
return oldi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue