Unfortunately I have not enought time right now to precise look to changes but on quick look I have few questions:
1. Why export_list is rearranged greatly? It should never be touched. Because it absoultely broke module compataibility. Moreover broke it silently. I see no reason for so big changes. New entries should be added to the end.
And as I described somewhere in the middle of thread - noone should worry about logically grouping in any way this list just for logical grouping. This grouping will be broken surely again in future because new entries will be added to the end. And what symbols require to be added to the export_list will be sayed by elf2flt automatically.
2. I do not understand why MODULEINFO_FLAG_SYSTEM added everywhere?
Purpose of this flag is hiding module in module_menu. It should be used for two kind of modules and nothing more.
a) Library modules. This modules are strongly related to CHDK and can't be used in seprately.
b) System modules such as mpopup, module_menu or futher textbox. Such modules are actually auxilary part of system and have no value as standalone module. They have value in context of they are ran. Moreover, they have to be run with parameters only.
Any modules which could be used standalone shouldn't have this flag raised. Even if this module have binding to static menu item, IMO. This is user preference use static or dynamic linking.
If this flag raised, I have only very unfriendly way to run it on different CHDK (previous revision for example - run it from filebrowser).
3. I think that static binding should co-exist with dynamic. My personal preference is dynamic menu even with not resolved yet stability problem (for now just require more patience to start menu from my. I reach calm and dzen
). BTW It is not called and so doesn't crash on startup - this module is called on first menu call. So even though this is unstable, stable way how to start exists (just wait while camera started)
So IMO this should be configurable in OPT_ at least
PS - nice generalizations of module. I had no time for that.
PS2 - I do not check but module unloading is potentialy unsafe theme. That's why not all and not always libraries are unloaded. Just remind because can't take a look.