]> Cypherpunks repositories - gostls13.git/commit
runtime, syscall: link Solaris binaries directly instead of using dlopen/dlsym
authorAram Hăvărneanu <aram@mgk.ro>
Tue, 21 Apr 2015 13:12:29 +0000 (15:12 +0200)
committerAram Hăvărneanu <aram@mgk.ro>
Wed, 6 May 2015 11:38:50 +0000 (11:38 +0000)
commitfe5ef5c9d7dfd02842189956a91af81b1f7ab801
tree064d0e1cd996afec945292f0c547eba7981a2a73
parent2b90c3e8edf36c0a76545fa13c195bca68a29420
runtime, syscall: link Solaris binaries directly instead of using dlopen/dlsym

Before CL 8214 (use .plt instead of .got on Solaris) Solaris used a
dynamic linking scheme that didn't permit lazy binding. To speed program
startup, Go binaries only used it for a small number of symbols required
by the runtime. Other symbols were resolved on demand on first use, and
were cached for subsequent use. This required some moderately complex
code in the syscall package.

CL 8214 changed the way dynamic linking is implemented, and now lazy
binding is supported. As now all symbols are resolved lazily by the
dynamic loader, there is no need for the complex code in the syscall
package that did the same. This CL makes Go programs link directly
with the necessary shared libraries and deletes the lazy-loading code
implemented in Go.

Change-Id: Ifd7275db72de61b70647242e7056dd303b1aee9e
Reviewed-on: https://go-review.googlesource.com/9184
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/syscall_solaris.go
src/syscall/exec_solaris_test.go
src/syscall/mksyscall_solaris.pl
src/syscall/so_solaris.go [deleted file]
src/syscall/syscall_solaris.go
src/syscall/zsyscall_solaris_amd64.go