What is it about go internals that makes object files that C can link to as a shared library different from object files that can be used as plugins? For C to load shared objects from go as plugins, why isn't it sufficient to provide C initialization and deinitialization functions for the go runtime? This isn't a criticism, I'm just curious to know. Thanks.