On Mon, 20 Mar 2017 23:21:20 -0700 (PDT)
Song Liu <
song...@gmail.com> wrote:
> Default symbol could break loading multiple shared lib implemented by
> different version of go runtime, if there is one symbol with same
> name but with different logic.
This actually means they won't be compatible neither with the Go
runtime which loaded them nor with one another, does it?
I mean, suppose that both shared modules refer to, say, runtime.Foo
but expect it to have "different logic". But there's only the single Go
runtime in play here -- the one which loaded both modules -- there's
just "one" logic provided by runtime.Foo. It may match the
expectations of the first module, the second, both or none. I'd say, a
sensible assumption is that both modules and the runtime itself must
agree on what logic is expected/provided.
IOW, all the code working on the runtime must have the same idea about
all the shared code it provides.
> And, the shared lib implemented by Go has too many symbols from the
> Go runtine and libraries, which will result in the loading
> performance.
[...]