]> Cypherpunks repositories - gostls13.git/commit
[dev.link] cmd/link: support new object file format
authorCherry Zhang <cherryyz@google.com>
Tue, 17 Sep 2019 20:14:37 +0000 (16:14 -0400)
committerCherry Zhang <cherryyz@google.com>
Fri, 4 Oct 2019 15:21:40 +0000 (15:21 +0000)
commit6051fd0ad9f3e9e2ee405da709ee9f087747e4c1
tree6c854a354f6499185c2decdac67b574c68f28681
parentd79380026cd9f3a65e4896e77a7f3fbe1a954934
[dev.link] cmd/link: support new object file format

Parse new object file format in the linker. At least we can link
a hello-world program.

Add a basic "loader", which handles symbol references in the
object file.
- mapping between local and global indices
- resolve by-name references
  (TODO: the overwrite logic isn't implemented yet)

Currently we still create sym.Symbol rather early, and, after all
the object files are loaded and indexed references are resolved,
add all symbols to sym.Symbols.

The code here is probably not going in the final version. This
is basically only for debugging purposes -- to make sure the
writer and the reader work as expected.

Change-Id: I895aeea68326fabdb7e5aa1371b8cac7211a09dd
Reviewed-on: https://go-review.googlesource.com/c/go/+/196032
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/link/internal/ld/go.go
src/cmd/link/internal/ld/lib.go
src/cmd/link/internal/ld/link.go
src/cmd/link/internal/ld/main.go
src/cmd/link/internal/objfile/objfile2.go [new file with mode: 0644]
src/cmd/link/internal/sym/library.go
src/cmd/link/internal/sym/symbols.go