bundleEntry/Exit optional or required?

I didn’t find this in the docs, but I seem to recall that bundleEntry() and bundleExit() are optional functions, and it seems all hosts support not providing them. The validator however fails if these are not provided. Is this a bug in the validator?
The SDK seems inconsistent here, e.g. the auwrapper treats it as optional whereas AUv3Wrapper requires it.

The validator is the reference here.

  • on mac bundleEntry() and bundleExit()
  • on Linux ModuleEntry() and ModuleExit().
  • on Windows InitDll () and ExitDll ()
    these functions are required, they have to be there.

Thanks Yvan, I’ve just updated the ARA example code accordingly.
PS: While digging through the related cmake code, I’ve found that smtg_add_library_main() still calls smtg_set_exported_symbols(macexport.exp) for SMTG_MAC - I think this call and macexport.exp should be removed now that SMTG_EXPORT_SYMBOL is fully implemented.

Since they are part of the SDK / required, what is the contract regarding how they are called? I assume no other plugin calls before bundleEntry(), and no other plugin calls after bundleExit() - are bundleEntry() calls expected to always be paired with bundleExit() - I see evidence in some hosts / contexts that this is not the case, but it’s unclear whether this is an intended case or a bad host implementation.

Yes, the first thing a host must call after it loads the Bundle via the CFBundle API is to call bundleEntry(). And the last thing before releasing the Bundle it must call bundleExit(). (The same holds for Windows and Linux and their init functions)