1. 23 Jun, 2019 1 commit
  2. 27 Mar, 2019 1 commit
    • Clément Chigot's avatar
      runtime: create library startup for aix/ppc64 · 38dc177d
      Clément Chigot authored
      As .init_array section aren't available on AIX, the Go runtime
      initialization is made with gcc constructor attribute.
      However, as cgo tool is building a binary in order to get imported
      C symbols, Go symbols imported for this initilization must be ignored.
      -Wl,-berok is mandatory otherwize ld will fail to create this binary,
      _rt0_aix_ppc64_lib and runtime_rt0_go aren't defined in runtime/cgo.
      These two symbols must also be ignored when creating _cgo_import.go.
      
      Change-Id: Icf2e0282f5b50de5fa82007439a428e6147efef1
      Reviewed-on: https://go-review.googlesource.com/c/go/+/169118
      
      
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      38dc177d
  3. 28 Oct, 2016 1 commit
  4. 24 Oct, 2016 1 commit
  5. 11 Oct, 2016 1 commit
  6. 01 Mar, 2016 1 commit
  7. 12 Sep, 2015 1 commit
  8. 06 May, 2015 1 commit
  9. 16 Apr, 2015 1 commit
  10. 25 Feb, 2015 1 commit
  11. 06 Feb, 2015 1 commit
  12. 08 Sep, 2014 2 commits
    • Russ Cox's avatar
      liblink, runtime: diagnose and fix C code running on Go stack · c81a0ed3
      Russ Cox authored
      This CL contains compiler+runtime changes that detect C code
      running on Go (not g0, not gsignal) stacks, and it contains
      corrections for what it detected.
      
      The detection works by changing the C prologue to use a different
      stack guard word in the G than Go prologue does. On the g0 and
      gsignal stacks, that stack guard word is set to the usual
      stack guard value. But on ordinary Go stacks, that stack
      guard word is set to ^0, which will make any stack split
      check fail. The C prologue then calls morestackc instead
      of morestack, and morestackc aborts the program with
      a message about running C code on a Go stack.
      
      This check catches all C code running on the Go stack
      except NOSPLIT code. The NOSPLIT code is allowed,
      so the check is complete. Since it is a dynamic check,
      the code must execute to be caught. But unlike the static
      checks we've been using in cmd/ld, the dynamic check
      works with function pointers and other indirect calls.
      For example it caught sigpanic being pushed onto Go
      stacks in the signal handlers.
      
      Fixes #8667.
      
      LGTM=khr, iant
      R=golang-codereviews, khr, iant
      CC=golang-codereviews, r
      https://golang.org/cl/133700043
      c81a0ed3
    • Russ Cox's avatar
      build: move package sources from src/pkg to src · c007ce82
      Russ Cox authored
      Preparation was in CL 134570043.
      This CL contains only the effect of 'hg mv src/pkg/* src'.
      For more about the move, see golang.org/s/go14nopkg.
      c007ce82
  13. 03 Jul, 2014 1 commit
    • David Crawshaw's avatar
      cmd/go, cmd/ld, runtime, os/user: TLS emulation for android · 12b990ba
      David Crawshaw authored
      Based on cl/69170045 by Elias Naur.
      
      There are currently several schemes for acquiring a TLS
      slot to save the g register. None of them appear to work
      for android. The closest are linux and darwin.
      
      Linux uses a linker TLS relocation. This is not supported
      by the android linker.
      
      Darwin uses a fixed offset, and calls pthread_key_create
      until it gets the slot it wants. As the runtime loads
      late in the android process lifecycle, after an
      arbitrary number of other libraries, we cannot rely on
      any particular slot being available.
      
      So we call pthread_key_create, take the first slot we are
      given, and put it in runtime.tlsg, which we turn into a
      regular variable in cmd/ld.
      
      Makes android/arm cgo binaries work.
      
      LGTM=minux
      R=elias.naur, minux, dave, josharian
      CC=golang-codereviews
      https://golang.org/cl/106380043
      12b990ba
  14. 04 Sep, 2013 1 commit
  15. 17 Nov, 2012 1 commit
  16. 21 Feb, 2012 1 commit
  17. 11 Jan, 2011 1 commit
  18. 08 Dec, 2010 1 commit
  19. 13 Sep, 2010 1 commit
  20. 03 Oct, 2009 1 commit
    • Russ Cox's avatar
      8c, 8l dynamic loading support. · 133a158b
      Russ Cox authored
      better mach binaries.
      cgo working on darwin+linux amd64+386.
      eliminated context switches - pi is 30x faster.
      add libcgo to build.
      
      on snow leopard:
        - non-cgo binaries work; all tests pass.
        - cgo binaries work on amd64 but not 386.
      
      R=r
      DELTA=2031  (1316 added, 626 deleted, 89 changed)
      OCL=35264
      CL=35304
      133a158b