runtime: introduce typedefs and delete struct keywords in mgc0.c

R=rsc
CC=golang-dev
https://codereview.appspot.com/7029055

Committer: Russ Cox <rsc@golang.org>
log/syslog: remove RFC5424 version number for greater compatibility

RFC5424 specifies a version number (currently 1) after the facility and
severity in a syslog message (e.g. <7>1 TIMESTAMP ...).  This causes
rsyslog to fail to parse syslog message because the rest of the message
is not fully compliant with RFC5424.

For the widest compatibility, drop the version (messages are in the
RFC3164 BSD syslog format (e.g. <7>TIMESTAMP ...). Have tested this with
syslog-ng, rsyslog and syslogd.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7036050

Committer: Russ Cox <rsc@golang.org>
runtime: always incorporate hash seed at start of hash computation

Otherwise we can get predictable collisions.

R=golang-dev, dave, patrick, rsc
CC=golang-dev
https://codereview.appspot.com/7051043
cmd/dist: sse auto-detect

R=golang-dev, dsymonds, minux.ma, iant, alex.brainman
CC=golang-dev
https://codereview.appspot.com/7035055
cmd/5g, cmd/5l, cmd/ld: Small adjustments for the Plan 9 native tools

A few USED(xxx) additions and a couple of deletions of variable
initialisations that go unused.  One questionable correction,
mirrored in 8l/asm.c, where the result of invocation of a function
shouldn't be used.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/6736054

Committer: Russ Cox <rsc@golang.org>
cmd/5g, cmd/6g, cmd/8g: flush return parameters in case of panic.

Fixes issue 4066.

R=rsc, minux.ma
CC=golang-dev
https://codereview.appspot.com/7040044
cmd/ld: use native-endian symbol values in symbol table

The Plan 9 symbol table format defines big-endian symbol values
for portability, but we want to be able to generate an ELF object file
and let the host linker link it, as part of the solution to issue 4069.
The symbol table itself, since it is loaded into memory at run time,
must be filled in by the final host linker, using relocation directives
to set the symbol values. On a little-endian machine, the linker will
only fill in little-endian values during relocation, so we are forced
to use little-endian symbol values.

To preserve most of the original portability of the symbol table
format, we make the table itself say whether it uses big- or
little-endian values. If the table begins with the magic sequence
        fe ff ff ff 00 00
then the actual table begins after those six bytes and contains
little-endian symbol values. Otherwise, the table is in the original
format and contains big-endian symbol values. The magic sequence
looks like an "end of table" entry (the fifth byte is zero), so legacy
readers will see a little-endian table as an empty table.

All the gc architectures are little-endian today, so the practical
effect of this CL is to make all the generated tables little-endian,
but if a big-endian system comes along, ld will not generate
the magic sequence, and the various readers will fall back to the
original big-endian interpretation.

R=ken2
CC=golang-dev
https://codereview.appspot.com/7066043
cmd/go: avoid leaking timer if test process failed to start

R=rsc
CC=golang-dev
https://codereview.appspot.com/7034047