1
0
mirror of https://github.com/golang/go synced 2024-11-07 15:46:23 -07:00

[dev.link] cmd/compile, cmd/asm: use bio.Writer for object file writing

It is convenient to have a seekable writer. A later CL will make
use of Seek.

Change-Id: Iba0107ce2975d9a451d97f16aa91a318dd4c90e2
Reviewed-on: https://go-review.googlesource.com/c/go/+/196028
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
This commit is contained in:
Cherry Zhang 2019-09-11 16:11:31 -04:00
parent dc8453964a
commit cd75cf4bc0
3 changed files with 7 additions and 7 deletions

View File

@ -46,12 +46,11 @@ func main() {
architecture.Init(ctxt) architecture.Init(ctxt)
// Create object file, write header. // Create object file, write header.
out, err := os.Create(*flags.OutputFile) buf, err := bio.Create(*flags.OutputFile)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
defer bio.MustClose(out) defer buf.Close()
buf := bufio.NewWriter(bio.MustWriter(out))
if !*flags.SymABIs { if !*flags.SymABIs {
fmt.Fprintf(buf, "go object %s %s %s\n", objabi.GOOS, objabi.GOARCH, objabi.Version) fmt.Fprintf(buf, "go object %s %s %s\n", objabi.GOOS, objabi.GOARCH, objabi.Version)
@ -91,9 +90,8 @@ func main() {
} else { } else {
log.Print("assembly failed") log.Print("assembly failed")
} }
out.Close() buf.Close()
os.Remove(*flags.OutputFile) os.Remove(*flags.OutputFile)
os.Exit(1) os.Exit(1)
} }
buf.Flush()
} }

View File

@ -166,7 +166,7 @@ func dumpLinkerObj(bout *bio.Writer) {
fmt.Fprintf(bout, "\n!\n") fmt.Fprintf(bout, "\n!\n")
obj.WriteObjFile(Ctxt, bout.Writer, myimportpath) obj.WriteObjFile(Ctxt, bout, myimportpath)
} }
func addptabs() { func addptabs() {

View File

@ -8,6 +8,7 @@ package obj
import ( import (
"bufio" "bufio"
"cmd/internal/bio"
"cmd/internal/dwarf" "cmd/internal/dwarf"
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/sys" "cmd/internal/sys"
@ -80,7 +81,8 @@ func newObjWriter(ctxt *Link, b *bufio.Writer, pkgpath string) *objWriter {
} }
} }
func WriteObjFile(ctxt *Link, b *bufio.Writer, pkgpath string) { func WriteObjFile(ctxt *Link, bout *bio.Writer, pkgpath string) {
b := bout.Writer
w := newObjWriter(ctxt, b, pkgpath) w := newObjWriter(ctxt, b, pkgpath)
// Magic header // Magic header