architecture.Init(ctxt)
// Create object file, write header.
- out, err := os.Create(*flags.OutputFile)
+ buf, err := bio.Create(*flags.OutputFile)
if err != nil {
log.Fatal(err)
}
- defer bio.MustClose(out)
- buf := bufio.NewWriter(bio.MustWriter(out))
+ defer buf.Close()
if !*flags.SymABIs {
fmt.Fprintf(buf, "go object %s %s %s\n", objabi.GOOS, objabi.GOARCH, objabi.Version)
} else {
log.Print("assembly failed")
}
- out.Close()
+ buf.Close()
os.Remove(*flags.OutputFile)
os.Exit(1)
}
- buf.Flush()
}
fmt.Fprintf(bout, "\n!\n")
- obj.WriteObjFile(Ctxt, bout.Writer, myimportpath)
+ obj.WriteObjFile(Ctxt, bout, myimportpath)
}
func addptabs() {
import (
"bufio"
+ "cmd/internal/bio"
"cmd/internal/dwarf"
"cmd/internal/objabi"
"cmd/internal/sys"
}
}
-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)
// Magic header