we should avoid exposing non-public symbols from user facing dynamic
libraries. so pass '--exclude-libs' with appropriate argument to linker.
as libcephfs does not add the ((visibility ("default"))) specifier to
the exported symbols, we can not set the default visiblity to hidden for
libcephfs, and "-export-symbols-regex" is a libtool option, we need to
develop a way for cmake to fix the visibility of libcephfs. it's still a
TODO.
* librados
- pass '--exclude-libs=ALL' to linker
- add buffer.cc to librados, so we can use '--exclude-libs=ALL'.
* libcephfs: pass '--exclude-libs=libcommon.a,libclient.a,libosdc.a' to
linker
* libcommon
- extract common_buffer_obj from libcommon, to avoid compilation
this source file repeatly.
* tests:
- link against common_internal_objs explicitly if the test in
question is using the internal symbols.
* ceph-client-debug:
- link against client explicitly, and do not link against librados
anymore, as it is not used in this tool.