]> Cypherpunks repositories - gostls13.git/log
gostls13.git
10 years agocmd/internal/ld: make ELF constants explicit
Michael Hudson-Doyle [Tue, 3 Mar 2015 21:28:18 +0000 (10:28 +1300)]
cmd/internal/ld: make ELF constants explicit

c2go produced accurate but complex constant definitions like
"ElfSymBindLocal  = 0 + iota - 67" which break when any constants
are added above them in the list. Change them to explicit values
in separate blocks by class. I wrote a little program (using awk)
to dump the values of the constants:

    https://gist.github.com/mwhudson/82f82008279a38ce584e

and confirmed that its output before and after this change is the
same.

Change-Id: Ib4aea4a0d688a16cdcb76af4715d1a97ec0f013c
Reviewed-on: https://go-review.googlesource.com/6581
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/internal/gc: clean up liveness code
Russ Cox [Tue, 3 Mar 2015 02:25:33 +0000 (21:25 -0500)]
cmd/internal/gc: clean up liveness code

- use Bvec, not *Bvec, and bulk allocate backing store
- use range loops
- put Bvecs in BasicBlock struct instead of indexing into parallel slices

Change-Id: I5cb30f50dccb4d38cc18fae422f7f132c52876be
Reviewed-on: https://go-review.googlesource.com/6602
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/internal/gc: manual goto removal + grind to move var decls
Russ Cox [Tue, 3 Mar 2015 01:34:22 +0000 (20:34 -0500)]
cmd/internal/gc: manual goto removal + grind to move var decls

Also change gc.Naddr to return the Addr instead of filling it in.

Change-Id: I98a86705d23bee49626a12a042a4d51cabe290ea
Reviewed-on: https://go-review.googlesource.com/6601
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/internal/gc: replace hash tables with Go maps
Russ Cox [Mon, 2 Mar 2015 21:21:15 +0000 (16:21 -0500)]
cmd/internal/gc: replace hash tables with Go maps

The C version of the compiler had just one hash table,
indexed by a (name string, pkg *Pkg) pair.
Because we always know the pkg during a lookup,
replace the one table with a per-Pkg map[string]*Sym.
This also lets us do non-allocating []byte key lookups.

This CL *does* change the generated object files.
In the old code, export data and init calls were emitted
in "hash table order". Now they are emitted in the order
in which they were added to the table.

Change-Id: I5a48d5c9add996dc43ad04a905641d901522de0b
Reviewed-on: https://go-review.googlesource.com/6600
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/internal/gc: delete Strlit, Zconv
Russ Cox [Mon, 2 Mar 2015 21:03:26 +0000 (16:03 -0500)]
cmd/internal/gc: delete Strlit, Zconv

Strlit was just a poor excuse for a Go string.
Use a Go string.
In the one case where it was a string-or-nil (Type.Note), use a *string.

Zconv was a poor excuse for %q. Use %q.
The only important part about Zconv's implementation
was that the compiler and linker agreed on the quoting rules.
Now they both use %q instead of having two Zconvs.

This CL *does* change the generated object files, because the
quoted strings end up in symbol names.
For example the string "\r\n" used to be named go.string."\r\n"
and is now go.string."\x0d\n".

Change-Id: I5c0d38e1570ffc495f0db1a20273c9564104a7e8
Reviewed-on: https://go-review.googlesource.com/6519
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/internal/gc: change proginfo to return ProgInfo instead of writing to param
Russ Cox [Mon, 2 Mar 2015 20:22:19 +0000 (15:22 -0500)]
cmd/internal/gc: change proginfo to return ProgInfo instead of writing to param

This avoids the argument appearing to escape
(due to the fact that proginfo is always called
via a function pointer).

Change-Id: Ib9351ba18c80fd89e6a1d4f19dea386d4c657337
Reviewed-on: https://go-review.googlesource.com/6518
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/5g etc: mechanical cleanup
Russ Cox [Mon, 2 Mar 2015 19:22:05 +0000 (14:22 -0500)]
cmd/5g etc: mechanical cleanup

Run rsc.io/grind rev 796d0f2 on C->Go conversions.

This replaces various awkward := initializations with plain var declarations.

Checked bit-for-bit compatibility with toolstash + buildall.

Change-Id: I601101d8177894adb9b0e3fb55dfe0ed4f544716
Reviewed-on: https://go-review.googlesource.com/6517
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agomisc/ios: extra stdout check before run
David Crawshaw [Tue, 3 Mar 2015 19:18:56 +0000 (14:18 -0500)]
misc/ios: extra stdout check before run

On one recent job I saw an unexpected SIGSTOP, which I suspect is
simply the job timeout. But the lack of other diagnostics suggests
lldb just didn't see the "run" command.

-----

process handle SIGHUP  --stop false --pass true --notify false
process handle SIGPIPE --stop false --pass true --notify false
process handle SIGUSR1 --stop false --pass true --notify false
process handle SIGSEGV --stop false --pass true --notify false
process handle SIGBUS  --stop false --pass true --notify false
breakpoint set -n getwd
run
(lldb) NAME        PASS   STOP   NOTIFY
==========  =====  =====  ======
SIGHUP      true   false  false
(lldb) NAME        PASS   STOP   NOTIFY
==========  =====  =====  ======
SIGPIPE     true   false  false
(lldb) NAME        PASS   STOP   NOTIFY
==========  =====  =====  ======
SIGUSR1     true   false  false
(lldb) NAME        PASS   STOP   NOTIFY
==========  =====  =====  ======
SIGSEGV     true   false  false
(lldb) NAME        PASS   STOP   NOTIFY
==========  =====  =====  ======
SIGBUS      true   false  false
(lldb) Breakpoint 1: where = libsystem_c.dylib`getwd, address = 0x2f7f7294
(lldb) Process 23755 stopped
* thread #1: tid = 0x104c02, 0x1febb000 dyld`_dyld_start, stop reason = signal SIGSTOP
    frame #0: 0x1febb000 dyld`_dyld_start
dyld`_dyld_start:
-> 0x1febb000:  mov    r8, sp
   0x1febb004:  sub    sp, sp, #0x10
   0x1febb008:  bic    sp, sp, #0x7
   0x1febb00c:  ldr    r3, [pc, #112]            ; _dyld_start + 132
(lldb) go_darwin_arm_exec: timeout (stage br getwd)
FAIL compress/gzip 359.226s

Change-Id: Ifc2123f5ceaa6d3f9b31bb5cb6e77a2c8ec23818
Reviewed-on: https://go-review.googlesource.com/6613
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agogo/build: skip GOROOT tests on darwin/arm
David Crawshaw [Tue, 3 Mar 2015 19:55:04 +0000 (14:55 -0500)]
go/build: skip GOROOT tests on darwin/arm

Change-Id: If2d303caae933eec61634152e5d83faaba591315
Reviewed-on: https://go-review.googlesource.com/6660
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agocmd/internal/obj/arm: fix arm build
Rob Pike [Tue, 3 Mar 2015 18:12:26 +0000 (10:12 -0800)]
cmd/internal/obj/arm: fix arm build

Mishandled the mask for the arm instructions.

TBR=rsc

Change-Id: Idc596097c0fa61dcacdfb4aca5bc6d0b4fd40eeb
Reviewed-on: https://go-review.googlesource.com/6641
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime: remove makeStringSlice
David Crawshaw [Tue, 3 Mar 2015 17:25:36 +0000 (12:25 -0500)]
runtime: remove makeStringSlice

Change-Id: I38d716de9d5a9c1b868641262067d0456d52c86d
Reviewed-on: https://go-review.googlesource.com/6612
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agoruntime: Update open/close/read/write to return -1 on error.
Keith Randall [Tue, 3 Mar 2015 04:16:48 +0000 (20:16 -0800)]
runtime: Update open/close/read/write to return -1 on error.

Error detection code copied from syscall, where presumably
we actually do it right.

Note that we throw the errno away.  The runtime doesn't use it.

Fixes #10052

Change-Id: I8de77dda6bf287276b137646c26b84fa61554ec8
Reviewed-on: https://go-review.googlesource.com/6571
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agocmd/internal/obj: switch to one global Aconv
Rob Pike [Tue, 3 Mar 2015 04:17:20 +0000 (20:17 -0800)]
cmd/internal/obj: switch to one global Aconv

Aconv is the pretty-printer for instruction opcodes like AMOVQ.
There was one for each architecture.
Make the space of A names have a different region for each architecture,
much as we did for the registers, so a single global Aconv function can
do the work. Each architecture registers its region as a slice of names
at a given offset.

The global names like CALL and JMP are now defined only once.

The A values are used for indexing tables, so make it easy to do the
indexing by making the offset maskable.

Remove a bunch of now-duplicated architecture-specific code.

Change-Id: Ib15647b7145a1c089e21e36543691a19e146b60e
Reviewed-on: https://go-review.googlesource.com/6620
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Rob Pike <r@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agocmd/internal/ld: fix darwin/386
Russ Cox [Tue, 3 Mar 2015 15:47:15 +0000 (10:47 -0500)]
cmd/internal/ld: fix darwin/386

grind's goto inliner moved a continue and changed its meaning. Oops.

Change-Id: Ifa2d3e1427036a606a069f356cd9b586ef22ec84
Reviewed-on: https://go-review.googlesource.com/6610
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agocmd/internal/ld: minor int to bool cleanup
Brad Fitzpatrick [Mon, 2 Mar 2015 19:31:29 +0000 (11:31 -0800)]
cmd/internal/ld: minor int to bool cleanup

Change-Id: I3078385f5e7c92fbf99af7c4ae8918c86b9f86c9
Reviewed-on: https://go-review.googlesource.com/6500
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

10 years agotime: zoneinfo support for darwin
David Crawshaw [Tue, 3 Mar 2015 12:45:06 +0000 (07:45 -0500)]
time: zoneinfo support for darwin

Roll forward of 54efdc596f7b. Better testing of the build on
darwin/amd64. There is still some variance between cmd/dist
and the Go tool for build tag handling.

Change-Id: I105669ae7f90c8c89b3839c04b182cff46be8dde
Reviewed-on: https://go-review.googlesource.com/6516
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agoencoding/xml: fix namespaces in a>b tags
Roger Peppe [Wed, 25 Feb 2015 13:42:54 +0000 (13:42 +0000)]
encoding/xml: fix namespaces in a>b tags

Previously, if there was a namespace defined on
a a>b tag, the namespace was ignored when
printing the parent elements. This fixes that,
and also fixes the racy behaviour of printerStack.trim
as discussed in https://go-review.googlesource.com/#/c/4152/10 .

Fixes #9796.

Change-Id: I75f97f67c08bbee151d1e0970f8462dd0f4511ef
Reviewed-on: https://go-review.googlesource.com/5910
Reviewed-by: Nigel Tao <nigeltao@golang.org>
10 years agocmd/{5,6,8,9}g, cmd/internal/gc: use bools for is* and okfor*
Josh Bleecher Snyder [Sun, 1 Mar 2015 07:54:01 +0000 (07:54 +0000)]
cmd/{5,6,8,9}g, cmd/internal/gc: use bools for is* and okfor*

No functional changes.

This diff was generated as follows:

* Manually edit cmd/internal/gc/go.go to update types and group variables.
* Manually edit initialization in cmd/internal/gc/align.go--localized s/1/true.
* Manually fix the handling of sign in cmd/internal/gc/walk.go in func bounded (near line 4000).
* Manually update go.y and regenerate y.go.
* Run gofmt -r many times to do the rest, using https://gist.github.com/josharian/0f61dbb2dff81f938e70.

toolstash -cmp on the stdlib comes back green.

Change-Id: I19766ed551714e51b325133e7138818d117b3a9a
Reviewed-on: https://go-review.googlesource.com/6530
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agocmd/internal/gc: clean up switch code
Josh Bleecher Snyder [Fri, 27 Feb 2015 20:44:45 +0000 (20:44 +0000)]
cmd/internal/gc: clean up switch code

This CL makes the switch walking and typechecking code
more idiomatic and adds documentation.
It also removes all but one global variable.

No functional changes. Confirmed with toolstash -cmp on the stdlib.

Change-Id: Ic3f38acc66e906edd722498839aeb557863639cf
Reviewed-on: https://go-review.googlesource.com/6268
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agosyscall: fix parsing ipv6 address prefix on dragonfly
Mikio Hara [Sun, 1 Mar 2015 14:58:28 +0000 (23:58 +0900)]
syscall: fix parsing ipv6 address prefix on dragonfly

This change fixes a missing case that a routing address contains an
invalid address family label but it holds a valid length of address
structure.

Also makes test robust.

Fixes #10041.

Change-Id: I2480ba273929e859896697382d1a75b01a116b98
Reviewed-on: https://go-review.googlesource.com/6391
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoRevert "time: zoneinfo support on darwin/arm"
David Crawshaw [Tue, 3 Mar 2015 02:34:02 +0000 (02:34 +0000)]
Revert "time: zoneinfo support on darwin/arm"

This reverts commit 54efdc596f7b6c711e5d65d99f1c25a0ca3628f1.

Broken on darwin.

Change-Id: Ic74275f36d30975263340e2b4045226eae71b16a
Reviewed-on: https://go-review.googlesource.com/6514
Reviewed-by: David Crawshaw <crawshaw@golang.org>
10 years agotime: zoneinfo support on darwin/arm
David Crawshaw [Mon, 2 Mar 2015 21:01:20 +0000 (16:01 -0500)]
time: zoneinfo support on darwin/arm

A future change will include an NSTimeZone hook so we can determine
the device's current time zone.

Change-Id: Ia4bd6b955e4cb720c518055541b66ff57a4dd303
Reviewed-on: https://go-review.googlesource.com/6511
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: David Crawshaw <crawshaw@golang.org>

10 years agomisc/ios: more predictable zoneinfo.zip location
David Crawshaw [Mon, 2 Mar 2015 21:05:11 +0000 (16:05 -0500)]
misc/ios: more predictable zoneinfo.zip location

See golang.org/cl/6511.

Change-Id: I2145a42877ed6b78400f29c2ef18969870dab5c3
Reviewed-on: https://go-review.googlesource.com/6512
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agoapi: update next.txt
Mikio Hara [Tue, 3 Mar 2015 00:28:31 +0000 (09:28 +0900)]
api: update next.txt

This change removes wrongly added API entries for OpenBSD from the
candidate list.

Change-Id: Ibadfb9003ced6d3338794e4f3072054e65211e4a
Reviewed-on: https://go-review.googlesource.com/6550
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoimage/jpeg: when following component selectors, only consider valid
Nigel Tao [Mon, 2 Mar 2015 03:53:07 +0000 (14:53 +1100)]
image/jpeg: when following component selectors, only consider valid
components.

This fixes decoding JPEG images where the component selector is 0. Such
images are rare, but not impossible.

Change-Id: I6d221bce01cce8cc0440e117543233371782ca22
Reviewed-on: https://go-review.googlesource.com/6421
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/internal/obj: delete Rconv from LinkArch
Rob Pike [Mon, 2 Mar 2015 21:55:13 +0000 (13:55 -0800)]
cmd/internal/obj: delete Rconv from LinkArch

It is unused and should have been deleted when Rconv was made
a global function.

Change-Id: Id745dcee6f0769604cabde04887c6d0c94855405
Reviewed-on: https://go-review.googlesource.com/6521
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agobuild: skip cgo -pie tests on freebsd-amd64.
Rahul Chaudhry [Mon, 2 Mar 2015 20:58:02 +0000 (12:58 -0800)]
build: skip cgo -pie tests on freebsd-amd64.

This is a followup to http://golang.org/cl/6280.
clang -pie fails to link misc/cgo/test on freebsd-amd64.

Change-Id: I6f9575d6bb579f4d38d70707fb9c92e303e30e6f
Reviewed-on: https://go-review.googlesource.com/6520
Run-TryBot: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
10 years agomath/big: replace Float.NewInf with Float.SetInf for more consistent API
Robert Griesemer [Wed, 25 Feb 2015 23:38:15 +0000 (15:38 -0800)]
math/big: replace Float.NewInf with Float.SetInf for more consistent API

Change-Id: I2a60ea4a196eef1af5d2aae6cc239c64bddb6fb2
Reviewed-on: https://go-review.googlesource.com/6301
Reviewed-by: Alan Donovan <adonovan@google.com>
10 years agobuild: run cgo tests with -pie if the external linker supports it.
Rahul Chaudhry [Fri, 27 Feb 2015 18:46:42 +0000 (10:46 -0800)]
build: run cgo tests with -pie if the external linker supports it.

PIE binaries can be built by the Go compiler in external link mode with
extldflags="-pie". These binaries support ASLR (address space layout
randomization) when executed on systems with appropriate kernel/dynamic
linker support.

This CL enables some cgo tests to run with -pie as a sanity check (in
addition to the other linker flag combinations they already test).

I have tested this functionality more thoroughly by building the full
compiler testsuite (test/...) and standard library tests with -pie
and executing them remotely on ChromeOS devices for all three linux
architectures (linux_amd64, linux_386, and linux_arm).

Change-Id: I3f644a72e94c3341f3360dfee58db5ec3a591e26
Reviewed-on: https://go-review.googlesource.com/6280
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agomisc/ios: add go_darwin_arm_exec script
David Crawshaw [Sun, 1 Mar 2015 18:47:54 +0000 (13:47 -0500)]
misc/ios: add go_darwin_arm_exec script

This script is getting very close to complete, and is complex enough
that I'd like to get what's there so far reviewed. With it the builder
is left failing on eight packages. Two of those involve correcting
GOROOT which may need modifications to this script, the others are
either a unix sockets bug I have to hunt down or are caused by lldb
getting stuck on SIGSEGV, a TODO.

Change-Id: I5ff933800167b6764b51ad195da7dcda61d59ff8
Reviewed-on: https://go-review.googlesource.com/6404
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agocmd/internal/obj: move the "unary destination" tables from asm to obj/*
Rob Pike [Mon, 2 Mar 2015 19:04:06 +0000 (11:04 -0800)]
cmd/internal/obj: move the "unary destination" tables from asm to obj/*

Have the implementations of each architecture declare the one-operand,
destination-writing instructions instead of splitting the information between
there and asm.

Change-Id: I44899435011a4a7a398ed03c0801e9f81cc8c905
Reviewed-on: https://go-review.googlesource.com/6490
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agoruntime: remove unused getenv function
David Crawshaw [Mon, 2 Mar 2015 09:14:49 +0000 (04:14 -0500)]
runtime: remove unused getenv function

Change-Id: I49cda99f81b754e25fad1483de373f7d07d64808
Reviewed-on: https://go-review.googlesource.com/6452
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

10 years agocmd/go: avoid creating new empty environment variables
Russ Cox [Mon, 2 Mar 2015 18:49:57 +0000 (13:49 -0500)]
cmd/go: avoid creating new empty environment variables

Broke some tests that assume $GORACE is unset (because it never is).
Those tests are arguably wrong, but this is more robust.

Change-Id: Id56daa160c9e7e01f301c1386791e410bbd5deef
Reviewed-on: https://go-review.googlesource.com/6480
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoos: set TMPDIR on darwin/arm
David Crawshaw [Mon, 2 Mar 2015 15:43:39 +0000 (10:43 -0500)]
os: set TMPDIR on darwin/arm

This is a roll forward of 2adc3bd6ef84. It occurred to me that we will
want this code on both darwin/arm and darwin/arm64. Removing _arm from
the file name conveniently avoids #10032.

Change-Id: I3a96a3e7020907d9307af8f696e26ad55b2060f0
Reviewed-on: https://go-review.googlesource.com/6460
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>

10 years agocmd/5g etc: mechanical cleanup
Russ Cox [Mon, 2 Mar 2015 17:35:15 +0000 (12:35 -0500)]
cmd/5g etc: mechanical cleanup

Run rsc.io/grind rev a26569f on C->Go conversions.

The new change in grind is the inlining of goto targets.
If code says 'goto x' and the block starting at label x is unreachable
except through that goto and the code can be moved to where
the goto is without changing the meaning of its variable names,
grind does that move. Simlarly, a goto to a plain return statement
turns into that return statement (even if there are other paths to
the return statement).

Combined, these remove many long-distance gotos, which in turn
makes it possible to reduce the scope of more variable declarations.
(Because gotos can't jump across declarations, the gotos were
keeping the declarations from moving.)

Checked bit-for-bit compatibility with toolstash + buildall.

Reduces compiler runtime in html/template by about 12%.

Change-Id: Id727c0bd7763a61aa22f3daa00aeb8fccbc057a3
Reviewed-on: https://go-review.googlesource.com/6472
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
10 years agocmd/dist, cmd/go: move textdata.h, funcdata.h from pkg/GOOS_GOARCH to pkg/include
Russ Cox [Mon, 2 Mar 2015 15:30:47 +0000 (10:30 -0500)]
cmd/dist, cmd/go: move textdata.h, funcdata.h from pkg/GOOS_GOARCH to pkg/include

There's no point to having them in every GOOS_GOARCH directory,
since they are neither GOOS- nor GOARCH-specific.
(There used to be other headers that were.)

This makes building for additional toolchains easier:
no need to run make.bash at all.

Fixes #10049.

Change-Id: I710ecaafd7a5c8cad85ccd595ea9cb6058f553b3
Reviewed-on: https://go-review.googlesource.com/6471
Reviewed-by: Rob Pike <r@golang.org>
10 years agogo/build: make interaction between file names and +build lines clearer
Russ Cox [Mon, 2 Mar 2015 17:41:23 +0000 (12:41 -0500)]
go/build: make interaction between file names and +build lines clearer

Change-Id: I2cae17d3f0d208c7ed1089bc5cb8f81022fcd36e
Reviewed-on: https://go-review.googlesource.com/6470
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
10 years agocmd/internal/ld, cmd/internal/obj: delete Ctxt.Endian
Russ Cox [Mon, 2 Mar 2015 03:02:13 +0000 (22:02 -0500)]
cmd/internal/ld, cmd/internal/obj: delete Ctxt.Endian

Replaced by Ctxt.ByteOrder, which uses the standard binary.ByteOrder type.

Change-Id: I06cec0674c153a9ad75ff937f7eb934891effd0b
Reviewed-on: https://go-review.googlesource.com/6450
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/go: force default env vars onto tool subprocesses
Russ Cox [Mon, 2 Mar 2015 01:03:49 +0000 (20:03 -0500)]
cmd/go: force default env vars onto tool subprocesses

This avoids needing every invoked tool to have an identical
computation of the build defaults as the go command does.
It makes sure the tools all know what the go command wants.

Change-Id: I484f15982bfb93c86cde8fc9df7f456505270b87
Reviewed-on: https://go-review.googlesource.com/6409
Reviewed-by: Rob Pike <r@golang.org>
10 years agobuild: add bootstrap.bash for bootstrapping new systems
Russ Cox [Mon, 2 Mar 2015 00:44:03 +0000 (19:44 -0500)]
build: add bootstrap.bash for bootstrapping new systems

Change-Id: Ic74830608fe077b4e97e8ce8009017c1e273c672
Reviewed-on: https://go-review.googlesource.com/6408
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/dist: fix default GOOS/GOARCH for cross-compile
Russ Cox [Mon, 2 Mar 2015 00:42:03 +0000 (19:42 -0500)]
cmd/dist: fix default GOOS/GOARCH for cross-compile

Before this CL, if you are on a darwin/amd64 machine and
cross-compile 9g for a linux/ppc64 machine, when you copy
9g over to that kind of machine and run it, you'll find it thinks
the default object target is darwin/amd64. Not useful.
Make the default target linux/ppc64 in this case. More useful.

Change-Id: I62f2e9cb5f60b3077a922b31cd023a9cb7a6cfda
Reviewed-on: https://go-review.googlesource.com/6407
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime: change sigset_all and sigset_none into constants on OpenBSD
Matthew Dempsky [Mon, 2 Mar 2015 03:13:50 +0000 (19:13 -0800)]
runtime: change sigset_all and sigset_none into constants on OpenBSD

OpenBSD's sigprocmask system call passes the signal mask by value
rather than reference, so vars are unnecessary.  Additionally,
declaring "var sigset_all = ^sigset_none" means sigset_all won't be
initialized until runtime_init is called, but the first call to
newosproc happens before then.

I've witnessed Go processes on OpenBSD crash from receiving SIGWINCH
on the newly created OS thread before it finished initializing.

Change-Id: I16995e7e466d5e7e50bcaa7d9490173789a0b4cc
Reviewed-on: https://go-review.googlesource.com/6440
Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoruntime: cleanup chan code
Dmitry Vyukov [Sat, 14 Feb 2015 13:42:51 +0000 (16:42 +0300)]
runtime: cleanup chan code

Move type definitions from chan1.go to chan.go and select.go.
Remove underscores from names.
Make c.buf unsafe.Pointer instead of *uint8.

Change-Id: I75cf8385bdb9f79eb5a7f7ad319495abbacbe942
Reviewed-on: https://go-review.googlesource.com/4900
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Dmitry Vyukov <dvyukov@google.com>

10 years agonet/http/fcgi: fix test
Dmitry Vyukov [Sun, 1 Mar 2015 13:23:55 +0000 (16:23 +0300)]
net/http/fcgi: fix test

Currently the test fails if run more than once:

$ go test -v -run=TestChildServeCleansUp -cpu=1,1 net/http/fcgi
=== RUN TestChildServeCleansUp
--- PASS: TestChildServeCleansUp (0.00s)
=== RUN TestChildServeCleansUp
fatal error: all goroutines are asleep - deadlock!

The problem is that the writer mutates test input data,
so it is wrong on the second execution.

Change-Id: I4ca54dd2926c6986b2908023ac65e5e65630ed26
Reviewed-on: https://go-review.googlesource.com/6383
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoruntime: fix traceback of crash before LR is stored
Russ Cox [Mon, 2 Mar 2015 02:29:25 +0000 (21:29 -0500)]
runtime: fix traceback of crash before LR is stored

This fixes runtime's TestBreakpoint on ppc64:
the Breakpoint frame was not showing up in the trace.

It seems like f.frame should be either the frame size
including the saved LR (if any) or the frame size
not including the saved LR.

On ppc64, f.frame is the frame size not including the saved LR.

On arm, f.frame is the frame size not including the saved LR,
except when that's -4, f.frame is 0 instead.

The code here in the runtime expects that f.frame is the frame
size including the saved LR.

Since all three disagree and nothing else uses f.frame anymore,
stop using it here too. Use funcspdelta, which tells us the exact
difference between the FP and SP. If it's zero, LR has not been
saved yet, so the one saved for sigpanic should be recorded.

This fixes TestBreakpoint on both ppc64 and ppc64le.
I don't really understand how it ever worked there.

Change-Id: I2d2c580d5c0252cc8471e828980aeedcab76858d
Reviewed-on: https://go-review.googlesource.com/6430
Reviewed-by: Minux Ma <minux@golang.org>
10 years agocmd/9l: fix ppc64le build
Russ Cox [Mon, 2 Mar 2015 05:16:16 +0000 (00:16 -0500)]
cmd/9l: fix ppc64le build

The conversion accidentally dropped the +4 here.

Change-Id: Ic6181a759565c261bc1b084317f693ae249fd036
Reviewed-on: https://go-review.googlesource.com/6451
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agobuild: update Windows make.bat to use CC_FOR_TARGET.
Hyang-Ah (Hana) Kim [Sun, 1 Mar 2015 15:09:27 +0000 (10:09 -0500)]
build: update Windows make.bat to use CC_FOR_TARGET.

Change-Id: Ie4d8bedb9408372dff64e9a7fd857e1be4ee59e1
Reviewed-on: https://go-review.googlesource.com/6401
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agodoc/contribute.html rewrite "Set up auth... code review".
Lloyd Dewolf [Wed, 25 Feb 2015 05:33:29 +0000 (21:33 -0800)]
doc/contribute.html rewrite "Set up auth... code review".

- Fixed term in preceding section: submitted -> merged.
- Clear transitions between web sites.
- Clarify "types" of G Accounts.
- Less verbose "Configure Git" instructions. [l10n]
- Google uses the term "sign in".
- Mention .gitcookie file created.

Update "Register with Gerrit".
- Link directly to gerrit /login/ .

HTML
- Removed non-ascii "hidden characters".
- Encoded some & and >.

Change-Id: I0d99102def6b32e09b8e42fa40e20227ad5e7568
Reviewed-on: https://go-review.googlesource.com/5892
Reviewed-by: Andrew Gerrand <adg@golang.org>
10 years agoos: add windows test for Hostname
Alex Brainman [Thu, 26 Feb 2015 03:19:19 +0000 (14:19 +1100)]
os: add windows test for Hostname

Change-Id: I9b38b3a384722cf000eab18b62f73f90bcb56c5c
Reviewed-on: https://go-review.googlesource.com/6070
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoimage/jpeg: distinguish between FormatError and UnsupportedError when
Nigel Tao [Mon, 2 Mar 2015 00:27:57 +0000 (11:27 +1100)]
image/jpeg: distinguish between FormatError and UnsupportedError when
encountering unknown markers.

Change-Id: Ica86013308d69da2f5b486119235ff693135b2f1
Reviewed-on: https://go-review.googlesource.com/6393
Reviewed-by: David Symonds <dsymonds@golang.org>
Run-TryBot: David Symonds <dsymonds@golang.org>

10 years agocmd/9l: fix bogus C conversion
Russ Cox [Sun, 1 Mar 2015 18:32:49 +0000 (13:32 -0500)]
cmd/9l: fix bogus C conversion

Looks like c2go and gcc disagree about the exact meaning of the
usual arithmetic conversions, in a way that broke 9l's archreloc.
Fix it.

It's very hard for me to see why the original C code did not say
what c2go interpreted it to say, but apparently it did not.
This is why Go has explicit numerical conversions.

Change-Id: I75bd73afd1fa4ce9a53c887e1bd7d1e26ff43ae4
Reviewed-on: https://go-review.googlesource.com/6405
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agoall: mv 5a old5a and so on
Russ Cox [Sat, 28 Feb 2015 19:24:28 +0000 (14:24 -0500)]
all: mv 5a old5a and so on

This CL will break any uses of 'go tool 5a' etc.
That is intentional.
Code that invokes an assembler directly should be updated to use go tool asm.

We plan to keep the old5a around for bit-for-bit verification during
the release testing phase, but we plan to remove those tools for the
actual release. Renaming the directory now makes sure that lingering
references to 'go tool 5a' will be caught, changed to use asm, and
tested during the release evaluation.

Change-Id: I98748a7ddb34cc7f1b151c2ef421d3656821f5c2
Reviewed-on: https://go-review.googlesource.com/6366
Reviewed-by: Rob Pike <r@golang.org>
10 years agonet: deflake TestPacketConn, increase timeout
Brad Fitzpatrick [Sun, 15 Feb 2015 17:35:18 +0000 (09:35 -0800)]
net: deflake TestPacketConn, increase timeout

Tests sometimes failed with:

ok   mime/internal/quotedprintable      0.606s
ok   mime/multipart                     0.819s
--- FAIL: TestPacketConn (0.10s)
    packetconn_test.go:96: PacketConn.ReadFrom failed: WSARecvFrom udp 127.0.0.1:64156: i/o timeout
FAIL
FAIL    net     3.602s
ok      net/http        4.618s
ok      net/http/cgi    0.576s

Theory: 100 ms is too short. Small timer granularity on Wnidows, or an
allocation in the middle causing a GC sometimes?

In any case, increase it to 500 ms.

Change-Id: I48cc4d600eb168db9f85c0fd05335dd630254c3c
Reviewed-on: https://go-review.googlesource.com/4922
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agonet: disable TestTCPReadWriteAllocs on dragonfly
Brad Fitzpatrick [Sun, 1 Mar 2015 17:30:15 +0000 (09:30 -0800)]
net: disable TestTCPReadWriteAllocs on dragonfly

Update #8859
Update #10042

Change-Id: Idc7eadb447b73563ce9085e50c2042652442c2d9
Reviewed-on: https://go-review.googlesource.com/6412
Reviewed-by: Minux Ma <minux@golang.org>
10 years agopath/filepath: get tests working on darwin/arm
David Crawshaw [Sun, 1 Mar 2015 03:55:29 +0000 (22:55 -0500)]
path/filepath: get tests working on darwin/arm

Change-Id: Ic44d7837aaec58601e5d9cad8da5b958a809f4a0
Reviewed-on: https://go-review.googlesource.com/6400
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoruntime: don't use /dev/random on Plan 9
David du Colombier [Sun, 1 Mar 2015 17:08:15 +0000 (18:08 +0100)]
runtime: don't use /dev/random on Plan 9

Plan 9 provides a /dev/random device to return a
stream of random numbers. However, the method used
to generate random numbers on Plan 9 is slow and
reading from /dev/random may block.

We don't want our Go programs to be significantly
slowed down just to slightly improve the distribution
of hash values.

So, we do the same thing as NaCl and rely exclusively
on extendRandom to generate pseudo-random numbers.

Fixes #10028.

Change-Id: I7e11a9b109c22f23608eb09c406b7c3dba31f26a
Reviewed-on: https://go-review.googlesource.com/6386
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agosyscall: fix mount working directory on Plan 9
David du Colombier [Sun, 1 Mar 2015 16:30:47 +0000 (17:30 +0100)]
syscall: fix mount working directory on Plan 9

In CL 6350, Brad fixed the following system calls
to use the program-wide workding directory:

- bind
- chdir
- create
- open
- remove
- stat
- umount
- wstat

However, Russ Cox pointed out that the mount
system call should be fixed as well.

Change-Id: I6139ed11ba449f18c46e95269f4d0e51be7cec48
Reviewed-on: https://go-review.googlesource.com/6385
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agofmt: document existing behavior of nil receivers
Rob Pike [Sun, 1 Mar 2015 16:56:25 +0000 (08:56 -0800)]
fmt: document existing behavior of nil receivers

If a method called by fmt triggers a panic, the output usually says
so. However, there is heretofore undocumented special treatment for
a panic caused by formatting a nil value with an Error or String
method: the output is simply "<nil>". Document that behavior.

Change-Id: Id0f79dd0b3487f9d1c74a0856727bba5cc342be4
Reviewed-on: https://go-review.googlesource.com/6410
Reviewed-by: David Crawshaw <crawshaw@golang.org>
10 years agoos: darwin/arm working dir moved for tests
David Crawshaw [Sun, 1 Mar 2015 03:35:51 +0000 (22:35 -0500)]
os: darwin/arm working dir moved for tests

The go_darwin_arm_exec script now tells lldb to move the working
directory into <bundle>/src/os on startup.

Change-Id: I0ada4969e9ea374f08c84ab736aab2097ac73dd8
Reviewed-on: https://go-review.googlesource.com/6369
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agoruntime: TestGdbPython 'print mapvar' should not need unwinding
Jan Kratochvil [Sat, 28 Feb 2015 18:43:50 +0000 (19:43 +0100)]
runtime: TestGdbPython 'print mapvar' should not need unwinding

issue #10017: TestGdbPython 'print mapvar' is reported to fail on ppc64.
issue #10002: TestGdbPython 'print mapvar' is reported to fail on arm hardfloat.

The testcase now uses plain line number in main.  Unwinding issues are
unrelated to the GDB map prettyprinter feature.

Remove arch-specific t.Skip()s from those two issues.

Fixes #10017
Fixes #10002

Change-Id: I9d50ffe2f3eb7bf65dd17c8c76a2677571de68ba
Reviewed-on: https://go-review.googlesource.com/6267
Reviewed-by: Minux Ma <minux@golang.org>
10 years agocmd/pack: skip fork test on darwin/arm
David Crawshaw [Sat, 28 Feb 2015 01:13:51 +0000 (20:13 -0500)]
cmd/pack: skip fork test on darwin/arm

Change-Id: I65b50d2501fe822bc9044a851ac0b3467feadd9f
Reviewed-on: https://go-review.googlesource.com/6330
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/cc: delete lexbody, macbody
Russ Cox [Sun, 1 Mar 2015 00:52:06 +0000 (19:52 -0500)]
cmd/cc: delete lexbody, macbody

These files were left behind for the C implementation of the assemblers.
They're no longer needed.

This is the last of the cmd/cc directory.

Change-Id: I9231b23c27fead5695000097aeb694824747677d
Reviewed-on: https://go-review.googlesource.com/6367
Reviewed-by: Minux Ma <minux@golang.org>
10 years agoall: delete C libraries and cmd/dist code that builds them
Russ Cox [Sat, 28 Feb 2015 19:00:44 +0000 (14:00 -0500)]
all: delete C libraries and cmd/dist code that builds them

Change-Id: Ic66243674ac1dbf829c7523005e33611cc89ac83
Reviewed-on: https://go-review.googlesource.com/6362
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/5l etc: replace C code with Go code
Russ Cox [Sat, 28 Feb 2015 18:48:09 +0000 (13:48 -0500)]
cmd/5l etc: replace C code with Go code

mv cmd/new5l cmd/5l and so on.

Minimal changes to cmd/dist and cmd/go to keep things building.
More can be deleted in followup CLs.

Change-Id: I1449eca7654ce2580d1f413a56dc4a75f3d4618b
Reviewed-on: https://go-review.googlesource.com/6361
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/go: use Go linker instead of C linker
Russ Cox [Sat, 28 Feb 2015 03:56:29 +0000 (22:56 -0500)]
cmd/go: use Go linker instead of C linker

Change-Id: I783df66d762b52ad3d74340ad5692790cd0ab544
Reviewed-on: https://go-review.googlesource.com/6360
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/dist: build linkers written in Go
Russ Cox [Sat, 28 Feb 2015 03:56:12 +0000 (22:56 -0500)]
cmd/dist: build linkers written in Go

Change-Id: Ia36fa5e617ceacbbca9f30f4e109d94e515b38ef
Reviewed-on: https://go-review.googlesource.com/6336
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Dave Cheney <dave@cheney.net>
10 years agocmd/new5l etc: convert from C to Go
Russ Cox [Sat, 28 Feb 2015 03:57:28 +0000 (22:57 -0500)]
cmd/new5l etc: convert from C to Go

Using rsc.io/c2go rev fc8cbfa's run.ld script.

Change-Id: I4d4d14fce96f8ce7a934bf8b9701b84fa9cf772d
Reviewed-on: https://go-review.googlesource.com/6335
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/go: install new5l etc to tool dir
Russ Cox [Sat, 28 Feb 2015 03:50:58 +0000 (22:50 -0500)]
cmd/go: install new5l etc to tool dir

Change-Id: I77ab2bed5884b0763147703fd976d462d036336d
Reviewed-on: https://go-review.googlesource.com/6334
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Dave Cheney <dave@cheney.net>
10 years agocmd/dist: record default GO_EXTLINK_ENABLED in Go
Russ Cox [Sat, 28 Feb 2015 03:50:01 +0000 (22:50 -0500)]
cmd/dist: record default GO_EXTLINK_ENABLED in Go

Today it's only recorded for C, but the Go version of the linker will need it.

Change-Id: I0de56d98e8f3f1b7feb830458c0934af367fd29a
Reviewed-on: https://go-review.googlesource.com/6333
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
10 years agocmd/ld: clean for c2go
Russ Cox [Wed, 25 Feb 2015 03:22:32 +0000 (22:22 -0500)]
cmd/ld: clean for c2go

Change-Id: Iaab2be9a1919f2fa9dbc61a5b7fbf99bcd0712a9
Reviewed-on: https://go-review.googlesource.com/6332
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
10 years agobuild: give windows builders extra time for tests
Russ Cox [Sat, 28 Feb 2015 22:23:32 +0000 (17:23 -0500)]
build: give windows builders extra time for tests

In the tests, the runtime test fails after 2 minutes.
On an unloaded VM it only takes 45 seconds.
I think the difference is all the other build work going on
simultaneously with the running of the runtime test.

Change-Id: I41e95d2e4daea44ceaa8505f81aa7b5bcfa9ec77
Reviewed-on: https://go-review.googlesource.com/6364
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agonet: disable failing interface tests on dragonfly
Russ Cox [Sun, 1 Mar 2015 00:17:27 +0000 (19:17 -0500)]
net: disable failing interface tests on dragonfly

(Issue #10041.)

Change-Id: Ia894ab60ac6b09926c684f99aacca79275cbced4
Reviewed-on: https://go-review.googlesource.com/6365
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agoruntime: fix traceback from goexit1
Dmitry Vyukov [Fri, 20 Feb 2015 17:07:02 +0000 (20:07 +0300)]
runtime: fix traceback from goexit1

We used to not call traceback from goexit1.
But now tracer does it and crashes on amd64p32:

runtime: unexpected return pc for runtime.getg called from 0x108a4240
goroutine 18 [runnable, locked to thread]:
runtime.traceGoEnd()
    src/runtime/trace.go:758 fp=0x10818fe0 sp=0x10818fdc
runtime.goexit1()
    src/runtime/proc1.go:1540 +0x20 fp=0x10818fe8 sp=0x10818fe0
runtime.getg(0x0)
    src/runtime/asm_386.s:2414 fp=0x10818fec sp=0x10818fe8
created by runtime/pprof_test.TestTraceStress
    src/runtime/pprof/trace_test.go:123 +0x500

Return PC from goexit1 points right after goexit (+0x6).
It happens to work most of the time somehow.

This change fixes traceback from goexit1 by adding an additional NOP to goexit.

Fixes #9931

Change-Id: Ied25240a181b0a2d7bc98127b3ed9068e9a1a13e
Reviewed-on: https://go-review.googlesource.com/5460
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agoruntime/cgo: no-op getwd call as test breakpoint
David Crawshaw [Sat, 28 Feb 2015 22:06:06 +0000 (17:06 -0500)]
runtime/cgo: no-op getwd call as test breakpoint

This is to be used by an lldb script inside go_darwin_arm_exec to pause
the execution of tests on iOS so the working directory can be adjusted
into something resembling a GOROOT.

Change-Id: I69ea2d4d871800ae56634b23ffa48583559ddbc6
Reviewed-on: https://go-review.googlesource.com/6363
Reviewed-by: Minux Ma <minux@golang.org>
10 years agoimage/draw: add a fast path for Gray src images.
Nigel Tao [Sat, 28 Feb 2015 04:46:01 +0000 (15:46 +1100)]
image/draw: add a fast path for Gray src images.

Grayscale PNG and JPEG images are not uncommon. We should have a fast path.

Also add a benchmark for the recently added CMYK fast path.

benchmark                    old ns/op     new ns/op     delta
BenchmarkGray                13960348      324152        -97.68%

Change-Id: I72b5838c8c3d1f2d0a4536a848e020e80b10c0f7
Reviewed-on: https://go-review.googlesource.com/6237
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/internal/gc, cmd/internal/obj: remove pointless fmt.Sprintf calls
Josh Bleecher Snyder [Sat, 28 Feb 2015 20:31:32 +0000 (20:31 +0000)]
cmd/internal/gc, cmd/internal/obj: remove pointless fmt.Sprintf calls

This is a follow-up to CL 6265. No behavior changes.
The diff was generated with eg, using template:

package p

import "fmt"

func before(a string) string { return fmt.Sprintf(a) }
func after(a string) string  { return a }

Change-Id: I7b3bebf31be5cd1ae2233da06cb4502a3d73f092
Reviewed-on: https://go-review.googlesource.com/6269
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agonet: disable TestTCPReadWriteAllocs on darwin
Josh Bleecher Snyder [Sat, 28 Feb 2015 20:34:53 +0000 (20:34 +0000)]
net: disable TestTCPReadWriteAllocs on darwin

Having this test fail, as it does reliably for me,
makes working frustrating. Disable it for now,
until we can diagnose the issue.

Update issue #8859.

Change-Id: I9dda30d60793e7a51f48f445c78ccb158068cc25
Reviewed-on: https://go-review.googlesource.com/6381
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/internal/obj: clean up handling of register list operand on ARM
Rob Pike [Fri, 27 Feb 2015 21:50:26 +0000 (13:50 -0800)]
cmd/internal/obj: clean up handling of register list operand on ARM

ARM operands for MOVM have lists of registers: [R1,R2,R5-R8].
Handle them cleanly.

It was TYPE_CONST with special handling, which meant operand printing
didn't work right and the special handling was ugly. Add a new TYPE_REGLIST
for this case and it all gets cleaner.

Change-Id: I4a64f70fb9765e63cb636619a7a8553611bfe970
Reviewed-on: https://go-review.googlesource.com/6300
Run-TryBot: Rob Pike <r@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agosyscall: make pwd process-wide on Plan 9
Brad Fitzpatrick [Sat, 28 Feb 2015 03:34:56 +0000 (19:34 -0800)]
syscall: make pwd process-wide on Plan 9

On Plan 9, the pwd is apparently per-thread not per process. That
means different goroutines saw different current directories, even
changing within a goroutine as they were scheduled.

Instead, track the the process-wide pwd protected by a mutex in the
syscall package and set the current goroutine thread's pwd to the
correct once at critical points.

Fixes #9428

Change-Id: I928e90886355be4a95c2be834f5883e2b50fc0cf
Reviewed-on: https://go-review.googlesource.com/6350
Reviewed-by: David du Colombier <0intro@gmail.com>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agoRevert "os: set TMPDIR on darwin/arm"
David Crawshaw [Sat, 28 Feb 2015 02:34:08 +0000 (02:34 +0000)]
Revert "os: set TMPDIR on darwin/arm"

This reverts commit 87a0d395c3d454c6efa560c406b5b3d8ad71c8f6.

Looks like introducing file_darwin_arm.go is confusing something in the API checker (probably go/types) into ignoring file.go, so the O_SYNC symbol is being lost.

No actual bug in this CL AFAIK, but I'll fix the other bug later and then roll this forward.

Change-Id: Ic132fb101e4b5f2716f7a0d15872bf35bdf42139
Reviewed-on: https://go-review.googlesource.com/6331
Reviewed-by: David Crawshaw <crawshaw@golang.org>
10 years agoimage/draw: optimize drawFillSrc.
Nigel Tao [Fri, 27 Feb 2015 10:43:53 +0000 (21:43 +1100)]
image/draw: optimize drawFillSrc.

benchmark                    old ns/op     new ns/op     delta
BenchmarkFillSrc             46781         46000         -1.67%

Change-Id: I0ab25d42d5763f1a0fe5a67ee00b83f0aa55f1f6
Reviewed-on: https://go-review.googlesource.com/6235
Reviewed-by: Rob Pike <r@golang.org>
10 years agoos: fix tests on darwin/arm
David Crawshaw [Sat, 28 Feb 2015 00:52:11 +0000 (19:52 -0500)]
os: fix tests on darwin/arm

Tests that fork are skipped. Tests that create files do so in a
temporary directory, as the initial PWD is read-only. And
darwin/arm returns a strange mkdir error when trying to write to /.

Change-Id: I2de661a85524300bbac226693d72142992dc188d
Reviewed-on: https://go-review.googlesource.com/6312
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoos: set TMPDIR on darwin/arm
David Crawshaw [Sat, 28 Feb 2015 00:54:09 +0000 (19:54 -0500)]
os: set TMPDIR on darwin/arm

Change-Id: Iee25f4b0a31ece0aae79c68aec809e1e4308f865
Reviewed-on: https://go-review.googlesource.com/6311
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/internal/gc, cmd/internal/obj: clean up string returns
Josh Bleecher Snyder [Fri, 27 Feb 2015 22:44:15 +0000 (22:44 +0000)]
cmd/internal/gc, cmd/internal/obj: clean up string returns

An artifact of the c2go translation was
a handful of instances of code like:

var s string
s += "foo"
return s

This CL converts those to simply 'return "foo"'.

The conversion was done mechanically with the
quick-and-dirty cleanup script at
https://gist.github.com/josharian/1fa4408044c163983e62.

I then manually moved a couple of comments in fmt.go.

toolstash -cmp thinks that there are no functional changes.

Change-Id: Ic0ebdd10f0fb8de0360a1041ce5cd10ae1168be9
Reviewed-on: https://go-review.googlesource.com/6265
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoos: fix LinkError creation on windows.
Hyang-Ah (Hana) Kim [Fri, 27 Feb 2015 17:34:25 +0000 (12:34 -0500)]
os: fix LinkError creation on windows.

Not only carrying invalid info but also this caused Error to crash with
null pointer exception.

Change-Id: Ibfe63d20eb9b9178ea618e59c74111e9245a6779
Reviewed-on: https://go-review.googlesource.com/6270
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agocmd/internal/obj: make ppc64's CR subregisters print as CRn rather than Cn
Rob Pike [Fri, 27 Feb 2015 20:36:15 +0000 (12:36 -0800)]
cmd/internal/obj: make ppc64's CR subregisters print as CRn rather than Cn

These 8 registers are windows into the CR register. They are officially CR0
through CR7 and that is what the assembler accepts, but for some reason
they have always printed as C0 through C7. Fix the naming and printing.

Change-Id: I55822c0322c29d3e01a1f2776b3b210ebf9ded21
Reviewed-on: https://go-review.googlesource.com/6290
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agocmd/internal/gc: add missing verb to Yyerror
Sebastien Binet [Fri, 27 Feb 2015 19:42:18 +0000 (20:42 +0100)]
cmd/internal/gc: add missing verb to Yyerror

When a function had no body, Yyerror was called with an extra
argument, leading to extraneous printouts.
Add the missing verb to the Yyerror call and display the name of the
bodiless function.

Fixes #10030

Change-Id: I76d76c4547fb9cad1782cb11f7a5c63065a6e0c5
Reviewed-on: https://go-review.googlesource.com/6263
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime/pprof: skip tests that fork on darwin/arm
David Crawshaw [Fri, 27 Feb 2015 13:58:54 +0000 (08:58 -0500)]
runtime/pprof: skip tests that fork on darwin/arm

Change-Id: I9b08b74214e5a41a7e98866a993b038030a4c073
Reviewed-on: https://go-review.googlesource.com/6251
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agoruntime: trivial clean ups to greyobject
Austin Clements [Fri, 27 Feb 2015 17:41:20 +0000 (12:41 -0500)]
runtime: trivial clean ups to greyobject

Previously, the typeDead check in greyobject was under a separate
!useCheckmark conditional.  Put it with the rest of the !useCheckmark
code.  Also move a comment about atomic update of the marked bit to
where we actually do that update now.

Change-Id: Ief5f16401a25739ad57d959607b8d81ffe0bc211
Reviewed-on: https://go-review.googlesource.com/6271
Reviewed-by: Rick Hudson <rlh@golang.org>
10 years agocrypto/x509: skip tests not made for darwin/arm
David Crawshaw [Fri, 27 Feb 2015 14:08:35 +0000 (09:08 -0500)]
crypto/x509: skip tests not made for darwin/arm

Change-Id: I8b18dc840425b72d7172a35cb0ba004bd156492d
Reviewed-on: https://go-review.googlesource.com/6252
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agocmd/objdump: skip fork test on darwin/arm
David Crawshaw [Fri, 27 Feb 2015 12:06:34 +0000 (07:06 -0500)]
cmd/objdump: skip fork test on darwin/arm

Change-Id: I1d1eb71014381452d1ef368431cb2556245a35ab
Reviewed-on: https://go-review.googlesource.com/6250
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agobuild: restore original timeouts in run.rc
David du Colombier [Fri, 27 Feb 2015 16:51:25 +0000 (17:51 +0100)]
build: restore original timeouts in run.rc

The timeouts were increased in CL 2462 and CL 2510
to work around a slowness issue when running Go
programs on a Plan 9 machine on GCE.

Since we figured out this issue, we can restore
the timeouts to their original values.

Updates #10028.

Change-Id: I2e5b91666461715df69df97ea791f3d88d9de4d0
Reviewed-on: https://go-review.googlesource.com/6261
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/internal/gc: restore mkbuiltin
Matthew Dempsky [Fri, 27 Feb 2015 08:40:34 +0000 (17:40 +0900)]
cmd/internal/gc: restore mkbuiltin

Change-Id: I6cc4061fef9d3c3530406ab3d4811192b7175e89
Reviewed-on: https://go-review.googlesource.com/6233
Reviewed-by: Minux Ma <minux@golang.org>
10 years agocmd/internal/obj: make Rconv a global function
Rob Pike [Fri, 27 Feb 2015 01:09:16 +0000 (17:09 -0800)]
cmd/internal/obj: make Rconv a global function

Clean up the obj API by making Rconv (register pretty printer) a top-level
function. This means that Dconv (operand pretty printer) doesn't need
an Rconv argument.

To do this, we make the register numbers, which are arbitrary inside an
operand (obj.Addr), disjoint sets for each architecture. Each architecture
registers (ha) a piece of the space and then the global Rconv knows which
architecture-specific printer to use.

Clean up all the code that uses Dconv.

Now register numbers are large, so a couple of fields in Addr need to go
from int8 to int16 because they sometimes hold register numbers. Clean
up their uses, which meant regenerating the yacc grammars for the
assemblers. There are changes in this CL triggered by earlier changes
to yacc, which had not been run in this directory.

There is still cleanup to do in Addr, but we're getting closer to that being
easy to do.

Change-Id: I9290ebee013b62f7d24e886743ea5a6b232990ab
Reviewed-on: https://go-review.googlesource.com/6220
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agoruntime: skip tests that need fork on darwin/arm
David Crawshaw [Thu, 26 Feb 2015 23:05:47 +0000 (18:05 -0500)]
runtime: skip tests that need fork on darwin/arm

Change-Id: I1bb0b8b11e8c7686b85657050fd7cf926afe4d29
Reviewed-on: https://go-review.googlesource.com/6200
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agosyscall: Reimplement linux syscalls in terms of their *at replacements.
Dave Cheney [Wed, 25 Feb 2015 03:52:17 +0000 (14:52 +1100)]
syscall: Reimplement linux syscalls in terms of their *at replacements.

Updates #9974

This proposal tackles the body of syscalls which have been replaced,
and are now deprecated in linux. This is needed for the arm64 port as
arm64 is the first linux architecture to remove the "legacy" forms of
these syscalls.

The *AT variants were added in kernel 2.6.16, so well before our 2.6.23
cutoff (hey, it'll even work on RHEL5).

Discussion: https://groups.google.com/forum/#!topic/golang-dev/zpeFtN2z5Fc

Change-Id: I473a7c9a295d6f776fcdc75dcce06cbe9e3564ee
Reviewed-on: https://go-review.googlesource.com/5837
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agosyscall: exclude Go tool test on darwin/arm
David Crawshaw [Thu, 26 Feb 2015 22:55:11 +0000 (17:55 -0500)]
syscall: exclude Go tool test on darwin/arm

Change-Id: I44c1911beceaedaa35dad71d8be8a814528dce67
Reviewed-on: https://go-review.googlesource.com/6192
Reviewed-by: Minux Ma <minux@golang.org>
10 years agocmd/nm: exclude Go tool test on darwin/arm
David Crawshaw [Thu, 26 Feb 2015 22:49:59 +0000 (17:49 -0500)]
cmd/nm: exclude Go tool test on darwin/arm

Change-Id: I44f1240a766f20de5997faca4f13f96af6da3534
Reviewed-on: https://go-review.googlesource.com/6190
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agocmd/addr2line: exclude Go tool test on darwin/arm
David Crawshaw [Thu, 26 Feb 2015 22:52:51 +0000 (17:52 -0500)]
cmd/addr2line: exclude Go tool test on darwin/arm

Change-Id: Icee6c88b7eed5fb27f046373ecf53bf64b68c696
Reviewed-on: https://go-review.googlesource.com/6191
Reviewed-by: Minux Ma <minux@golang.org>
10 years agonet/http/cgi: skip exec test on darwin/arm
David Crawshaw [Thu, 26 Feb 2015 22:27:52 +0000 (17:27 -0500)]
net/http/cgi: skip exec test on darwin/arm

Change-Id: I2fc3cf94b465bf9d7ff8d7bf935b45e334b401e3
Reviewed-on: https://go-review.googlesource.com/6180
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>