Are you working on Linux?
Have you ever seen a file with this *.sog extension in your plug-in directory?
Ever wonder what it is?
It is possible to force plug-ins to export their symbols by putting an additional file, with the same name as the plug-in with the extension '.sog' in the directory with the plug-in. This would cause the plug-in to be dlopened using the RTLD_GLOBAL flag.
The .sog extension is our own indication that a plug-in should be loaded with extra loader options. The RTLD_GLOBAL flag. Normally we don't set this flag so any functions will be known to the plug-in itself and not pollute the global name space.
Normal plug-in loading:
- pluginName.so
To load a plug-in with RTLD_GLOBAL flag included:
- pluginName.so
- pluginName.sog
The ending ‘g’ meaning global.
You need both files. The .sog is there for existence only - can be a zero length file.
They should ensure the other plug-in that exports its functions has a .sog file to match that plug-in so it is loaded with global scope.
The presence of a .sog file will enable the plug-in symbols to be available for other plug-ins to use.
Cheers,
Kristine
Comments