In Release builds the default visibility is set to hidden.
This exposes 2 problems:
1) unittests fails to link - createUpdateLogResponse missing.
This symbol is defined by buildtest/generated/ws_loggingservice.esp (generated by ws_loggingservice.ecm)
Possibly, the generated code should generate the default visibility itself.
However, elsewhere at the moment, libraries/executables explicitly include the generated cpp.
unittests linked in Debug and RelWithDebInfo modes, because it could pick up the exported symbol from logginglib. With default visibility set to hidden, that is no longer the case.
afishbeck - should symbols like createUpdateLogResponse be generated with _attribute_ ((visibility ("default"))) ?
If so, then I think there are various places that are explicitly including the generated cpp and including a library that includes the cpp that exports the symbol(s), e.g. esp/logging/loggingmanager , which includes logginglib.
2) Missing visibility defaults settings for symbols used by libraries loaded by configmgr.
This was highlighted by some of the configmgr environment validity tests, which were failing to pass because they dynamically loaded libraries and looked for a symbol, which was missing (getCfgMgrSupportInstance).