- 09 Jul, 2017 1 commit
-
-
Michael Pratt authored
ld.addpltsym adds an R_X86_64_JMP_SLOT dynamic relocation to .rela.plt and uses Addaddrplus to reference the GOT in Elf64_Rela.r_offset. Addaddrplus results in an R_ADDR relocation, which here we transform into an R_X86_64_64 dynamic relocation. This is wrong for several reasons: 1. .rela.plt is not a writable, relro section. It is mapped read-only, causing the dynamic linker to segfault when it tried to handle the relocation. This was the immediate cause of internal PIE cgo crashes. 2. Relocations targetting other reloc sections are, as far as I can tell, undefined behavior in the ELF spec and are unlikely to be a good idea. 3. Even if the relocation did work, it isn't what we want. The relocation, if successfully handled, would have put an absolute address as the JMP_SLOT offset, but it should be the offset from the beginning of the binary, just like any other relocation. What we want is a statically resolved R_ADDR relocation, just as is used below for the R_X86_64_64 relocation. Skipping the .rela.plt allows reloc() to handle these R_ADDR relocations. With this CL, internal PIE cgo binaries work. Updates #18968 Change-Id: Ie74e6fe249e88150baa0e340b1cb128cf7f28673 Reviewed-on: https://go-review.googlesource.com/47837Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 08 Jul, 2017 1 commit
-
-
Josh Bleecher Snyder authored
On a slow or distracted machine, 0.1s is sometimes not long enough for a non-blocking function call to complete. This causes rare test flakes. They can be easily reproduced by reducing the wait time to (say) 100ns. For non-blocking functions, increase the window from 100ms to 10s. Using different windows for block and non-blocking functions, allows us to reduce the time for blocking functions. The risk here is false negatives, but that risk is low; this test is run repeatedly on many fast machines, for which 10ms is ample time. This reduces the time required to run the test by a factor of 10, from ~1s to ~100ms. Fixes #20299 Change-Id: Ice9a641a66c6c101d738a2ebe1bcb144ae3c9916 Reviewed-on: https://go-review.googlesource.com/47812 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 07 Jul, 2017 8 commits
-
-
Austin Clements authored
Currently, sysmon waits 60 ms during idle before relaxing. This is primarily to avoid reducing the precision of short-duration timers. Of course, if there are no short-duration timers, this wastes 60 ms running the timer at high resolution. Improve this by instead inspecting the time until the next timer fires and relaxing the timer resolution immediately if the next timer won't fire for a while. Updates #20937. Change-Id: If4ad0a565b65a9b3e8c4cdc2eff1486968c79f24 Reviewed-on: https://go-review.googlesource.com/47833 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Currently, sysmon relaxes the Windows timer resolution as soon as the Go process becomes idle. However, if it's going idle because of a short sleep (< 15.6 ms), this can turn that short sleep into a long sleep (15.6 ms). To address this, wait for 60 ms of idleness before relaxing the timer resolution. It would be better to check the time until the next wakeup and relax immediately if it makes sense, but there's currently no interaction between sysmon and the timer subsystem, so adding this simple delay is a much simpler and safer change for late in the release cycle. Fixes #20937. Change-Id: I817db24c3bdfa06dba04b7bc197cfd554363c379 Reviewed-on: https://go-review.googlesource.com/47832 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
This reverts commit 168eb9cf. CL 47831 fixes the issue with plugins on ARMv5, so we can re-enable the test. Updates #19674. Change-Id: Idcb29f93ffb0460413f1fab5bb82fa2605795038 Reviewed-on: https://go-review.googlesource.com/47834Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
R11 is callee-save in the C ABI, but the temporary register in the Go ABI. Currently it's being clobbered by runtime.addmoduledata, which has to follow the C ABI. The observed effect of this was that dl_open_worker was returning to a bad PC because after it failed to restore its SP because it was using R11 as a frame pointer. Fix this by saving R11 around addmoduledata. Fixes #19674. Change-Id: Iaacbcc76809a3aa536e9897770831dcbcb6c8245 Reviewed-on: https://go-review.googlesource.com/47831 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Austin Clements authored
Change-Id: If1c602176e0bea66924983eab8edd5e450228b68 Reviewed-on: https://go-review.googlesource.com/47792Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
A lot of code that uses runtime.Callers makes assumptions about the result that are not true today under gccgo and will not be true in the future in gc. This adds a section to the release notes discussing how to correctly use runtime.Callers. Change-Id: I96b7c7ef183cee2061442fc3501fceceefa54c09 Reviewed-on: https://go-review.googlesource.com/47691Reviewed-by: Russ Cox <rsc@golang.org>
-
Austin Clements authored
Change-Id: I1c02aa4f7131ae984fda66b32e8a993c0a40b8f4 Reviewed-on: https://go-review.googlesource.com/47690Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Fixes #20930 Change-Id: I4a59de0556cffeae9af2eaa41609601e086211b2 Reviewed-on: https://go-review.googlesource.com/47731Reviewed-by: Rob Pike <r@golang.org>
-
- 06 Jul, 2017 13 commits
-
-
Brad Fitzpatrick authored
Fixes #20928 Change-Id: I7f7aafb8ff4b5deb50c286a9ae81c34ee85e56a9 Reviewed-on: https://go-review.googlesource.com/47730Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Gustav Westling authored
CL 47341 added support for decoding non-padded messages. But DecodedLen still returned a multiple of 5 for messages without a padding, even though it is possible to calculate the len exactly when using NoPadding. This change makes DecodedLen return the exact number of bytes that will be written. A change to the decoding logic is also made so that it can handle this case. DecodedLen now has the same behaviour as DecodedLen in encoding/base64. Fixes #20854 Change-Id: I729e0b1c0946c866fb675c854f835f366dd4b5a4 Reviewed-on: https://go-review.googlesource.com/47710Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
It already implied that Cmd.Wait is more than os.Process.Wait, but say so explicitly. See https://github.com/golang/go/issues/18874#issuecomment-309921486 Updates #18874 Change-Id: Iaa46defd776ae0be817d9f4466a99ac78cfd672b Reviewed-on: https://go-review.googlesource.com/47650Reviewed-by: Russ Cox <rsc@golang.org>
-
Gustav Westling authored
CL 38634 added support for custom (and disabled) padding characters when encoding, but didn't update the decoding paths. This adds decoding support. Fixes #20854 Change-Id: I9fb1a0aaebb27f1204c9f726a780d5784eb71024 Reviewed-on: https://go-review.googlesource.com/47341 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Currently only the rwmutex write lock prevents descheduling. The read lock does not. This leads to the following situation: 1. A reader acquires the lock and gets descheduled. 2. GOMAXPROCS writers attempt to acquire the lock (or at least one writer does, followed by readers). This blocks all of the Ps. 3. There is no 3. The descheduled reader never gets to run again because there are no Ps, so it never releases the lock and the system deadlocks. Fix this by preventing descheduling while holding the read lock. This requires also rewriting TestParallelRWMutexReaders to always create enough GOMAXPROCS and to use non-blocking operations for synchronization. Fixes #20903. Change-Id: Ibd460663a7e5a555be5490e13b2eaaa295fac39f Reviewed-on: https://go-review.googlesource.com/47632 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
Change-Id: If5495f66d175bdacebd599abf1e064d2343669c2 Reviewed-on: https://go-review.googlesource.com/34430 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
ResolveTCPAddr, ResolveUDPAddr, and ResolveIPAddr return at most one address. When given a name like "golang.org" to resolve that might have more than 1 address, the net package has historically preferred IPv4 addresses, with the assumption that many users don't yet have IPv6 connectivity and randomly selecting between an IPv4 address and an IPv6 address at runtime wouldn't be a good experience for IPv4-only users. In CL 45088 (78cf0e56) I modified the resolution of the unspecified/empty address to internally resolve to both IPv6 "::" and 0.0.0.0 to fix issue #18806. That code has 3 other callers I hadn't considered, though: the Resolve*Addr functions. Since they preferred IPv4, any Resolve*Addr of "[::]:port" or "::" (for ResolveIPAddr) would internally resolve both "::" and 0.0.0.0 and then prefer 0.0.0.0, even though the user was looking up an IPv6 literal. Add tests and fix it, not by undoing the fix to #18806 but by selecting the preference function for Resolve*Addr more explicitly: we still prefer IPv4, but if the address being looked up was an IPv6 literal, prefer IPv6. The tests are skipped on machines without IPv6. Fixes #20911 Change-Id: Ib7036cc43182ae4118cd1390c254e17c04a251a3 Reviewed-on: https://go-review.googlesource.com/47554 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Updates #20587 Change-Id: Ie4846f90611390eebf037ffafaed5ddd273565e4 Reviewed-on: https://go-review.googlesource.com/47551Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
The text before CL 45816 was: -timeout t If a test runs longer than t, panic. The default is 10 minutes (10m). CL 45816 was supposed to be about clarifying test vs test binary, and it did add the clarification of referring to "duration d", but it also introduced incorrect text about timeout 0. The new text in this CL preserves the good change and eliminates the incorrect one: -timeout d If a test binary runs longer than duration d, panic. The default is 10 minutes (10m). For #14780. Change-Id: I4f79d6e48ed9295bc9f34a36aa90d3b03b40d7f5 Reviewed-on: https://go-review.googlesource.com/47571 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Emmanuel Odeke authored
Following the spec clarification in CL 40393, copy that text to reflect docs to state that the initial capacity of MakeMapWithSize is a hint/approximate. Fixes #19903 Change-Id: I6b3315b8183cafaa61fbb2839a4e42b76fd71544 Reviewed-on: https://go-review.googlesource.com/46270Reviewed-by: Robert Griesemer <gri@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Fixes #20876 Change-Id: Ic62c4f59e3ddcae891aa9526f9693d233dd524fc Reviewed-on: https://go-review.googlesource.com/47552Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
-
Brad Fitzpatrick authored
Fixes #20894 Change-Id: I0c0e906964bbd789317d07f245e64e3d61ecfa8c Reviewed-on: https://go-review.googlesource.com/47550Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Go 1.9 beta 2 is already out. It's too late to break code with a change like this. This can be rolled forward for Go 1.10. This reverts commit ae238688. Change-Id: Ib67b8629e3deac5d50d76581aba6a91ca7a7853e Reviewed-on: https://go-review.googlesource.com/47570Reviewed-by: Russ Cox <rsc@golang.org>
-
- 05 Jul, 2017 1 commit
-
-
Fabian Wickborn authored
The name LabelList was changed to LabelSet during the development of the proposal [1], except in one function comment. This commit fixes that. Fixes #20905. [1] https://github.com/golang/go/issues/17280 Change-Id: Id4f48d59d7d513fa24b2e42795c2baa5ceb78f36 Reviewed-on: https://go-review.googlesource.com/47470Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 04 Jul, 2017 1 commit
-
-
Kale Blankenship authored
Change-Id: Idf89559c9945c5a8743539658fe92e860fcc6a92 Reviewed-on: https://go-review.googlesource.com/47362Reviewed-by: Matt Layher <mdlayher@gmail.com>
-
- 03 Jul, 2017 1 commit
-
-
Austin Clements authored
mheap.allocLarge just calls bestFitTreap and is the only caller of bestFitTreap. Flatten these into a single function. Also fix their comments: allocLarge claims to return exactly npages but can in fact return a larger span, and h.freelarge is not in fact indexed by span start address. Change-Id: Ia20112bdc46643a501ea82ea77c58596bc96f125 Reviewed-on: https://go-review.googlesource.com/47315 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
- 30 Jun, 2017 9 commits
-
-
Joe Tsai authored
The Server struct has exported fields, which allows users to manually create a Server object without using using NewServer or NewTLSServer and directly call Start or StartTLS on their object. In order to ensure that manual creation of Server works, the NewUnstartedServer function should not initialize Server in any way that the user was not able to do themselves. For example, the setting of a unexported filed, client, is not something a user can do. Thus, rather than setting the client field in NewUnstartedServer, we lazily initialize it when Start or StartTLS is called. Otherwise, the Server logic can nil panic later when it assumes that this field has been initialized. Fixes #20871 Change-Id: I65c6a9f893ea963b0fbad0990b33af08007c1140 Reviewed-on: https://go-review.googlesource.com/47353Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Joe Tsai authored
The Func type has allowed calling the Func.Name method on a nil pointer since Go1.2, where it returned an empty string. A regression caused by CL/37331 caused this behavior to change. This breaks code that lazily does runtime.FuncForPC(myPtr).Name() without first checking that myPtr is actually non-nil. Fixes #20872 Change-Id: Iae9a2ebabca5e9d1f5a2cdaf2f30e9c6198fec4f Reviewed-on: https://go-review.googlesource.com/47354Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Martin Garton authored
Change-Id: I4417c5a8537095a6464ce919b2e5cb250e179939 Reviewed-on: https://go-review.googlesource.com/47332Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ben Shi authored
Wrong instructions "MOVW 8(F0), R1" and "MOVW R0<<0(F1), R1" are silently accepted, and all Fx are treated as Rx. The patch checks all those illegal base registers. fixes #20724 Change-Id: I05d41bb43fe774b023205163b7daf4a846e9dc88 Reviewed-on: https://go-review.googlesource.com/46132 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Shawn Walker-Salas authored
If a retryable error such as EAGAIN/EINTR is encountered during a call to sendfile(), we should not assume that a partial write occurred. Instead, just like any other platform, we should always try again even if 0 bytes were written. Fixes #20857 Change-Id: I9aa48d193c27c6794c550320da4d3f7544041f37 Reviewed-on: https://go-review.googlesource.com/47351 Run-TryBot: Shawn Walker-Salas <shawn.walker@oracle.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
fanzha02 authored
The current code calculates register number incorrectly. The fix corrects the register number calculation. Add cases created by decoder to test assembler. Fixes #20697 Fixes #20723 Change-Id: I73ac153df9ea9f51c43a5104828d7a5389551c92 Reviewed-on: https://go-review.googlesource.com/45850 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Brad Fitzpatrick authored
Now that ReadMemStats is fast (CL 34937), CL 36791 is not so necessary, and causes confusion. See #20863 This was already partially reverted in CL 46612 but missed two of the spots. Fixes #20863 Change-Id: I1307a0f7b1f9e86e8b6ceaa6a677f24f13431110 Reviewed-on: https://go-review.googlesource.com/47350Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Lucas Clemente authored
Fixes #20834. Change-Id: Ic60000db6b8ae489a5cedbdc938d9ca1dc34c6d4 Reviewed-on: https://go-review.googlesource.com/47151Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Updates #18581 Updates #20858 Change-Id: I6b5ce0e255a42c028d46815fff5a5aca68690fd9 Reviewed-on: https://go-review.googlesource.com/47254 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 29 Jun, 2017 5 commits
-
-
Robert Griesemer authored
Fixes #20839. Change-Id: I125460c5da09b7fa0cf470ff5be436f8d650cde7 Reviewed-on: https://go-review.googlesource.com/47253 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
smasher164 authored
Document that the byte value returned by ReadByte() is meaningless if its error != nil. Because io.Reader and io.ByteReader are similar in name, this CL aims to clear up any ambiguity surrounding the returned values, particularly where io.Reader is allowed to return both a non-zero number of valid bytes and err == EOF. Fixes #20825 Change-Id: I3a23c18c80c471c0caae3b4d2f6f8e547da0bed9 Reviewed-on: https://go-review.googlesource.com/46950Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
FreeBSD 9.3. Add Linux arm64. (required second line) Clarify glibc requirement now that we have second line in notes. OS X to macOS Updates #20850 Change-Id: I684d464ed32a072081726b7c805a346c22c42f97 Reviewed-on: https://go-review.googlesource.com/47252Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
This reverts commit df68afd0 (https://golang.org/cl/33276) Reason for revert: made other benchmarks worse Fixes #20693 (details) Updates #17914 Updates #10335 Change-Id: If451b620803ccb0536b89c76c4353d2185d57d7e Reviewed-on: https://go-review.googlesource.com/47211 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Alberto Donizetti authored
Apparently, "all such calls must happen" means that the t.Run call must *return* before the outer test function returns, or the calls will cause a data race on t.ran. Clarify the docs. Fixes #20339 Change-Id: I191a9af2a9095be1e0aaf10b79c30e00a9c495cb Reviewed-on: https://go-review.googlesource.com/47150Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-