1. 07 May, 2016 3 commits
    • Elias Naur's avatar
      cmd/go: add -shared to darwin/arm{,64} default build mode · fa270ad9
      Elias Naur authored
      Buildmode c-archive now supports position independent code for
      darwin/arm (in addition to darwin/arm64). Make PIC (-shared) the
      default for both platforms in the default buildmode.
      
      Without this change, gomobile will go install the standard library
      into its separate package directory without PIC support.
      
      Also add -shared to darwin/arm64 in buildmode c-archive, for
      symmetry (darwin/arm64 always generates position independent code).
      
      Fixes #15519
      
      Change-Id: If27d2cbea8f40982e14df25da2703cbba572b5c6
      Reviewed-on: https://go-review.googlesource.com/22920Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      fa270ad9
    • Tal Shprecher's avatar
      cmd/compile: properly handle map assignments for OAS2DOTTYPE · 9d7c9b43
      Tal Shprecher authored
      The boolean destination in an OAS2DOTTYPE expression craps out during
      compilation when trying to assign to a map entry because, unlike slice entries,
      map entries are not directly addressable in memory. The solution is to
      properly order the boolean destination node so that map entries are set
      via autotmp variables.
      
      Fixes #14678
      
      Change-Id: If344e8f232b5bdac1b53c0f0d21eeb43ab17d3de
      Reviewed-on: https://go-review.googlesource.com/22833Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      9d7c9b43
    • Elias Naur's avatar
      runtime: use entire address space on 32 bit · e6ec8206
      Elias Naur authored
      In issue #13992, Russ mentioned that the heap bitmap footprint was
      halved but that the bitmap size calculation hadn't been updated. This
      presents the opportunity to either halve the bitmap size or double
      the addressable virtual space. This CL doubles the addressable virtual
      space. On 32 bit this can be tweaked further to allow the bitmap to
      cover the entire 4GB virtual address space, removing a failure mode
      if the kernel hands out memory with a too low address.
      
      First, fix the calculation and double _MaxArena32 to cover 4GB virtual
      memory space with the same bitmap size (256 MB).
      
      Then, allow the fallback mode for the initial memory reservation
      on 32 bit (or 64 bit with too little available virtual memory) to not
      include space for the arena. mheap.sysAlloc will automatically reserve
      additional space when the existing arena is full.
      
      Finally, set arena_start to 0 in 32 bit mode, so that any address is
      acceptable for subsequent (additional) reservations.
      
      Before, the bitmap was always located just before arena_start, so
      fix the two places relying on that assumption: Point the otherwise unused
      mheap.bitmap to one byte after the end of the bitmap, and use it for
      bitmap addressing instead of arena_start.
      
      With arena_start set to 0 on 32 bit, the cgoInRange check is no longer a
      sufficient check for Go pointers. Introduce and call inHeapOrStack to
      check whether a pointer is to the Go heap or stack.
      
      While we're here, remove sysReserveHigh which seems to be unused.
      
      Fixes #13992
      
      Change-Id: I592b513148a50b9d3967b5c5d94b86b3ec39acc2
      Reviewed-on: https://go-review.googlesource.com/20471Reviewed-by: default avatarAustin Clements <austin@google.com>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      e6ec8206
  2. 06 May, 2016 27 commits
  3. 05 May, 2016 10 commits