1. 08 Sep, 2014 11 commits
  2. 07 Sep, 2014 10 commits
    • Russ Cox's avatar
      runtime: save g to TLS more aggressively · b4bfa6c9
      Russ Cox authored
      This is one of those "how did this ever work?" bugs.
      The current build failures are happening because
      a fault comes up while executing on m->curg on a
      system-created thread using an m obtained from needm,
      but TLS is set to m->g0, not m->curg. On fault,
      sigtramp starts executing, assumes r10 (g) might be
      incorrect, reloads it from TLS, and gets m->g0, not
      m->curg. Then sighandler dutifully pushes a call to
      sigpanic onto the stack and returns to it.
      We're now executing on the m->curg stack but with
      g=m->g0. Sigpanic does a stack split check, sees that
      the SP is not in range (50% chance depending on relative
      ordering of m->g0's and m->curg's stacks), and then
      calls morestack. Morestack sees that g=m->g0 and
      crashes the program.
      
      The fix is to replace every change of g in asm_arm.s
      with a call to a function that both updates g and
      saves the updated g to TLS.
      
      Why did it start happening? That's unclear.
      Unfortunately there were other bugs in the initial
      checkin that mask exactly which of a sequence of
      CLs started the behavior where sigpanic would end
      up tripping the stack split.
      
      Fixes arm build.
      Fixes #8675.
      
      LGTM=iant
      R=golang-codereviews, iant
      CC=dave, golang-codereviews, khr, minux, r
      https://golang.org/cl/135570043
      b4bfa6c9
    • Russ Cox's avatar
      crypto/tls: print unexpected error in test · 2c14dbe4
      Russ Cox authored
      Maybe will help us understand Solaris build failure.
      
      TBR=aram
      CC=golang-codereviews
      https://golang.org/cl/139290043
      2c14dbe4
    • Russ Cox's avatar
      liblink: fix arm wrapper prologue · fb818eab
      Russ Cox authored
      Fixes arm build.
      
      TBR=khr
      CC=golang-codereviews
      https://golang.org/cl/132700043
      fb818eab
    • Russ Cox's avatar
      build: fix windows make.bat · 2034dae9
      Russ Cox authored
      The Unix make.bash builds cmd/dist from *.c.
      make.bat apparently does not.
      
      TBR=r
      CC=golang-codereviews
      https://golang.org/cl/137280043
      2034dae9
    • Russ Cox's avatar
      cmd/dist: remove goc2c · c0951701
      Russ Cox authored
      After the three pending CLs listed below, there will be no more .goc files.
      
      134580043	runtime: move stubs.goc code into runtime.c
      133670043	runtime: fix windows syscalls for copying stacks
      141180043	runtime: eliminate Go -> C -> block paths for Solaris
      
      LGTM=bradfitz
      R=golang-codereviews, bradfitz, dave
      CC=golang-codereviews, iant, r
      https://golang.org/cl/132680043
      c0951701
    • Russ Cox's avatar
      runtime: fix nacl/amd64p32 build · 8a7597fd
      Russ Cox authored
      Update #8675
      Fixes nacl/amd64p32 build.
      
      TBR=khr
      CC=golang-codereviews
      https://golang.org/cl/141140045
      8a7597fd
    • Russ Cox's avatar
      runtime: fix windows syscalls for copying stacks · 59dd20f4
      Russ Cox authored
      Syscall and everything it calls must be nosplit:
      we cannot split a stack once Syscall has been invoked,
      because we don't know which of its arguments are
      pointers.
      
      LGTM=khr, r, alex.brainman
      R=dvyukov, iant, khr, r, bradfitz, alex.brainman
      CC=golang-codereviews
      https://golang.org/cl/133670043
      59dd20f4
    • Russ Cox's avatar
      runtime: eliminate Go -> C -> block paths for Solaris · c01c2c88
      Russ Cox authored
      LGTM=aram, r
      R=golang-codereviews, aram, r
      CC=golang-codereviews, iant, khr
      https://golang.org/cl/141180043
      c01c2c88
    • Russ Cox's avatar
      runtime: increase stack split limit again · b6951bcc
      Russ Cox authored
      Increase NOSPLIT reservation from 192 to 384 bytes.
      The problem is that the non-Unix systems (Solaris and Windows)
      just can't make system calls in a small amount of space,
      and then worse they do things that are complex enough
      to warrant calling runtime.throw on failure.
      We don't have time to rewrite the code to use less stack.
      
      I'm not happy about this, but it's still a small amount.
      
      The good news is that we're doing this to get to only
      using copying stacks for stack growth. Once that is true,
      we can drop the default stack size from 8k to 4k, which
      should more than make up for the bytes we're losing here.
      
      LGTM=r
      R=iant, r, bradfitz, aram.h
      CC=golang-codereviews
      https://golang.org/cl/140350043
      b6951bcc
    • Russ Cox's avatar
      misc/makerelease: make goimports-safe · 7230db9e
      Russ Cox authored
      LGTM=bradfitz
      R=adg, bradfitz, minux
      CC=golang-codereviews
      https://golang.org/cl/140310045
      7230db9e
  3. 06 Sep, 2014 8 commits
  4. 05 Sep, 2014 11 commits