commit | 0dff5b0b9e08157e817cfd95ad240ea2509e6644 | [log] [tgz] |
---|---|---|
author | Than McIntosh <thanm@google.com> | Thu Mar 12 14:10:09 2020 -0400 |
committer | Than McIntosh <thanm@google.com> | Fri Mar 20 16:19:22 2020 +0000 |
tree | 3c47873afcdb04787307443729cba2c1d6e705a2 | |
parent | 673a02a235a92c3078b78a41f09ad09b0c8c81a4 [diff] |
[dev.link] cmd/compile, cmd/link: move away from DWARF file renumbering This patch moves the compiler and linker away from the current scheme used to generate file references in DWARF subprogram dies. Up until now the scheme has been to have the compiler emit a special relocation on a DIE file reference that points to the file symbol in question. The linker then reads this relocation and updates the addend to the index of the appropriate file in the line table of the compilation unit of the DIE (the linker emits the comp unit file table, so it knows at that point what number use). The drawback of this scheme is that it requires a lot of relocation processing. With this patch, we switch to having the compiler emit the file index directly, and then have the linker use the compiler-generated file table to emit the line table file section (no renumbering, no relocations, etc). Change-Id: Id4fbe67b28a64200a083e3c5ea358dbe091ec917 Reviewed-on: https://go-review.googlesource.com/c/go/+/223318 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.