On Wed, Mar 22, 2017 at 3:06 AM, Basile Starynkevitch <[email protected]> wrote: > > First, is Svetlin's golang-sharing-libraries tutorial still exactly correct > for Go1.8 specifically? Its title Sharing Golang packages to C and Go is a > bit misleading. I just want all my non-main packages to be "shared objects" > in Linux parlance > (because I really don't want them to be compiled twice, once for the main > program and once for the plugin). I don't care if each of my package has its > own *.so file, or if all of them are agglomerated in one single *.so file. > BTW, I would > prefer to avoid having tons of *.so files (what I would probably prefer is > to have all the non-main code of my thing as a single *.so file shared > between main program & plugins).
As far as I know that is correct. > In particular, is issue 12236 still relevant for Go 1.8 ? It is fixed in 1.8. You may find it helpful to read https://golang.org/s/execmodes . > I am not sure to understand well how -buildmode=shared & -linkshared should > be used. Is there an up to date tutorial in how to use them precisely? Not that I know of. > So how to force Go to systematically use -buildmode=shared? Is there some > comment directive for that? Or should I provide my own shell script to build > (I do know that the current one build-monimelt.sh is very buggy). You would have to use a shell script or something. There is no way to make it the default, and really that wouldn't even make sense: you would not to use -buildmode=shared when building your main executable, only when building the packages that it imports. > Is -buildmode=pie useful for me (I believe that not)? I doubt that it is useful. > The documentation of -linkshared is saying just: > >> -linkshared >> link against shared libraries previously created with >> -buildmode=shared. > > > and I find that explanation too short (what happens if by mistake a previous > package was compiled twice, both with -buildmode=shared & -buildmode=default > and what happens if two weeks ago I have compiled my purple package -in some > older version- with -buildmode=default and today I am compiling it -an > improved version- with -buildmode=shared) ? -linkshared is going to find the last package you built and installed using `go install -buildmode=shared ...`. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
