-
Notifications
You must be signed in to change notification settings - Fork 2
Description
This is an old idea and a low priority but I didn't want to throw it out while cleaning up old notes
Rather than combining all the dynld modules into a single nidas_dynld DSO, consider compiling them into individual DSOs, allowing for simpler and more consistent dynamic plugin support for sensors and outputs.
Few nidas runtimes need all of the sensors, so loading the whole library is unnecessary. It may be memory-mapped anyway, but it's not clear that combining them all into one library serves any purpose, and it means the whole library may have external dependencies that only one module needs. Those more specialized plugins may also be better built outside the nidas source tree and installed into the NIDAS DSO search path. Since that works for some modules, it seems more consistent to do it for all of them.
The GCC web page about visibility is a relevant read, to use hidden visibility but export the right symbols from the DSOs (including plugin subclasses for typeinfo, exceptions, and the factory function). Boost has a DLL library that could help too.