cdqp / anyloop

Simple, extensible, plugin-based feedback loop software, with a primary focus on supporting adaptive optics applications.
Mozilla Public License 2.0
3 stars 3 forks source link

Small logging tweak #2

Closed imyxh closed 1 year ago

imyxh commented 1 year ago

Small pr, just wanna check that this is sane. Putting the logging info in the device struct is slightly clunky, but I also don't want to pass the state to the devices, because I want to make it clear that devices really shouldn't be writing to it on initialization.

@wooosh let me know what you think?

imyxh commented 1 year ago

Pushed semi-accidentally :P feel free to PR if/when you have a better solution.

I can undo this too if you want.

wooosh commented 1 year ago

The logging info does not need to be passed to each device, because there should only be one logger instance for the whole process. This was not the case when this PR was created because each plugin had it's own logging.c compiled into it instead of linking to the process-wide instance of logging.c.

PR #3 fixes this by specifying override_options: 'b_lundef=false' for each plugin to allow it to have symbols that will be resolved at runtime (via dlopen), and export_dynamic: true on the main binary to make the main binary's symbols visible to the dynamic linker.