runtime: fix plan9/windows build
Fix few remaining cases after cl/117580043.

TBR=dfc
R=golang-codereviews
CC=dave, golang-codereviews
https://codereview.appspot.com/124850043
runtime: convert markallocated from C to Go

benchmark                      old ns/op     new ns/op     delta
BenchmarkMalloc8               28.7          22.4          -21.95%
BenchmarkMalloc16              44.8          33.8          -24.55%
BenchmarkMallocTypeInfo8       49.0          32.9          -32.86%
BenchmarkMallocTypeInfo16      46.7          35.8          -23.34%
BenchmarkMallocLargeStruct     907           901           -0.66%
BenchmarkGobDecode             13235542      12036851      -9.06%
BenchmarkGobEncode             10639699      9539155       -10.34%
BenchmarkJSONEncode            25193036      21898922      -13.08%
BenchmarkJSONDecode            96104044      89464904      -6.91%

Fixes issue 8452.

LGTM=khr
R=golang-codereviews, bradfitz, rsc, dave, khr
CC=golang-codereviews
https://codereview.appspot.com/122090043
cmd/gc: remove ignored debugging arguments in Fconv print

LGTM=dave
R=golang-codereviews, dave
CC=golang-codereviews
https://codereview.appspot.com/123880043
os: in Getwd, $PWD override syscall.Getwd

This makes os.Getwd mimic C getwd on OS X,
and possibly other systems. The change on OS X
was a regression from 1.2 to 1.3.

Fixes issue 8400.

LGTM=bradfitz
R=iant, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/118970043
cmd/cc, runtime: eliminate use of the unnamed substructure C extension

Eliminating use of this extension makes it easier to port the Go runtime
to other compilers. This CL also disables the extension in cc to prevent
accidental use.

LGTM=rsc, khr
R=rsc, aram, khr, dvyukov
CC=axwalk, golang-codereviews
https://codereview.appspot.com/106790044

Committer: Russ Cox <rsc@golang.org>
cmd/fix: mention -help instead of the non-existent -? flag

Update issue 8314

TBR=r
R=golang-codereviews
CC=golang-codereviews
https://codereview.appspot.com/123890043
cmd/addr2line, cmd/nm: factor object reading into cmd/internal/objfile

To do in another CL: make cmd/objdump use cmd/internal/objfile too.

There is a package placement decision in this CL:
cmd/internal/objfile instead of internal/objfile.
I chose to put internal under cmd to make clear (and enforce)
that no standard library packages should use this
(it's a bit dependency-heavy).

LGTM=r
R=r
CC=golang-codereviews
https://codereview.appspot.com/123910043

--HG--
rename : src/cmd/nm/elf.go => src/cmd/internal/objfile/elf.go
rename : src/cmd/nm/goobj.go => src/cmd/internal/objfile/goobj.go
rename : src/cmd/nm/macho.go => src/cmd/internal/objfile/macho.go
rename : src/cmd/nm/pe.go => src/cmd/internal/objfile/pe.go
rename : src/cmd/nm/plan9obj.go => src/cmd/internal/objfile/plan9obj.go
go/build: look in $GOROOT/src/cmd/foo/bar for import cmd/foo/bar

This lets us have non-main packages like cmd/internal or cmd/nm/internal/whatever.

The src/pkg migration (see golang.org/s/go14mainrepo) will allow this
as a natural side effect. The explicit change here just allows use of the
effect a little sooner.

LGTM=r
R=r
CC=golang-codereviews
https://codereview.appspot.com/117630043
encoding/gob: make benchmarks parallel
There are lots of internal synchronization in gob,
so it makes sense to have parallel benchmarks.
Also add a benchmark with slices and interfaces.

LGTM=r
R=golang-codereviews, r
CC=golang-codereviews
https://codereview.appspot.com/115960043
runtime: test distribution of interface hashes.

LGTM=dvyukov
R=dvyukov, khr
CC=golang-codereviews
https://codereview.appspot.com/121030043
cmd/go: pass --build-id=none when generating a cgo .o

Some systems, like Ubuntu, pass --build-id when linking.  The
effect is to put a note in the output file.  This is not
useful when generating an object file with the -r option, as
it eventually causes multiple build ID notes in the final
executable, all but one of which are for tiny portions of the
file and are therefore useless.

Disable that by passing an explicit --build-id=none when
linking with -r on systems that might do this.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/119460043
go/parser: don't do method receiver checks at parse-time

The ast and printer don't care, and go/types can provide
a better error message.

This change requires an update to the tests for go/types
(go.tools repo). CL forthcoming.

Fixes issue 8493.

LGTM=adonovan
R=rsc, adonovan
CC=golang-codereviews
https://codereview.appspot.com/123010044
runtime: fix nacl/amd64p32 build
C compiler does not support unnamed fields.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/124870043
cmd/go: don't pass --buildid=none on FreeBSD

According to the FreeBSD builder, it doesn't work.

TBR=bradfitz
CC=golang-codereviews
https://codereview.appspot.com/121400043
runtime: convert interface routines from C to Go.

LGTM=dvyukov
R=golang-codereviews, dave, bradfitz, dvyukov, khr
CC=golang-codereviews
https://codereview.appspot.com/98510044
doc: add note about crypto/tls cert selection callback.

CC=golang-codereviews
https://codereview.appspot.com/123950043
runtime: convert equality functions to Go

LGTM=rsc
R=rsc, khr
CC=golang-codereviews
https://codereview.appspot.com/121330043
cmd/go: don't pass --buildid=none on OpenBSD

According to the OpenBSD builder, it doesn't work.

TBR=bradfitz
CC=golang-codereviews
https://codereview.appspot.com/126830043
cmd/go: download test dependencies of all named packages

Fixes issue 8181.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/123870043
flag: mention -h in docs

Fixes issue 8314.

LGTM=r
R=r
CC=golang-codereviews
https://codereview.appspot.com/125820043