]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/ld: change Cpos to not flush the output buffer
authorMichael Hudson-Doyle <michael.hudson@canonical.com>
Sun, 10 May 2015 23:24:10 +0000 (11:24 +1200)
committerIan Lance Taylor <iant@golang.org>
Mon, 11 May 2015 17:08:36 +0000 (17:08 +0000)
DWARF generation appears to assume Cpos is cheap and this makes linking godoc
about 8% faster and linking the standard library into a single shared library
about 22% faster on my machine.

Updates #10571

Change-Id: I3f81efd0174e356716e7971c4f59810b72378177
Reviewed-on: https://go-review.googlesource.com/9913
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/internal/ld/lib.go

index edafaebb0ba961785ce26f8f265c294658ea16cf..e4e68eae278ea44ed5905e0668e2a21cf032b475 100644 (file)
@@ -1573,12 +1573,11 @@ func Cflush() {
 }
 
 func Cpos() int64 {
-       Cflush()
        off, err := coutbuf.f.Seek(0, 1)
        if err != nil {
                Exitf("seeking in output [0, 1]: %v", err)
        }
-       return off
+       return off + int64(coutbuf.Buffered())
 }
 
 func Cseek(p int64) {