Originally posted by Weasel
View Post
Is a tool set.
The plugin a .so right weasel. So you make a shim library as valve does in their libcapsule work. The requirement from valve was no recompilation of the game or the platform libraries. Shim libraries in the middle was allowed.
Originally posted by Weasel
View Post
Yes shim/capsule
application->library.so comes application->shim/capsule library.so->library.so
This is a workaround dealing with application and a library that you cannot modify..
Now if you don't have the recompilation limitation you do what google chrome does and uses dlmopen on their plugins so removing the need for shim.so.
shim or capsule library name problem. Yes depending on the party some call it a shim others call the solution capsule result is the same thing. Yes depending on the collabora person writing the documentation at the time as well(not exactly fun if you don't remember they are the same thing). Use dlmopen in a library between the application and it so library that will not work due to some confliting dependancy fixing problem.
Shim setup is in fact mentioned
On page 9 of the above PDF.
Libcapsule has all the fancy stuff for intercepting dlopen calls. So that the library wrapped by shim can still in fact use dlopen itself. Yes libcapsule is used by valve and is really well tested.
Weasel so recompile library or application not required to make incompatible library work with each other. Either application is design to use dlmopen to prevent issues like chrome or if it not design you use capsule/shim library like value does on their decades odd linux game executable so they work with modern libraries.
The first limitation applies under Windows as well.
This is one of those annoying things. The global symbol thing of ELF prevents limitation 1 by only allowing 1 symbol. You are using a shim/capsules you do need to think about what you are doing.
This shim/capsule route does allow placing man in middle code for particular operations to copy data from one type of allocated memory to another so addressing part of the first limitation.
Yes the best way to avoid limitation 1 under Windows and Linux is do what gimp/pcsx2 does run plugins as their own programs. Of course this runs you into the Wayland problem of not having the neatest way to manage multi application windows attempting to act as one without using a proxy Wayland compositor.
Originally posted by Weasel
View Post
Major updates are kernel updates. Microsoft directly tells you that drivers may fail because they do.
Never heard of it is the works for me argument not the facts Weasel. The facts kernel updates on Windows and Linux drivers do stop working. Windows updates kernel less often than Linux does resulting in less driver breakage that is difference.
PS also note the dlopen not working inside standard glibc dlmopen is a glibc limitation that the solaris loader does not have. Lot of libcapsule code is required because glibc suxs.
Comment