3 ms·
> The Solaris port was definitely slowed down by the fact that on other Unix systems, Go encodes the system call table. Is there any reason that you can't just
by ori_b 12y ago
> The Solaris port was definitely slowed down by the fact that on other Unix systems, Go encodes the system call table.
Is there any reason that you can't just encode the system call table on Solaris too?
- 4ad 12y agoYes, unlike Linux, the system call table is not guaranteed to be stable. Also, libc does a lot of things, like set up TLS. It's also critical in the signalling path.
- ori_b 12y agoIf the system call table isn't stable, how can you ship statically linked binaries?
- 4ad 12y agoOn Solaris you don't ship statically linked binaries. All Go binaries are linked with libc.so. In fact, amd64 Solaris doesn't even support statically linked binaries at all. It won't exec them. The situation is exactly the same as on Windows. Windows Go binaries are dynamically linked agains Windows standard libraries, and Go binaries use the shared libraries instead of doing system calls themselves.