[go] cmd/link: emit better error for duplicated definition

34 views
Skip to first unread message

Cherry Zhang (Gerrit)

unread,
Apr 30, 2021, 8:54:43 PM4/30/21
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Cherry Zhang has uploaded this change for review.

View Change

cmd/link: emit better error for duplicated definition

Print the packages where the duplicates come from.

Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996
---
M src/cmd/link/internal/loader/loader.go
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index 1bfcfe4..1b71a66 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -471,14 +471,14 @@
// new symbol overwrites old symbol.
oldtyp := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
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}
} else {
// old symbol overwrites new symbol.
typ := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
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

To view, visit change 315949. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996
Gerrit-Change-Number: 315949
Gerrit-PatchSet: 1
Gerrit-Owner: Cherry Zhang <cher...@google.com>
Gerrit-Reviewer: Cherry Zhang <cher...@google.com>
Gerrit-MessageType: newchange

Cherry Zhang (Gerrit)

unread,
Apr 30, 2021, 8:55:02 PM4/30/21
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Patch set 1:Run-TryBot +1

View Change

    To view, visit change 315949. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996
    Gerrit-Change-Number: 315949
    Gerrit-PatchSet: 1
    Gerrit-Owner: Cherry Zhang <cher...@google.com>
    Gerrit-Reviewer: Cherry Zhang <cher...@google.com>
    Gerrit-Comment-Date: Sat, 01 May 2021 00:54:57 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Than McIntosh (Gerrit)

    unread,
    May 1, 2021, 8:41:02 AM5/1/21
    to Cherry Zhang, goph...@pubsubhelper.golang.org, Go Bot, golang-co...@googlegroups.com

    Attention is currently required from: Cherry Zhang.

    Patch set 1:Code-Review +2

    View Change

      To view, visit change 315949. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996
      Gerrit-Change-Number: 315949
      Gerrit-PatchSet: 1
      Gerrit-Owner: Cherry Zhang <cher...@google.com>
      Gerrit-Reviewer: Cherry Zhang <cher...@google.com>
      Gerrit-Reviewer: Go Bot <go...@golang.org>
      Gerrit-Reviewer: Than McIntosh <th...@google.com>
      Gerrit-Attention: Cherry Zhang <cher...@google.com>
      Gerrit-Comment-Date: Sat, 01 May 2021 12:40:58 +0000

      Cherry Zhang (Gerrit)

      unread,
      May 1, 2021, 3:17:49 PM5/1/21
      to goph...@pubsubhelper.golang.org, Than McIntosh, Go Bot, golang-co...@googlegroups.com

      View Change

      1 comment:

      To view, visit change 315949. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996
      Gerrit-Change-Number: 315949
      Gerrit-PatchSet: 1
      Gerrit-Owner: Cherry Zhang <cher...@google.com>
      Gerrit-Reviewer: Cherry Zhang <cher...@google.com>
      Gerrit-Reviewer: Go Bot <go...@golang.org>
      Gerrit-Reviewer: Than McIntosh <th...@google.com>
      Gerrit-Comment-Date: Sat, 01 May 2021 19:17:44 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Gerrit-MessageType: comment

      Cherry Zhang (Gerrit)

      unread,
      May 1, 2021, 3:17:51 PM5/1/21
      to goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Than McIntosh, Go Bot, golang-co...@googlegroups.com

      Cherry Zhang submitted this change.

      View Change

      Approvals: Than McIntosh: Looks good to me, approved Cherry Zhang: Trusted; Run TryBots Go Bot: TryBots succeeded
      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 <cher...@google.com>
      Run-TryBot: Cherry Zhang <cher...@google.com>
      TryBot-Result: Go Bot <go...@golang.org>
      Reviewed-by: Than McIntosh <th...@google.com>

      ---
      M src/cmd/link/internal/loader/loader.go
      1 file changed, 2 insertions(+), 2 deletions(-)

      diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
      index 1bfcfe4..1b71a66 100644
      --- a/src/cmd/link/internal/loader/loader.go
      +++ b/src/cmd/link/internal/loader/loader.go
      @@ -471,14 +471,14 @@
      // new symbol overwrites old symbol.
      oldtyp := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
      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}
      } else {
      // old symbol overwrites new symbol.
      typ := sym.AbiSymKindToSymKind[objabi.SymKind(oldsym.Type())]
      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

      To view, visit change 315949. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ib3dc9aa0a3f5ddd97b03744be6d01d4bfcb33996
      Gerrit-Change-Number: 315949
      Gerrit-PatchSet: 2
      Gerrit-Owner: Cherry Zhang <cher...@google.com>
      Gerrit-Reviewer: Cherry Zhang <cher...@google.com>
      Gerrit-Reviewer: Go Bot <go...@golang.org>
      Gerrit-Reviewer: Than McIntosh <th...@google.com>
      Gerrit-MessageType: merged
      Reply all
      Reply to author
      Forward
      0 new messages