[dev.link] cmd/compile: finish all data generation before writing object file

Currently, at the end of compilation, the compiler writes out the
export data, the linker object file header, then does more
code/data generation, then writes the main content of the linker
object file. This CL refactors it to finish all the code/data
generation before writing any output file.

A later CL will inject some code that operates on all defined
symbols before writing the output. This ensures all the symbols
are available at that point.

Change-Id: I97d946553fd0ffd298234c520219540d29783576
Reviewed-on: https://go-review.googlesource.com/c/go/+/196027
Reviewed-by: Than McIntosh <thanm@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Cherry Zhang 2019-09-11 16:03:59 -04:00
parent 55738850c4
commit dc8453964a
2 changed files with 18 additions and 15 deletions

View file

@ -723,6 +723,7 @@ func Main(archInit func(*Arch)) {
// Write object data to disk.
timings.Start("be", "dumpobj")
dumpdata()
dumpobj()
if asmhdr != "" {
dumpasmhdr()