]> Cypherpunks repositories - gostls13.git/commit
[dev.link] cmd/compile, cmd/link: move away from DWARF file renumbering
authorThan McIntosh <thanm@google.com>
Thu, 12 Mar 2020 18:10:09 +0000 (14:10 -0400)
committerThan McIntosh <thanm@google.com>
Fri, 20 Mar 2020 16:19:22 +0000 (16:19 +0000)
commit0dff5b0b9e08157e817cfd95ad240ea2509e6644
tree3c47873afcdb04787307443729cba2c1d6e705a2
parent673a02a235a92c3078b78a41f09ad09b0c8c81a4
[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>
src/cmd/internal/obj/objfile.go
src/cmd/link/internal/ld/dwarf.go
src/cmd/link/internal/loader/loader.go