• Srdjan Petrovic's avatar
    runtime: initialize shared library at library-load time · e8694c81
    Srdjan Petrovic authored
    This is Part 2 of the change, see Part 1 here: in https://go-review.googlesource.com/#/c/7692/
    
    Suggested by iant@, we use the library initialization entry point to:
        - create a new OS thread and run the "regular" runtime init stack on
          that thread
        - return immediately from the main (i.e., loader) thread
        - at the first CGO invocation, we wait for the runtime initialization
          to complete.
    
    The above mechanism is implemented only on linux_amd64.  Next step is to
    support it on linux_arm.  Other platforms don't yet support shared library
    compiling/linking, but we intend to use the same strategy there as well.
    
    Change-Id: Ib2c81b1b83bee837134084b75a3beecfb8de6bf4
    Reviewed-on: https://go-review.googlesource.com/8094
    Run-TryBot: Srdjan Petrovic <spetrovic@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    e8694c81
gcc_libinit_windows.c 519 Bytes