Manage exported shared library symbols visibility
Hello,
I am wondering if there are any plans on improving the state of the exported symbols when building the kea shared libraries.
This could ease distributing kea and the maintenance of third party software which may be linked those kea shared libraries. Moreover, the shared libraries would contain a lean, clearer exposed interface.
Currently, there are no mechanisms to manage those symbols visibility. A couple alternatives would be to either
- decorate everything intended to be public with a macro that is expanded to
__attribute__((__visibility__("default")))
, and start building those shared objects with-fvisibility=hidden
; or - ship a version script [1] with the package to set the scope for the shared object symbols.
[1] https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html#SEC25